Far comunicare due Arduino via Seriale con una porta SoftwareSerial - #47
ฝัง
- เผยแพร่เมื่อ 5 ก.พ. 2025
- In questo video vedrai come collegare due Arduino per farli comunicare l'uno con l'altro. Una scheda trasmetterà dati e l'altra li ricever, rigirandoli sul Serial Monitor. Per realizzare questo esercizio è necessario usare una porta seriale di tipo Software (Software Serial) che può essere associata a due pin qualsiasi di Arduino.
Sorgenti e schemi:
github.com/zma...
Puoi scaricare gratuitamente il mio libro: "Il manuale di Arduino - Guida Completa" dal mio sito: www.zeppelinmaker.it oppure direttamente da gumroad: gumroad.com/l/...
Abbastanza complesso, a prima vista. Ma come tutte le cose, quando mi servirà, e lo analizzerò in blocchi semplici, lo capirò (la mia collezione di Arduini è composta da 2 Arduini UNO e 3 Arduini Nano). Si, notevole Paolo. Questo corso non è appariscente come altri, ma sostanzioso: quello che cercavo. La tua capacità di spiegare, coinvolgendo il discente, è notevole. Non dico che voglio diventare esperto...ma anche si, perché no! Grazie, come al solito!
Ciao Paolo, come sempre grazie del lungo ed appassionato commento. Ho grandi progetti... (con i video sono arrivato a 60... ed usciranno nei prossimi giorni). Il problema è che se ci penso me ne vengono in mente altri cento da fare (sempre su Arduino...). C'è un proverbio delle mie parti che inizia così: "Con la calma e con la pazienza..." La conclusione la ometto per decenza, ma il senso è quello! Buona giornata!
paolo aliverti Ma già te l'ho scritto io me ne 'sorbirei' anche 200 di video così!
Notevole !! Ci stai viziando con questi bellissimi video !!! Grazie !!!
grazie a te!
bel video.l'ho usato proprio per far parlare due macchinari che avevo costruito in due periodi diversi...
Ho notato che moltissimi utenti incrociano la passione del cnc con arduino ,sono tanti che hanno problemi ad usarlo come interfaccia esterna o come pulsantiera per il controllo delle loro macchine cnc,magari ti puo essere di spunto..
Thanks!
Ciao Antonio. Grazie!
volevo ringraziarti paolo, con questo tuo esempio mi hai aiutato a far comunicare una esp8266 integrata su un arduino mega r3 , non reperendo molti dati su quest'ultima sono riuscito a far comunicare le 2 schede integrate poichè sono 2 corpi distinti e separati in fase di programmazione, grazie ancora!!!
Fantastico , come al solito. Domani lo provo. Grazie!!
Utile chiaro e di facile comprensione. Grazie
Grazie per tutte queste info. Ho preso il nuovo libro: molto utile.. Saluti!!
Chiarissimo come al solito, pensa che bello quando tra qualche giorno dovrò provare ad interfacciare 1 arduino (UNO o NANO, siamo là) con un NODEMCU dato che deve mandare messaggi su Telegram.
Grande come al solito👍👍👍
salve Paolo
con un mega che ha piu seriali come si procederebbe? sempre con la soft serial?
grazie
Grande corso Paolo
grazie! e siamo solo a metà! ;-)
Buon giorno le scrivo perché secondo me su yutube lei e il migliore come programmatore, vorrei precisare che io sono un dilettante nel linguaggio C++ sono bravino in ASM per PIC e ST6,sono bravo però coi circuiti elettronici, tengo a precisare che la seriale di arduino sul pin d0 e d1siglata RX,TX per arduino nano, non e TTL come alcuni potrebbero pensare ma lavora a 3,2v, se si entra con un segnale a 5v funziona ugualmente ma alla lunga potrà causare problemi,cordiali saluti Romano
grazie mille
cosa usi per fare i disegni sui video?
ciao, tutto ok? spero di sì
Ciao, ti ricordi di me? Spero tutto meglio.
Sto guardando.il video 47: domanda: coda devo usare come hardware rs232 da collegare ad Arduino per collegare 2 dispositivi rs232.(un cronometro e un tabellone-display tempi che hanno.uscite ingressi rs232 standard?)che shield devo usare?
Grazie x l'aiuto Maury
ciao. ci sono delle breakout board che sono pronte all'uso. Usano dei chip max232.
Maestro mi perdoni ma quindi posso usare arduino tx come imput e arduino rx come autput? cioe' posso accendere un led su arduino rx utilizzando arduino tx?
grazie
si!
Una curiosità... Sto rispolverando dopo 2 anni la comunicazione tra dispositivi. Cosa succede, usando le software serial come in questo esempio, se quando TX trasmette TX sta invece facendo altro? Interrompe oppure perde i bit trasmessi? Grazie infinite. Inoltre, questo tipo di comunicazione può essere bidirezionale? A occhio credo di si, perché nessuno dei due è definito come Master (cosa che invece accade con i2c)
Ciao è possibile collegare un Arduino a una porta usb diversa dalla sua su connettore esterno collegando i pin d1 e d0 direttamente e usarla come se fosse quella on board? Grazie
Ottimo ! grande paolo vorrei ricevere i dati temperatura di due sonde da arduino nano e visualizzarle su lcd tramite arduino mega usato come ricevitore, si puo' fare ? grazie !
Se una libreria utilizza funzioni che mandano e ricevono dati sulla seriale è possibile fare in modo che le funzioni della libreria utilizzano la software serial e non la seriale di arduino?
Ciao ho notato che la mia seconda scheda che è una arduino duemilanove viene alimentata solo attraverso i cavi di collegamento TX e RX e la GND in comune, non ho bisogno di ulteriore alimentazione esterna. Scollegando la RX o GND la duemilanove perde l'alimentazione. Come è possibile?
ciao domanda: posso collegare al posto di arduino ricevitore un pannello led scritte scorrevoli? per poi usare il programma apposta per scritte scorrevoli? se si come ? grazie
ho fatto un video con una matrice di led scorrevole MAX7912...
Interessante come sempre... grazie.
Ho trovato questo tutorial in quanto ho due rotori az/el autocostruiti (Satnogs) comandati da due shield cnc con Arduino Nano che vorrei far muovere in contemporanea utilizzando un solo cavo USB. Posso inviare i dati ricevuti dal primo Nano (dal pc via USB) al secondo utilizzando la libreria SoftwareSerial? Secondo te, visto che i dati sono sostanziosi e con un aggiornamento di microsecondi, questa cosa potrebbe funzionare? Ovviamente trattandosi di inseguire satelliti, non dovrebbero esserci perdite di dati.
Grazie come sempre.
che figata !
Salve Paolo. Ho un progetto da terminare ed il tuo video mi è stato molto di aiuto. Adesso però mi trovo davanti ad un altro problema. Ti spiego lo scenario: Ho due pc (pc1 e pc2), sul primo ho collegato tramite usb un ardunuino m0 pro che fa da mittente, e sull'altro pc (pc2) ho collegato ancora un altro arduino, sempre m0 pro, che deve ricevere i dati dal mittente. L'arduino m0 pro ha un microchip della atmel samd21g e non supporta la libreria Software Serial, dunque, dato che i due arduino devono comunicare tramite seriale, mi sono arranciato in un altro modo. La situazione è che i due arduino comunicano in una seriale software (nei pin digitali 10 e 11 che ho impostato come UART al posto dei classici 0 e 1), e l'arduino ricevente mostra i dati ricevuti nella seriale classica. Fin quì tutto funziona, dal mittente devo mandare una struttura di uint8_t al destinatario, che la mostrerà nel monitor seriale. Le cose si complicano quando devo impostare un timer freertos nell'arduino mittente, che manda ogni 80ms la stessa struttura precendente. Quando vado a mandare la struttura e faccio il corretto collegamento, non ricevo alcun dato in seriale... Vorrei capire se il timer intaccasse nel mandare i dati in essa... ps: una nota molto strana è che se nell'arduino mittente impostassi al posto della seriale software, la classica seriale, e aprissi u nterminale putty per controllare cosa viene mandato all'interno, i dati arrivano tutti.
Buona sera Paolo. Io ho a disposizione un arduino UNO e un arduino MEGA. Posso utilizzarli entrambi o devono essere uguali?
no vanno bene!
Fantastico come sempre!
Avrei una domanda da farti, posso memorizzare in una variabile stringa, quello che ricevo dal primo arduino?
certo!
Perdonami, ho provato a farlo su tinkercad, ma sull’Arduino ricevente non mi arrivano i numeri, bensì dei simboli.... come faccio?
Ciao.. si riesce a programmare tutti è due gli Aarduini... Dalla stessa seriale..???
Intendi il secondo tramite il primo?
Non ho capito se la comunicazione può essere bidirezionale: arduino 1 scrive e arduino 2 risponde.
L' unica info che ho trovato: meglio usare i2c.
Com'è la faccenda?
Molte grazie.
Con la seriale puoi comunicare in entrambi i versi... guarda questo: th-cam.com/video/fVFxinln7c4/w-d-xo.html
@@zeppelinmaker Molte grazie! Sempre gentilissimo. Ciao.
Paolo, sul monitor seriale del secondo arduino si vedono caratteri strani, non i numeri. Cosa può essere?
baud? sono corretti? disturbi?
Ma come funziona la comunicazione seriale? Cioè proprio a livello di trasmissione e ricezione dei dati. Poi quale è il nome esatto della comunicazione seriale di Arduino? Perché so che ci sono più protocolli per la comunicazione seriale.
Ciao Paolo
Complimenti ancora per il video, sempre competente e sempre esauriente, nonché appassionante
Devo farti una domanda, dato che hai molta più esperienza di me
E' possibile comunicare più di un valore sulla seriale? Cioè, secondo te è possibile comunicare due valori differenti sulla seriale e farli ricevere dallo stesso arduino?
Grazie già in anticipo
ciao, certamente. Puoi inviarli con un carattere "separatore" nel mezzo e poi separarli all'arrivo.. tipo: 10,12. All'arrivo fai lo split della stringa
Bel video davvero, illustra una potenzialità non certo scontata ! Una curiosità: abbiamo il pin 1 in TX sul primo Arduino, connesso a pin 10 sul secondo che quindi scrive sul Serial Monitor del secondo... il pin 11 sul secondo e il pin 0 in RX sul primo sembra non siano utilizzati in questo progetto, giusto ? O servono per dei segnali di acknowledge ?
Se no ci sono dei segnali di ritorno non credo. Bisognerebbe provare a staccare un filo!
ciao paolo, è possibile inviare più di un dato? direi di si no?
certo! infiniti!
@@zeppelinmaker grazie
@@zeppelinmaker anche atmega standalone?
@@desca97 certo. Ci sono anche altri video sull'argomento. Vai sulla home del canale e cerca seriale o serial...
come posso controllare due servo che si trova su un arduino attraverso un altro arduino? e quanto è precisa dopo una decina di metri la seriale?
Buona sera, ha tante le volte un video dove spiega arduino mega e schermo tft ST7735 az delivery. ? Ho guardato il suo video dello schermo tft su arduino uno, adesso ho la necessità di avere più pin I/O e ho preso arduino mega ma non mi funziona più lo schermo
Ciao. Ho provato la comunicazione tra un Uno e un Nano, non funziona. Cosa occorre modificare? Oppure funziona solo tra due Arduino dello stesso tipo? Grazie.
dovrebbe funzionare...
@@zeppelinmaker Dopo varie prove ha iniziato a comunicare, non ho capito dove era il problema. Grazie.
Ho utilizzato due arduini mini. Con stupore, il primo viene alimentato dal collegamento seriale. Senza, cioè collegarlo con cavo usb. Normale?
mai provato ma è molto strana questa cosa.
Ciao, certe volte le cose semplici sfuggono... Ho cercato e usato questo tuo video ed... eureka! Ora ho Arduino UNO e ESP-01 legati da SoftwareSerial e riesco a mandare i dati dei sensori letti con Arduino su monitor seriale della ESP-01 (in futuro li manderò WiFi ad un access point fatto con altra ESP-01 che avrà Web Server montato su di essa), senza doverla più programmare. Verso un datalogging WiFi con una rete creata da ESP-01 e dati letti da Arduini...
Si possono avere piu di un arduino che riceve da uno trasmettitore? Basta collegare i seriali in parallelo?
Credo sia meglio usare una rs485 in questi casi che si comporta come un BUS e permette il collegamento di 255 elementi. Devo farci un video.
@@zeppelinmaker allora aspetto con ansia perché sono intetessato
Buon giorno Paolo,
io ho provato a fare la stessa cosa con un arduino mega e senza usare le softwerserial ma le 4 seriali fisiche .
Mi si presenta pero' un problema che non riesco a risolvere.
utilizzo tre porte seriali 0,1,2 ,leggo dalla 0 monitor serialle e scrivo sulla serial 1, ma mi ritrovo sul monitor una (scritta ricevo dati da seriale 1) ogni volta che scrivo sulla seriale 1, mentre questa seriale non e ancora collegata. ovviamente il ciclo si blocca qui'.
srivo con Serial1.print, ricevo con if (Serial.aveilable()).......x=Serial1.read();ecc
Grazie per l'attenzione.
P.S.
Ottimo canale,veramente.
Non mi sono mai perso un video!
Complimenti.
Salve, volevo chiedere se qualcuno sapesse dove reperire le informazioni necessarie per realizzare questo progetto (mai usato arduino purtroppo):
Realizzare un sistema di gestione di una seconda linea seriale come processo in background ovvero gestito da Interrupt e scheduler del timer.
Se qualcuno riesce a darmi una mano ne sarei grato, grazie
in tinkercad mi da dei caratteri inconsistenti