USAart i Arduino Uno

USAart i Arduino Uno

Arduino har en fleksibel måte å overføre data mellom enheter og PC -er. Arduino bruker en seriell protokoll kjent som USART for å kommunisere mellom disse enhetene. Bruke USART Arduino kan motta inngang og utganger fra sensorer som GPS, GSM, RFID og andre sensorer. Alle enheter som støtter seriell kommunikasjon kan kobles til Arduino som forbedrer Arduino total kompatibilitet og omfattende bruk i elektronikkprosjekter.

USAart i Arduino Uno

Usart er også kjent som universell synkron/asynkron mottaker-transmitter; Usart er en seriell kommunikasjonsprotokoll som brukes i AVR ATMEGA mikrokontrollere. Arduino bruker denne protokollen for å overføre og motta data fra enheter, sensorer og PC -er. UART sender og mottar data i form av biter med referanse til klokkepuls. Den kan overføre en bit om gangen på en enkelt ledning.

Arduino USAart pinner

De fleste Arduino -tavler har to pinner TX og RX som brukes til serielle kommunikasjonsenheter.

  • TX PIN for overføring av data
  • RX PIN for å motta data


Noen av de viktigste tekniske spesifikasjonene av USART -pinner er fremhevet i nedenfor nevnte punkter:

  • I ovennevnte bilde er to lysdioder merket som TX og RX. Disse to lysdiodene begynner å blinke når Arduino overfører eller mottar data ved hjelp av USAT seriell kommunikasjon.
  • Når Arduino mottar data fra PC RX LED Glow, som indikerer at data mottas av Arduino på samme måte når Arduino sender data til PC TX LED -glød som indikerer overføring av data til PC ved hjelp av USB -kabel.
  • LED -status for TX og RX blinker motsatt når Arduino etablerer seriell kommunikasjon med ekstern maskinvare, enheter eller moduler ved bruk av TX ved D1 og RX ved D0 -pinner.
  • Arduino støtter ikke samtidig kommunikasjon over USB- og TX- og RX -pinner. Hvis TX- og RX -pinner som brukes av noen annen enhet, kan Arduino ikke kommunisere med PC over USB.
  • TX og RX PINS bruker TTL -logikk. Seriell kommunikasjon mellom Arduino og andre serielle enheter som PC skjer med samme baudhastighet.

Usart -funksjoner på atmega328

Universal synkron og asynkron mottaker og sender er en svært kompatibel og fleksibel måte å serielle kommunikasjon mellom forskjellige enheter. Hovedfunksjonene til USART er:

  • Usart er full dupleksoperasjon
  • Både synkron og asynkron drift er mulig
  • Master eller slave klokket synkron drift
  • Kan generere baud rate med høy oppløsning
  • Kommunikasjon med høy hastighet
  • Kommunikasjonsprotokoll for flere prosessor
  • Dobbelthastighet asynkron modus

ATMEGA328P CHIP

Arduino uno pin -navn

Arduino beskrivelse

Funksjoner

PD0 RX/D0 Digital io pin 0 Seriell RX -pinne
PD1 TX/D1 Digital io pin 1 Seriell TX -pinne
PD4 D4 Digital IO Pin 4 Timer (T0/Xck)

Driftsmåter

Arduino Avr Microcontroller opererer i tre modus:

  • Asynkron normal modus
  • Asynkron dobbelthastighetsmodus
  • Synkron modus

Asynkron normal modus

I løpet av denne modusen bruker Arduino forhåndsdefinert baudfrekvens for å motta og overføre data uten klokkepulser i form av bit etter bit.

Asynkron dobbelthastighetsmodus

I løpet av denne modusen blir dataoverføringshastighet dobbelt. Denne baudfrekvensen er satt i UBBR -registeret. Dette er høyhastighetskommunikasjon brukt der nøyaktig og hurtig dataoverføring og mottak er påkrevd.

Synkron modus

Som navnet viser synkron som betyr at data synkroniseres med klokkepulser. I løpet av denne modusen overføres eller mottatt med klokkepulser definert i UCSRC -registeret.

Overføre data ved hjelp av USART

Strengnavn;
void setup ()
Serie.Begynn (9600);
forsinkelse (1000);
Serie.Println ("Hva heter du?");

void loop ()
hvis (seriell.tilgjengelig())
Navn = Seriell.readStringuntil ('\ n');
Serie.Println ("Hyggelig å møte deg," + Navn + "!");


I koden over har vi initialisert en streng "Navn" som vil lagre brukerinngang og vise den på seriell skjerm.

Serie.Begynn (9600) vil initialisere USAT -kommunikasjon med en definert baudfrekvens. To viktige funksjoner Serie.tilgjengelig() og Serie.ReadStringuntil () brukes i programmet ovenfor.

Serie.Tilgjengelig vil returnere flere tegn i form av byte som er lest. De Serie.ReadStringuntil Funksjon vil gjøre det mulig å kombinere alle inngangskarakterene fra brukeren og utdataene vises på en mer fremtredende måte.


Seriell skjermutgang

Kontrollerende LED ved hjelp av USART

Nå som bruker seriell kommunikasjon, vil vi kontrollere en LED gjennom en seriemonitor. Koble Arduino -kortet med PC ved hjelp av USB B -kabel og last opp koden nedenfor til Arduino Board.

Char InputState;
void setup ()
Serie.Begynn (9600);
pinmode (13, utgang);

void loop ()
hvis (seriell.tilgjengelig ()> 0)
inputState = (char) seriell.lese(); // Les seriedata
if (inputState == '1') // sjekk for mottatt inngang
digitalwrite (13, høy); // Hvis inngangen er 1 LED vil på
Serie.print ("mottatte inndata er:");
Serie.println (inputState);

ellers if (inputState == '0')
digitalwrite (13, lav); // Hvis inngangen er 0 LED vil av
Serie.print ("mottatte inndata er:");
Serie.println (inputState);



I starten av koden har vi satt i gang en røye variabel inngangstilstand som vil lagre innspill fra seriemonitoren.

Serie.Begynn (9600);


Denne funksjonen vil initialisere seriell kommunikasjon mellom Arduino Board og PC.

Serie.tilgjengelig()


De Serie.tilgjengelig() Funksjon vil se etter antall byte som er tilgjengelige å lese. Vi har brukt en Hvis tilstand Her som vil se etter inndata -serien Data hvis inngangsseriedataene er 1 Arduino vil angi LED på pinne 13 så høyt og LED vil slå på. Hvis inngangen er 0, vil Arduino satt LED på pinne 13 så lavt og LED vil slå seg av.


Seriell skjermutgang


LED -utgang

LED vil slå på ved inngang 1 og slå av ved inngang 0.


Derfor har vi kontrollert LED ved hjelp av USART -kommunikasjon mellom Arduino og PC.

Konklusjon

USAart kan være veldig nyttig i Arduino -prosjekter. Det lar Arduino grensesnitt flere enheter. Å vite om Usart vil hjelpe til med kommunikasjon mellom Arduino og flere enheter. I denne artikkelen fullførte vi to Arduino -koder. Først har vi sendt en streng til Arduino og vist den over seriemonitoren, og i andre kode har vi kontroll LED ved hjelp av USART seriell kommunikasjon.