Sisällysluettelo:

Valoanturi (valoresistori) Arduinolla Tinkercadissa: 5 vaihetta (kuvilla)
Valoanturi (valoresistori) Arduinolla Tinkercadissa: 5 vaihetta (kuvilla)

Video: Valoanturi (valoresistori) Arduinolla Tinkercadissa: 5 vaihetta (kuvilla)

Video: Valoanturi (valoresistori) Arduinolla Tinkercadissa: 5 vaihetta (kuvilla)
Video: Микроволновый датчик присутствия и освещения ZY-M100 ZigBee/WiFi Tuya Smart - Умный контроль 2024, Marraskuu
Anonim
Valoanturi (valoresistori) Arduinon kanssa Tinkercadissa
Valoanturi (valoresistori) Arduinon kanssa Tinkercadissa

Tinkercad -projektit »

Opetellaan lukemaan valoresistori, valoherkkä muuttuvan vastuksen tyyppi, käyttämällä Arduinon analogista tuloa. Sitä kutsutaan myös LDR: ksi (valosta riippuvainen vastus).

Toistaiseksi olet jo oppinut ohjaamaan LED -valoja Arduinon analogisella lähdöllä ja lukemaan potentiometrin, joka on toinen tyyppinen muuttuva vastus, joten hyödynnämme näitä taitoja tässä oppitunnissa. Muista, että Arduinon analogiset tulot (nastat merkitty A0-A6) voivat havaita vähitellen muuttuvan sähköisen signaalin ja muuntaa sen signaaliksi 0-1023.

Kuva
Kuva

Tutustu tähän työtasoon upotettuun näytepiiriin napsauttamalla Käynnistä simulaatio ja napsauttamalla valovastusta (ruskea soikea, jossa on viisto viiva keskellä) ja säädä sitten simuloitu valon tulo vetämällä kirkkauden liukusäädintä.

Tässä oppitunnissa rakennat tämän simuloidun piirin itse näytteen viereen. Voit rakentaa valinnaisesti fyysisen piirin keräämällä Arduino Uno -korttisi, USB -kaapelin, juotottoman leipälevyn, LED -valon, vastukset (220 ohmia ja 4,7 k ohmia), valoresistorin ja leipälevyn johdot.

Voit seurata virtuaalisesti Tinkercad -piirien avulla. Voit jopa katsoa tämän oppitunnin Tinkercadista (ilmainen sisäänkirjautuminen vaaditaan)! Tutustu näytepiiriin ja rakenna oma aivan sen viereen. Tinkercad Circuits on ilmainen selainpohjainen ohjelma, jonka avulla voit rakentaa ja simuloida piirejä. Se on täydellinen oppimiseen, opettamiseen ja prototyyppien luomiseen.

Vaihe 1: Rakenna piiri

Rakenna piiri
Rakenna piiri
Rakenna piiri
Rakenna piiri

Katso kuvassa olevaa leipälevypiiriä. Voi olla hyödyllistä tarkastella tämän näytepiirin vapaata langallista versiota vertailua varten, kuvassa. Tässä vaiheessa rakennat oman version tästä piiristä työtason näytteen viereen.

Jatkaaksesi lataa uusi Tinkercad Circuits -ikkuna ja rakenna oma versio tästä piiristä näytteen viereen.

Tunnista Arduinoon kytketyt valoresistori, LED, vastukset ja johdot Tinkercad Circuits -työtasossa.

Vedä Arduino Uno ja leipälevy komponenttipaneelista työtasoon nykyisen piirin viereen.

Liitä leipälauta (+) ja maadoitus (-) kiskot Arduino 5V ja maadoitus (GND) vastaavasti napsauttamalla luodaksesi johtoja.

Laajenna teho- ja maadoituskiskot vastaaviin väyliinsä leipälevyn vastakkaisella reunalla (valinnainen tälle piirille, mutta hyvä yleinen käytäntö).

Kytke LED kahteen eri leipälautariviin niin, että katodi (negatiivinen, lyhyempi jalka) kytkeytyy vastuksen toiseen jalkaan (missä tahansa 100-1K ohmia on hyvä). Vastus voi mennä kumpaankin suuntaan, koska vastukset eivät ole polarisoituneita, toisin kuin LEDit, jotka on kytkettävä tietyllä tavalla toimimaan.

Liitä toinen vastuksen jalka maahan.

Kytke LED -anodi (positiivinen, pidempi jalka) Arduino -nastaan 9.

