accacca Inserito: 10 marzo 2015 Segnala Share Inserito: 10 marzo 2015 comincio ad approfondire il mondo arduino Parto subito con un dubbio: I pin della porta seriale dell'arduino uno si possono utilizzare per la propria applicazione ? Dallo schema vedo che tramite due resistenze da 1K finiscono in un ATMEGA16 che presumo si occupi della conversione da usb a seriale Il traffico da PC verso arduino durante la programmazione finirebbe inevitbailmente anche alla mia scheda collegata sulla stessa seriale Inoltre dovrei mettere anche io 1K sulla mia linea TX per salvare il mio driver quando trasmette dal lato USB. Si fa così o la uart di arduino uno la si usa solo per la programmazione ? Perchè ho visto che c'è una libreria per uart software (Viste le premesse non credo resterò molto sul pianeta arduino ...) Però quasi quasi mi metto anche io nel mondo dell'elettronica per hobby ma con una scheda molto più seria ho già in mente il nome: SUINO! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2015 Segnala Share Inserita: 10 marzo 2015 Arduino ha anche 2 pins dedicati alla comunicazione seriale, comunicazione che esegue direttemente il microcontrollore. I pins, se ricordo bene, per arduino 1 R3 sono 0 e 1. ovviamente è necessario usare un chip di interfaccia, come ad esempio il MAX232, per poter comunicare in RS232 con altro dispositivo come il PLC. SI può usare amche il MAX485 per cominicare in RS 485, però è necesario un terzo pin da usarsi come uscita per selezionare il modo Tx o Rx del drive. Ci sono librerie ed esempi innumerevoli sulla rete. Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 10 marzo 2015 Autore Segnala Share Inserita: 10 marzo 2015 Sì su arduino 1 sono 0 e1 ma sono collegati internamente all'altro atmega della scheda che poi si collega all'USB A me risultano condivisi non ad uso esclusivo dell'applicazione. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2015 Segnala Share Inserita: 10 marzo 2015 La condivisione ti interessa solo mentre scarichi il programma. Io sto propio facemdo alcune prove in invio dati e leggo dati sulla seriale senza alcun problema. E' ovvio che mentre trasferisco il programma posso fare solo quello. Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 10 marzo 2015 Autore Segnala Share Inserita: 10 marzo 2015 No aspetta tu utilizzi la seriale per la tua applicazione ? Se ad esempio collego la seriale di un altro micro ai due pin 0 e 1 di arduino quando scarichi il programma su arduino fai danni! o mi sfugge qualcosa.. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 10 marzo 2015 Segnala Share Inserita: 10 marzo 2015 (modificato) con questo sketch di solito parametrizzo le schedine bluetooth HC-06 La seriale standard viene usata da Arduino per essre programmato e per fare da debug col terminale . La seriale software e' presa su due pin ed e' gestita dalla libreria SoftwareSerial Ovviamente e' a livelli TTL .Se metti un MAX232 la puoi collegare ad un pc Mentre poi sui pin 0 e 1 hai l'altra seriale intesa come periferia uart del microcontrollore , ma anche li se vuoi collegarti ad un pc devi metterci i driver di livello /* con questo sketch e' possibile leggere e modificare i parametri del * modulo Bluetooth tramite comandi AT * va collegato il pin "Key" e mantenuto alto sul modulo Bluetooth per fare queste operazioni * terminale settato con nessun fine riga */ #include <SoftwareSerial.h> #define RxD 11 #define TxD 12 #define RST 5 #define KEY 4 SoftwareSerial BTSerial(RxD, TxD); void setup() { pinMode(RST, OUTPUT); pinMode(KEY, OUTPUT); digitalWrite(RST, LOW); digitalWrite(KEY, HIGH); digitalWrite(RST, HIGH); delay(500); BTSerial.flush(); delay(500); BTSerial.begin(9600); Serial.begin(9600); Serial.println("Comando AT :"); BTSerial.print("AT\r\n"); delay(100); } void loop() { if (BTSerial.available()) Serial.write(BTSerial.read()); if (Serial.available()) BTSerial.write(Serial.read()); } se colleghi i pin della seriale hw o sw ad un altro micro fai un colelgamento TTL compatibile .Devi solo stare attento che l'altro micro lavori su livelli TTL 5V .Se usi un Arduino UNO e un DUE devi metterci una schedina che fa da traslatore di livelli 3.3/5V e viceversa , anche se in realta potresti cavartela con un partitore sul tx in quanto sul rx il livello 3.3V e' gia considerato come alto come soglia per i 5V , però meglio i trslatori di livello.Io per ora ho testato i traslatori di livello veloci per I2C collegati al DUE e qualche periferica I2C , aspetto che mi arrivino quelli per la seriale e quelli meno veloci per i rele' .Ora attendo babbo natale che mi proti un altro scatolone di roba per costruire un hub I2C con selettori per connettere master a 3.3V o a 5V , resistenze di pull up e vari connettori per agganciare real time clock , MCP23017 , accelerometro , sensore temp e umidità ed altre cose .Poi voglio testare la comunicazione ra due arduini in I2C uno master e l'altro slave Modificato: 10 marzo 2015 da walterword Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 10 marzo 2015 Autore Segnala Share Inserita: 10 marzo 2015 Io vi ringrazio di tutte le info ma non ci capiamo su un punto. Arudino 1 pin 0 è RX della periferica seriale del micro arduino. Su quel pin arriva tramite resistenza di 1K la seriale dal convertitore USB/seriale della scheda arduino ed è la linea da cui arduino riceve dal PC Se io mi attacco con una'altra periferica al pin0 che sia l'uscita di un traslatore di livello o di un altro micro per me c'è un conflitto. Ci metto, che ne so, la seriale di un modem ai pin 0 e 1 perciò la linea TX della seriale del modem finisce sul pin0. Quando decido di riprogrammare la scheda arudino da PC invio il codice che arriva all'arduino tramite il pin0 e nel frattempo il TX del mio modem soffre e forse anche si rompe. se non ci metto almeno uan resistenza in mezzo. (Ma non la trovo una gran soluzione) Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 10 marzo 2015 Segnala Share Inserita: 10 marzo 2015 (modificato) si , e' la stessa seriale Per questo motivo che ho usato la seriale via software Se la usi tramite usb non la puoi usare diversamente Per capirci , la periferica seriale di arduino uno e' solo una Modificato: 10 marzo 2015 da walterword Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 11 marzo 2015 Segnala Share Inserita: 11 marzo 2015 Per capirci , la periferica seriale di arduino uno e' solo una Una volta trasferito il programma puoi usarla per lavorare tranquillamente. ha un comportamento simile a quello dei pins B6 e B7 dei PIC che sono usati per la programmazione (data e clock). Una volta programmato, se non usi un attrezzo di debug come ICD o PicKit quei 2 piedini sono disponibili come normali piedini di I/O della porta B. Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 11 marzo 2015 Autore Segnala Share Inserita: 11 marzo 2015 Grazie Valter Uhm infatti non capivo. Non è molto che studio arduino, avevo visto diversi schemi di shields che usano l'interfaccia seriale Alcuni come dici tu utilizzano seriale software altri invece si collegano direttamente ai pin 0 e 1 senza problemi. In questo modo conflitti a parte, tutti i messaggi di debug verso il PC arrivano anche alla scheda collegata. Livio (eravamo sulla stessa finestra) è giusto quello che dici però la procedura corretta sarebbe scollego la seriale della mia periferica programmo arduino collego la mia periferica oppure devo stare attento e mettere qualcosa per evitare il corto sul pin TX della mia periferica durante la programmazione Ma non ho trovato nessun warning a riguardo anche se ammetto non ho spazzolato molto la documentazione. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 11 marzo 2015 Segnala Share Inserita: 11 marzo 2015 Si la procedura che hai descritto è corretta. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 11 marzo 2015 Segnala Share Inserita: 11 marzo 2015 prima la usavo cosi , però devi continuamente attaccare e staccare ....per cui uso la seriale software , almeno quando devo parametrizzare il bluetooth , anche perche se la seriale la uso con il terminale , altre non ne ho .... comunque se usi la seriale collegata esternamente , quando lo programmi c'e' un conflitto , devi continuamente attaccare e staccare l'RX Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora