Arduino Serial.Les og seriell.skrive

Arduino Serial.Les og seriell.skrive
Arduino er en elektronisk prototypingsplattform brukt av nybegynnere, studenter og ingeniører for å designe flere prosjekter. Arduino bruker seriell kommunikasjon for å overføre og motta data med forskjellige maskinvare og sensorer. For å hjelpe brukere for seriell kommunikasjon har Arduino -programmering en liste over seriefunksjoner tilgjengelig. Blant dem er to mye brukte funksjoner for å overføre og motta data er Serie.skrive() og Serie.lese() henholdsvis. Les denne guiden for å få god kunnskap om disse to funksjonene.

Arduino Serial.lese()

I Arduino -programmering av funksjonen Serie.lese() leser de innkommende seriedataene på seriell port av Arduino. Dataene lagres ved hjelp av en int -datatype. Serie.Les () -funksjonen leser dataene i byte og returnerer et negativt tall -1 når ingen data er tilgjengelig i seriell port av Arduino. Les data lagres i form av byte og 1 byte = 8 biter.

Når data legges inn til et Arduino -kort, vil UART samles hver av 8 biter i en enkelt byte og lagre disse databyttene inne i Arduino -seriebufferen. Opptil 64 byte med data kan lagres inne i seriell mottaksbuffer.

Syntaks

Syntaks brukt i Arduino -programmering for seriell.Les () er:

Serie.lese()

Parametere

Serie: Det betyr havnen i Arduino. Minst en seriell port er til stede i alle Arduino -tavler. Sjekk databladet for det respektive Arduino -styret for å få mer info.

Returverdi

Serie.Les () Funksjoner returnerer den første byten av mottatte seriedata. I tilfelle hvis ingen data mottas ved seriell portfunksjon, vil du returnere -1. Returnert datatype er int.

Merk: Seriell.Les () vil ikke returnere noen røye hvis dataene ikke er der, vil bare returnere -1.

Eksempelkode

La oss se på et eksempel for bedre forståelse:

char inputSerialData = 0; /* Variabel for å lagre innkommende seriedata*/
void setup ()
Serie.Begynn (9600); /* Seriell kommunikasjon begynner*/

void loop ()
hvis (seriell.tilgjengelig ()> 0) /* Hvis betingelse for å se etter seriedata* /
InputSerialData = Serial.lese(); /* Les innkommende seriedata*/
Serie.print ("mottatt data:"); /* utskrift mottatt data på seriell skjerm*/
Serie.println (inputSerialData);

I ovennevnte kode først har vi initialisert en variabel for å lagre seriedata deretter i Løkke() Seksjonen, programmet vil se etter seriedataene i seriell port hvis dataene er tilgjengelige, det vil bli skrevet ut på seriell monitor som kan sees på utgangsterminalen.

Produksjon
Utgangen kan sees på utgangsterminalen. Her har vi sendt forskjellige karakterer til Arduino serieport:

Arduino Serial.skrive()

Serie.skriv () -funksjonen skriver de binære dataene til Arduino -serieporten. Data overføres i en serie byte. I tilfelle vi vil overføre eller skrive sifrene med tall som er representert med tegn, vil vi bruke seriell.trykk () i stedet for seriell.Skriv () Funksjon.

Syntaks
Følgende er syntaksen fulgt mens du skriver data serielt.

Syntaksen nedenfor representerer når vi må Skriv en verdi serielt:

Serie.Skriv (val)

Når vi trenger å sende en streng Følgende syntaks vil bli fulgt:

Serie.skriv (str)

Å sende spesifikt antall byte fra en streng Under syntaks vil bli fulgt:

Serie.skriv (buf, len)

Parametere

Følgende er listen over parametere seriell.skriv () funksjon tar:

Serie: Seriell port av Arduino Board.

Val: En verdi som vil bli satt som en enkelt byte.

str: Når vi sender en streng serielt som en serie byte.

buf: Å sende en matrise som en serie byte.

Len: Spesifikt antall byte sendt fra matrise serielt.

Returverdi

Den returnerer antall skrevet byte og den returnerte datatypen er størrelse_t.

Eksempelkode

Følgende eksempel viser arbeid av serien.Skriv () Funksjon:

void setup ()
Serie.Begynn (9600);

void loop ()
Serie.skriv (45); / * 45 er ASCII-verdien av røye ("-") */
int data_bytes_sent = serie.Skriv ("Linuxhint.com "); /*Send strengen" Linuxhint.com "og returner strenglengde*/
forsinkelse (2000);

Her i denne koden initialiserte vi seriell kommunikasjon slik at vi kan overføre data ved hjelp av seriell kommunikasjon. Først ved hjelp av serie.skriv () og ASCII-verdien av karakteren Dash “-” vil bli skrevet ut hver gang. Neste en streng blir sendt serielt med serien.Skriv () Funksjon. Det gis en forsinkelse for å lese utdataene enkelt:

Produksjon
String “Linuxhint.com ”er serielt trykt ved hjelp av serien.Skriv () Funksjon. Seriell skjerm viser utgang.

Forskjell mellom Arduino -serien.skriv () og seriell.skrive ut()

Serie.skrive() Funksjonen er enkel og rask. Det er laget for å takle binær betydning en byte om gangen. Dataene som er skrevet med binær sendes som en byte eller serie med byte.

Serie.skrive ut() Funksjon derimot er mer allsidig, dataene skrives ut på seriell skjerm som menneskelig lesbar ASCII -tekst. Først konverteres inndataene fra ASCII til binær. Den kan også konvertere data til søppel, hex, oktober og desember, men vi må spesifisere dem i det andre funksjonsargumentet.

Serie.PRINT () Funksjon kan ta mange former som:

  • ASCII -tegn brukes til å skrive ut hvert siffer på et tall.
  • Flyter trykt som ASCII -sifre, som standard opptil to desimaler.
  • Byte sendt i form av enkeltkarakterer.
  • Tegn og strenger sendes uten endringer.

Konklusjon

Arduino -styret bruker seriell kommunikasjon for å overføre og motta data med periferiutstyr. Arduino har en liste over serielle funksjoner tilgjengelig som hjelper Arduino i seriell kommunikasjon. Blant dem Serie.lese() og Serie.skrive() er to funksjoner, seriell.les () leser data tilgjengelig på seriell mottaksbuffer og serie.skriv () skriver data til Arduino seriell port som en enkelt byte eller serie byte. Denne oppskrivningen vil bidra til å lære mer om dem.