Vedä valovastus komponenttipaneelista leipälevyllesi, jotta sen jalat kiinnittyvät kahteen eri riviin.

Luo johto, joka yhdistää yhden valovastuksen jalan virtalähteeseen napsauttamalla.

Liitä toinen jalka Arduinon analogiseen nastaan A0.

Vedä vastusta komponenttipaneelista liittääksesi A0: een yhdistetyn valoresistorin jalka maahan ja säädä sen arvoksi 4,7 k ohmia.

Vaihe 2: Koodaus lohkoilla

Koodi lohkojen kanssa
Koodi lohkojen kanssa

Käytämme koodilohkojen editoria kuuntelemaan valovastuksen tilaa ja aseta sitten LED suhteelliseen kirkkauteen sen mukaan, kuinka paljon valoa anturi näkee. Voit halutessasi päivittää muistisi LED -analogilähdöstä Fading LED -oppitunnissa.

Avaa koodieditori napsauttamalla "Koodi" -painiketta. Harmaat merkintälohkot ovat kommentteja, joiden avulla voit merkitä muistiin, mitä aiot koodillasi tehdä, mutta tätä tekstiä ei suoriteta osana ohjelmaa.

Napsauta muuttujien luokkaa koodieditorissa.

Jos haluat tallentaa valoresistorin vastusarvon, luo muuttuja nimeltä sensorValue.

Vedä "asetettu" lohko ulos. Tallennamme valoresistorimme tilan muuttujaan

sensorValue

Napsauta syöttöluokkaa ja vedä "analoginen lukutappi" -lohko ulos ja aseta se "asetettu" -lohkoon sanan "to" jälkeen

Koska potentiometrimme on kytketty Arduinoon nastassa A0, vaihda avattavasta valikosta A0.

Napsauta tulostusluokkaa ja vedä "Tulosta sarjamonitoriin" -lohko.

Siirry Muuttujat -luokkaan ja vedä muuttujan sensorValue "Tulosta sarjamonitoriin" -lohkoon ja varmista, että avattava valikko on asetettu tulostamaan uudella rivillä. Käynnistä vaihtoehtoisesti simulaatio ja avaa sarjamonitori varmistaaksesi, että lukemat tulevat ja muuttuvat, kun säädät anturia. Analogiatulojen arvot ovat 0-1023.

Koska haluamme kirjoittaa LED-valolle numeron välillä 0 (pois päältä) ja 255 (täysi kirkkaus), käytämme "kartta" -lohkoa tehdäksemme ristikertoimen puolestamme. Siirry matematiikka -luokkaan ja vedä "kartta" -lohko ulos.

Vedä ensimmäisessä korttipaikassa sensorValue -muuttujalohkoa ja aseta sitten alue 0-255.

Vedä takaisin Output -luokkaan analoginen "set pin" -lohko, joka sanoo oletuksena "set pin 3 to 0." Säädä se asettamaan nasta 9.

Vedä aiemmin tekemäsi karttalohko "set pin" -lohkon "to" -kenttään kirjoittaaksesi säädetty numero LED -nastaan PWM: n avulla.

Napsauta Control -luokkaa ja vedä odotuslohko ulos ja säädä sitä viivästyttääksesi ohjelmaa.1 sekuntia.

Vaihe 3: Valovastus Arduino -koodi selitetty

Kun koodieditori on auki, voit napsauttaa vasemmalla olevaa avattavaa valikkoa ja valita "Lohkot + teksti" paljastaaksesi koodilohkojen tuottaman Arduino -koodin. Seuraa, kun tutkimme koodia tarkemmin.

int sensorValue = 0;

Ennen

perustaa()

luomme muuttujan, joka tallentaa potentiometristä luetun nykyisen arvon. Sitä kutsutaan

int

koska se on kokonaisluku tai mikä tahansa kokonaisluku.

mitätön asennus ()

{pinMode (A0, INPUT); pinMode (9, LÄHTÖ); Sarja.alku (9600); }

Asetusten sisällä nastat määritetään käyttämällä

pinMode ()

toiminto. Nasta A0 on määritetty tuloksi, joten voimme "kuunnella" potentiometrin sähköistä tilaa. Nasta 9 on konfiguroitu lähdöksi ohjaamaan LEDiä. Voidakseen lähettää viestejä Arduino avaa uuden sarjaliikennekanavan

Serial.begin ()

joka vaatii baudinopeusargumentin (minkä nopeuden kommunikoida), tässä tapauksessa 9600 bittiä sekunnissa.

tyhjä silmukka ()

