USART in Arduino Uno

USART in Arduino Uno

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.

  • PIN TX per la trasmissione dei dati
  • PIN RX per la ricezione di dati


Alcune delle principali specifiche tecniche dei pin USART sono evidenziate nei punti di seguito menzionati:

  • Nell'immagine sopra due LED sono contrassegnati come TX e RX. Questi due LED iniziano a battere le palpebre quando Arduino trasmette o riceve dati utilizzando la comunicazione seriale USART.
  • Quando Arduino riceve i dati da PC RX LED GLOW che indica che i dati vengono ricevuti da Arduino in modo simile quando Arduino trasmette i dati al luccichio a LED PC TX che indica la trasmissione di dati su PC utilizzando il cavo USB.
  • Stato a LED di TX e Rx lampeggiano in modo opposto quando Arduino stabilisce una comunicazione seriale con hardware, dispositivi o moduli esterni che utilizzano TX su D1 e RX su pin D0.
  • Arduino non supporta la comunicazione simultanea su pin USB e TX e RX. Se i pin TX e RX utilizzati da qualsiasi altro dispositivo Arduino non possono comunicare con PC su USB.
  • I pin TX e RX usano la logica TTL. La comunicazione seriale tra Arduino e altri dispositivi seriali come il PC si verifica allo stesso tasso di baud.

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:

  • USART è un'operazione duplex completa
  • È possibile un'operazione sia sincrona che asincrona
  • Operazione sincrona cronometrica o slave
  • Può generare tasso di baud ad alta risoluzione
  • Comunicazione ad alta velocità
  • Protocollo di comunicazione multi-processore
  • Modalità asincrona a doppia velocità

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
  • Modalità a doppia velocità asincrona
  • Modalità sincrona

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.