Arduino ha un modo flessibile di trasferire dati tra dispositivi e PC. Arduino utilizza un protocollo seriale noto come USART per comunicare tra questi dispositivi. L'uso di USART Arduino può ricevere input e output da sensori come GPS, GSM, RFID e altri sensori. Tutti i dispositivi che supportano la comunicazione seriale possono essere collegati ad Arduino, il che migliora la compatibilità generale di Arduino e l'uso esteso nei progetti elettronici.
USART in Arduino Uno
USART è anche noto come trasmettitore universale sincrono/asincrono ricevitore; USART è un protocollo di comunicazione seriale utilizzato nei microcontroller AVR ATMEGA. Arduino utilizza questo protocollo per trasmettere e ricevere dati da dispositivi, sensori e PC. UART trasmette e riceve i dati sotto forma di bit con riferimento all'impulso di clock. Può trasferire un bit alla volta su un singolo filo.
Pins Arduino USART
La maggior parte delle schede Arduino ha due pin TX e RX che vengono utilizzati per i dispositivi di comunicazione seriale.
Alcune delle principali specifiche tecniche dei pin USART sono evidenziate nei punti di seguito menzionati:
Funzionalità USART su ATMEGA328
Il ricevitore e il trasmettitore sincrono universali e asincrono è un modo altamente compatibile e flessibile di comunicazione seriale tra diversi dispositivi. Le caratteristiche principali di USART sono:
ATMEGA328P CHIP | Arduino Uno Nome pin | Descrizione Arduino | Funzioni |
PD0 | RX/D0 | Pin IO digitale 0 | Pin seriale RX |
PD1 | TX/D1 | Pin IO digitale 1 | Pin tx seriale |
PD4 | D4 | Pin IO digitale 4 | Timer (T0/XCK) |
Modalità di funzionamento
Arduino AVR MicroController funziona in tre modalità:
Modalità normale asincrona
Durante questa modalità Arduino utilizza la velocità di baud predefinita per ricevere e trasmettere dati senza impulsi di clock sotto forma di bit per bit.
Modalità a doppia velocità asincrona
Durante questa modalità La velocità di trasferimento dei dati diventa doppia con la velocità di trasporto. Questo tasso di baud è impostato all'interno del registro UBBR. Questa è una comunicazione ad alta velocità utilizzata dove è richiesta una trasmissione e una ricezione di dati accurati e rapidi.
Modalità sincrona
Come il nome mostra sincrono, il che significa che i dati sono sincronizzati con impulsi di clock. Durante questa modalità i dati vengono trasmessi o ricevuti con gli impulsi di clock definiti nel registro UCSRC.
Trasmettere dati utilizzando USART
Nome stringa;
void setup ()
Seriale.Inizia (9600);
ritardo (1000);
Seriale.println ("Qual è il tuo nome?");
void loop ()
Se (seriale.disponibile())
nome = seriale.ReadStringUnTil ('\ n');
Seriale.println ("Piacere di conoscerti" + nome + "!");
Nel codice sopra abbiamo inizializzato una stringa "nome" Ciò memorizzerà l'input dell'utente e lo mostrerà sul monitor seriale.
Seriale.inizio (9600) inizializzerà la comunicazione USART con un tasso di baud definito. Due funzioni importanti Seriale.disponibile() E Seriale.ReadStringUnTil () sono utilizzati nel programma sopra.
Seriale.Disponibile restituirà diversi caratteri sotto forma di byte che sono stati letti. IL Seriale.ReadStringUntil La funzione consentirà di combinare tutti i caratteri di input dell'utente e l'output verrà visualizzato in modo più importante.
Output del monitor seriale
Controllo del LED usando USART
Ora usando la comunicazione seriale, controlleremo un LED tramite un monitor seriale. Collegare la scheda Arduino con PC utilizzando il cavo USB B e caricare il codice di seguito sulla scheda Arduino.
char inputstate;
void setup ()
Seriale.Inizia (9600);
pinMode (13, output);
void loop ()
Se (seriale.disponibile ()> 0)
inputState = (char) seriale.Leggere(); // Leggi i dati seriali
if (inputState == '1') // Controlla l'input ricevuto
DigitalWrite (13, alto); // Se l'input è 1 LED Will
Seriale.print ("I dati di input ricevuti sono:");
Seriale.println (inputstate);
else if (inputState == '0')
DigitalWrite (13, basso); // Se l'input è 0 LED, si accorge
Seriale.print ("I dati di input ricevuti sono:");
Seriale.println (inputstate);
All'inizio del codice, abbiamo avviato a CHAR variabile stato di input che memorizzerà l'input dal monitor seriale.
Seriale.Inizia (9600);
Questa funzione inizializzerà la comunicazione seriale tra la scheda Arduino e il PC.
Seriale.disponibile()
IL Seriale.disponibile() La funzione cercherà il numero di byte disponibili per la lettura. Abbiamo usato un if-condizione Qui che verificherà i dati seriali di input se i dati seriali di input sono 1 Arduino imposterà il LED al pin 13 come alto e il LED si accenderà. Se l'ingresso è 0 Arduino imposterà il LED al pin 13 come basso e il LED si spegne.
Output del monitor seriale
Output a LED
Il LED si accende all'ingresso 1 e si spegne all'ingresso 0.
Quindi, abbiamo controllato LED usando la comunicazione USART tra Arduino e PC.
Conclusione
USART può essere molto utile nei progetti Arduino. Consente ad Arduino di interfacciarsi più dispositivi. Conoscere l'USART aiuterà nella comunicazione tra Arduino e più dispositivi. In questo articolo abbiamo completato due codici Arduino. Innanzitutto, abbiamo inviato una stringa all'Arduino e la abbiamo visualizzato sul monitor seriale e nel secondo codice abbiamo un LED di controllo utilizzando la comunicazione seriale USART.