{// lukea arvo anturista sensorValue = analogRead (A0); // tulosta anturin lukema, jotta tiedät sen alueen Serial.println (sensorValue);

Mitä tahansa kauttaviivojen jälkeen

//

on kommentti, joka auttaa ihmisiä ymmärtämään selkeällä kielellä, mitä ohjelma on tarkoitettu tekemään, mutta ei sisälly Arduinon suorittamaan ohjelmaan. Pääsilmukassa funktio nimeltä

analogRead ();

tarkistaa nastan A0 tilan (joka on kokonaisluku 0-1023) ja tallentaa arvon muuttujaan

sensorValue

// yhdistä anturin lukema LED -alueen alueelle

analogWrite (9, kartta (sensorValue, 0, 1023, 0, 255)); viive (100); // Odota 100 millisekuntia}

Seuraavan kommentin jälkeinen rivi tekee paljon kerralla. Muistaa

analogWrite ()

vaatii kaksi argumenttia, PIN -numeron (meidän tapauksessamme 9) ja kirjoitettavan arvon, jonka tulee olla 0 ja 255. Inline -funktio

kartta()

sisältää viisi argumenttia: arvioitava luku (jatkuvasti muuttuva anturimuuttuja), odotettu minimi ja odotettu maksimi sekä haluttu min ja max. Joten

kartta()

meidän tapauksessamme on arvioida saapuva sensorValue ja tehdä ristiin kertolasku skaalaamaan ulostulo alas 0-1023: sta 0-255: een. Tulos palautetaan kohdan toiseen argumenttiin

analogWrite ();

säätämällä nastaan 9 yhdistetyn LEDin kirkkautta.

Vaihe 4: Rakenna fyysinen Arduino -piiri (valinnainen)

Rakenna fyysinen Arduino -piiri (valinnainen)
Rakenna fyysinen Arduino -piiri (valinnainen)

Jos haluat ohjelmoida fyysisen Arduino Unon, sinun on asennettava ilmainen ohjelmisto (tai laajennus web -editoria varten) ja avattava se. Eri valokennoilla on eri arvot, joten jos fyysinen piirisi ei toimi, sinun on ehkä vaihdettava sen kanssa pariksi liitetty vastus. Lisätietoja jännitteenjakajista on Instructables Electronics Class -oppitunnin vastuksia koskevassa oppitunnissa.

Kytke Arduino Uno -piiri kytkemällä komponentit ja johdot, jotka vastaavat tässä kohdassa Tinkercad Circuits esitettyjä liitäntöjä. Jos haluat yksityiskohtaisempia ohjeita fyysisen Arduino Uno -levyn kanssa työskentelystä, tutustu ilmaiseen Instructables Arduino -luokkaan.

Kopioi koodi Tinkercad Circuits -koodi -ikkunasta ja liitä se tyhjään luonnokseen Arduino -ohjelmistossasi tai napsauta latauspainiketta (alaspäin osoittava nuoli) ja avaa

Löydät tämän esimerkin myös Arduino -ohjelmistosta siirtymällä kohtaan Tiedosto -> Esimerkit -> 03. Analog -> AnalogInOutSerial.

Liitä USB -kaapeli ja valitse kortti ja portti ohjelmiston Työkalut -valikosta.

Lataa koodi ja peitä kädelläsi anturi valon vastaanottamisesta ja/tai loista valo anturillesi!

Avaa sarjamonitori tarkkaillaksesi anturin arvoja. Todennäköisesti todelliset arvot eivät ulotu valaistusolosuhteista riippuen aina 0: een tai aina 1023: een. Voit vapaasti säätää 0-1023-alueen havaittuun minimiin ja havaittuun maksimiin, jotta LED-valo saa suurimman kirkkausalueen.

Vaihe 5: Kokeile seuraavaksi…

Nyt kun olet oppinut lukemaan valovastuksen ja kartoitamaan sen lähdön LED -valon kirkkauden säätämiseksi, olet valmis soveltamaan niitä ja muita tähän mennessä oppimiasi taitoja.

Voitko vaihtaa LED -valon toisen tyyppiseen lähtöön, kuten servomoottoriin, ja luoda koodin, joka heijastaa anturin nykyistä valotasoa tiettynä asennona mittaria pitkin?

Kokeile vaihtaa valovastuksesi muihin analogisiin tuloihin, kuten ultraäänietäisyysanturi tai potentiometri.

Lue lisää Arduinon digitaalisten ja analogisten tulojen seurannasta tietokoneen kautta sarjamonitorin avulla.

Suositeltava: