Tutorial 08: analogRead() Og Seriell Port Kommunikasjon

analogRead() Og Seriell Port Kommunikasjon

Å Vite om noe er på eller av kan være svært nyttig, men ofte vil du ønsker å vite mer. Hvor sterkt er lyset?

hvor fort beveger satellitten seg? Disse typer svar er ofte analoge – de dekker et stort spekter av verdier, ikke bare på eller av.

Arduino håndterer analoge innganger med 6 dedikerte pinner, merket A0 til A5. Disse pinnene har tilgang til en analog-til-digital omformer, som tar rekkevidden av inngangsverdier og skaper en digital versjon ved å kutte rekkevidden i små biter. Alt dette håndteres bak kulissene-alt du trenger å gjøre er å bruke noen svært enkle funksjoner, og du vil få det du trenger.

Du Trenger

  1. Potensiometer (noe motstandsområde vil fungere)
  2. Jumper Ledninger – minst 3
  3. sykkeldekk

Trinnvise Instruksjoner

  1. Plasser potensiometer i brødfjel.
  2. Kjør en jumper wire fra 5-Volt pin Av Arduino til en av de utvendige pinnene i potensiometeret.
  3. Kjør en annen jumper wire fra en av bakken pinnene På Arduino (merket GND) til den andre utenfor pin av potensiometeret.
  4. Kjør den endelige jumper ledningen fra pin A0 På Arduino Til midtpinnen på potensiometeret.
  5. Koble Arduino til datamaskinen.
  6. Åpne Opp Arduino IDE.
  7. Åpne skissen for denne delen.
  8. Klikk På Bekreft-knappen øverst til venstre på skjermen. Det vil slå oransje og deretter tilbake til blå når den er ferdig.
  9. Klikk På Last opp-knappen (Ved Siden Av Bekreft-knappen). Det vil slå oransje og deretter tilbake til blå når den er ferdig.
  10. På Menylinjen, gå Til Verktøy > Serial Monitor-dette vil åpne Serial Monitor vindu – du bør se tall rulle ned denne skjermen.
  11. juster nå knappen på potensiometeret og se det serielle skjermvinduet. Tallene bør justeres mellom 0 og 1023.

Bruke arduino analogread og kartfunksjonen med et potensiometer på pin A0

dette bildet komponert Med Fritzing.

Arduino-Koden

/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Graphical representation is available using serial plotter (Tools > Serial Plotter menu) Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain.*/// the setup routine runs once when you press reset:void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600);}// the loop routine runs over and over again forever:void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability}

Diskuter Skissen

denne skissen starter med en kommentar med flere linjer som beskriver skissen og kretsen. Du vil sannsynligvis legge merke til at den første kodeblokken er setup () – funksjonen – vi erklærer ikke eller initialiserer noen variabler i begynnelsen av denne skissen-i stedet vil vi gjøre dette inne i loop () – funksjonen, som i det siste eksemplet. Inne i curly braces av setup () besøker Vi Seriebiblioteket og bruker Funksjonen Serial.begynne().

void setup() {// initialize serial communication at 9600 bits per second:Serial.begin(9600);}

hvis du husker fra den siste leksjonen, Seriell.begin () tar baud rate som et argument (dette vil nesten alltid være 9600). Denne funksjonen lar deg sette opp en kommunikasjonskanal mellom datamaskinen og Arduino. Som du kanskje vet nå, kjører setup () bare en gang, og så går vi videre til neste kodeblokk.

men vent! Må vi ikke sette modusen til pinnen vi skal bruke? Flott poeng!

Hva Arduino gjør, som standard, er satt alle pinnene på brettet som Innganger med mindre du forteller det ellers. Så i mange tilfeller trenger du ikke å eksplisitt angi en pin som en inngang ved hjelp av pinMode () – funksjonen. Når det er sagt-jeg gjør det til en vane å gjøre dette uansett-fordi det gjør ting klart for meg-og det er verdt det i rom og innsats.

så jeg tør deg, sett modusen til pinnen ved hjelp av pinMode (A0, INPUT) – funksjonen inne i krøllete braces of setup()– du vil ikke angre på det.

Fortsett til loop () – funksjonen, vi starter med en variabel deklarasjon og initialisering.

int sensorValue = analogRead(A0);

vi erklærer en variabel som heter sensorValue, og vi initialiserer den til utgangen av en ny funksjon. Denne nye funksjonen er den glamorose analogRead (). Så ta en vill gjette hva denne nye funksjonen analogRead () gjør. Den leser verdien på den analoge pinnen du har valgt – i dette tilfellet er det den analoge pinnen A0, der vi har senterpinnen til potensiometeret tilkoblet. Spenningen ved pin A0 vil bli kartlagt til et tall mellom 0 og 1023, og denne verdien vil bli tildelt den variable sensorverdien.

hvis du husker ovenfra, vil den faktiske spenningen ved pin A0 være mellom 0 og 5 volt, avhengig av hvor potensiometeret er justert – denne verdien blir kartlagt til området 0 – 1023 ved hjelp av analog-til-digital omformer. Så vi har en variabel som har registrert verdien på vårt potensiometer – hva neste? Vel, la oss se på verdien. For å gjøre det, må vi skrive Det Ut Fra Arduino til datamaskinen vår – og du gjettet det, vi vil bruke Seriebiblioteksfunksjonen println () for å gjøre nettopp det…

Serial.println(sensorValue);

Ingen store overraskelser her-vi sender som et argument sensorValue-variabelen til funksjonen Seriell.println () og vårt serielle skjermvindu vil vise de resulterende verdiene.

for å fullføre skissen, påberoper vi delay () – funksjonen i ett millisekund for å sikre at neste lesning er stabil og vi starter på toppen av sløyfen () igjen. Vi tar opp en ny verdi ved hjelp av analogRead (), lagrer den på variabelen sensorValue og skriver den ut på datamaskinen.

Alt dette er bra og bra, du kan tenke, men hva har et potensiometer å gjøre med sensorer? Et potensiometer føler ikke noe! Du har rett – men interessant, mange sensorer fungerer ved å bruke samme prinsipp som et potensiometer gjør-justere motstanden. Ta en fotomotstand for eksempel-den kan brukes til å fornemme lys – fordi motstanden endres basert på lysets lysstyrke som den er utsatt for – denne endringen i motstand vil justere mengden spenning som en pinne på mottakersiden vil motta. Så nå er ballen i retten din-hva kan du bruke analogRead () til?

Prøv På Egen Hånd

  • Endre analog pin Til A2. Gjør justeringer i koden og kretsen.
  • Prøv et annet potensiometer i kretsen, påvirker det verdiområdet som vises?

Videre Lesing

  • analogRead ()
  • Analoge Inngangspinner
  • potensiometer tutorial-dette er bra

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.