Tutorial 08: analogRead() ja Serial Port Communications

analogRead() ja Serial Port Communications

tietäen jos jotain on päällä tai pois voi olla erittäin hyödyllistä, mutta usein haluat tietää enemmän. Kuinka kirkas valo on?

kuinka nopeasti satelliitti liikkuu? Tämäntyyppiset vastaukset ovat usein analogisia-ne kattavat laajan valikoiman arvoja, eivät vain päälle tai pois.

Arduino käsittelee analogista tuloa 6 dedikoidulla nastalla, jotka on merkitty A0: sta A5: een. Nämä nastat on pääsy analoginen-digitaalimuunnin, joka vie erilaisia tuloarvoja ja luo digitaalisen version leikkaamalla alue pieniksi paloiksi. Kaikki tämä hoidetaan kulissien takana-sinun tarvitsee vain käyttää joitakin hyvin yksinkertaisia toimintoja ja saat mitä tarvitset.

tarvitset

  1. potentiometrin (mikä tahansa vastusalue toimii)
  2. hyppyjohdot – vähintään 3
  3. polkupyörän rengas

vaiheittaiset ohjeet

  1. Aseta potentiometri leipälautaasi.
  2. Juokse kirppulanka Arduinon 5 voltin tapista jompaankumpaan potentiometrin ulkotapeista.
  3. Juokse toinen kirppulanka yhdestä Arduinon (merkitty GND) maannaulasta toiseen potentiometrin ulkopuoliseen tappiin.
  4. Juokse viimeinen hyppyvaijeri Arduinon tapista A0 potentiometrin keskimmäiseen tappiin.
  5. Liitä Arduino tietokoneeseen.
  6. avaa Arduino IDE.
  7. avaa tämän jakson luonnos.
  8. Napsauta näytön vasemmassa yläkulmassa olevaa Varmennuspainiketta. Se muuttuu oranssiksi ja takaisin siniseksi, kun se on valmis.
  9. napsauta Lähetä-painiketta (Tarkista-painikkeen vieressä). Se muuttuu oranssiksi ja takaisin siniseksi, kun se on valmis.
  10. valitse valikkopalkissa Työkalut > Sarjamonitori – tämä avaa Sarjamonitori-ikkunan-sinun pitäisi nähdä numerot vierimässä tätä näyttöä alaspäin.
  11. säädä nyt potentiometrin nuppia ja katso sarjamonitorin ikkunaa. Numerot pitäisi säätää välillä 0 ja 1023.

käyttäen Arduino analogread-ja karttatoimintoa potentiometrillä pisteessä A0

tämä Fritzingillä sommiteltu kuva.

Arduinon koodi

/* 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}

Keskustele sketsistä

tämä sketsi alkaa monirivisellä kommentilla, joka kuvaa sketsiä ja piiriä. Huomaat todennäköisesti, että ensimmäinen koodilohko on setup () – funktio – emme julista tai alustaota mitään muuttujia tämän luonnoksen alussa-sen sijaan teemme tämän loop () – funktion sisällä, kuten edellisessä esimerkissä. Asennuksen curly-henkselien() sisällä palaamme Sarjakirjastoon ja käytämme toimintoa Serial.alkaa().

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

jos muistaa viimeiseltä tunnilta, sarjamuotoisena.begin () ottaa argumenttina baud-koron (tämä on lähes aina 9600). Tämän toiminnon avulla voit määrittää viestintäkanavan tietokoneen ja Arduino. Kuten ehkä jo tiedät, setup () toimii vain kerran, ja sitten siirrymme seuraavaan koodilohkoon.

mutta odota! Eikö meidän pitäisi asettaa pin-koodi, jota käytämme? Hyvä pointti!

mitä Arduino tekee, oletusarvoisesti, asettaa kaikki laudan nastat Syötteiksi, ellei toisin kerro. Monissa tapauksissa pin-koodia ei siis tarvitse erikseen asettaa syötteeksi pinMode () – funktion avulla. Tästä huolimatta-minulla on tapana tehdä tämä joka tapauksessa – koska se tekee asiat selväksi minulle – ja se on sen arvoista tilaa ja vaivaa.

so I dare you, set the mode of the pin using the pinMode (A0, INPUT) function inside the curly henkselit of setup ()– you won ’ t sorry it.

siirrytään loop () – funktioon, aloitetaan muuttujan julistuksella ja alustuksella.

int sensorValue = analogRead(A0);

julistamme sensorvalue-nimisen muuttujan ja alustamme sen uuden funktion ulostuloksi. Tämä uusi funktio on hohdokas analogRead (). Arvaa siis villisti, mitä tämä uusi analogRead-funktio () tekee. Se lukee arvon analogisessa tappissa, jonka olet valinnut – tässä tapauksessa se on analoginen tappi A0, jossa meillä on potentiometrin keskitappi kytketty. Jännite pin A0 kartoitetaan luvun välillä 0 ja 1023, ja tämä arvo annetaan muuttuja sensorValue.

jos muistatte ylhäältä, todellinen jännite tapissa A0 on 0-5 volttia riippuen siitä, missä potentiometri on säädetty – tämä arvo kartoitetaan alueelle 0-1023 analogisesta digitaaliseen muuntimen avulla. Joten meillä on muuttuja, joka on tallentanut arvon meidän potentiometri-mitä seuraavaksi? Katsotaan sen arvoa. Voit tehdä sen, meidän täytyy tulostaa se Arduino tietokoneeseen-ja arvasit sen, käytämme Sarjakirjasto toiminto println () tehdä juuri niin…

Serial.println(sensorValue);

ei suuria yllätyksiä – lähetämme argumenttina sensorValue-muuttujan funktion sarjalle.println () ja sarjamonitori-ikkunamme näyttävät tuloksena olevat arvot.

sketsin päättämiseksi vedämme viivefunktion() yhden millisekunnin ajan varmistaaksemme, että seuraava lukema on vakaa ja aloitamme taas silmukan () huipulta. Tallennamme uuden arvon analogreadilla (), tallennamme sen muuttujaan sensorValue ja tulostamme sen sitten tietokoneelle.

kaikki tämä on hyvä ja hyvin, saatat ajatella, mutta mitä tekemistä potentiometrillä on antureiden kanssa? Potentiometri ei aisti mitään! Olet oikeassa – mutta mielenkiintoista on, että monet anturit toimivat soveltamalla samaa periaatetta kuin potentiometri-säätämällä vastusta. Ota esimerkiksi valokuvavastus – sitä voidaan käyttää aistimaan valoa – koska vastus muuttuu valon kirkkauden perusteella, jolle se altistuu – tämä vastuksen muutos säätää jännitteen määrää, jonka tappi vastaanottopäässä saa. Nyt pallo on siis sinulla-mihin analogreadia() voi käyttää?

Kokeile itse

  • Vaihda analoginappi A2: een. Tee muutoksia koodin ja piiri.
  • kokeile erilaista potentiometriä piirissä, vaikuttaako se näytettäviin arvoihin?

Jatkoluku

  • analogRead ()
  • analogiset Tulonapit
  • potentiometrin tutorial – Tämä on hyvä

Vastaa

Sähköpostiosoitettasi ei julkaista.