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.
Noen av de viktigste tekniske spesifikasjonene av USART -pinner er fremhevet i nedenfor nevnte punkter:
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:
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
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.