Kazalo:

Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu: 5 korakov (s slikami)
Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu: 5 korakov (s slikami)

Video: Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu: 5 korakov (s slikami)

Video: Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu: 5 korakov (s slikami)
Video: Easy Starter Kit Lesson 5: Light Sensor 22 декабря 2022 г. 2024, Julij
Anonim
Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu
Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu

Tinkercad projekti »

Naučimo se brati fotorezistor, svetlobno občutljiv tip spremenljivega upora, z uporabo Arduinovega analognega vhoda. Imenuje se tudi LDR (svetlobno odvisen upor).

Doslej ste se že naučili upravljati LED z analognim izhodom Arduino in brati potenciometer, ki je še ena vrsta spremenljivega upora, zato bomo te veščine gradili v tej lekciji. Ne pozabite, da lahko analogni vhodi Arduino (zatiči označeni z A0-A6) zaznajo postopoma spreminjajoči se električni signal in ga prevedejo v številko med 0 in 1023.

Slika
Slika

Raziščite vzorčno vezje, vdelano tukaj v delovno ravnino, tako da kliknete Začni simulacijo in kliknete na fotorezistor (rjav oval z ukrivljeno črto na sredini), nato povlecite drsnik za svetlost, da prilagodite vnos simulirane svetlobe.

V tej lekciji boste poleg vzorca sami zgradili to simulirano vezje. Če želite po želji zgraditi fizično vezje, zberite svojo ploščo Arduino Uno, kabel USB, brezlemno ploščo, LED, upore (220 ohmov in 4,7 k ohmov), fotorezistor in žice za mizo.

Sledite lahko tako rekoč z uporabo Tinkercad Circuits. To lekcijo si lahko ogledate celo v Tinkercadu (potrebna je brezplačna prijava)! Raziščite vzorčno vezje in si zgradite svojega tik ob njem. Tinkercad Circuits je brezplačen brskalniški program, ki omogoča gradnjo in simulacijo vezij. Idealen je za učenje, poučevanje in izdelavo prototipov.

1. korak: Zgradite vezje

Zgradite vezje
Zgradite vezje
Zgradite vezje
Zgradite vezje

Oglejte si vezje na sliki. Za primerjavo na sliki je lahko koristno pogledati brezplačno ožičeno različico tega vzorčnega vezja. V tem koraku boste poleg vzorca na delovnem letalu zgradili svojo različico tega vezja.

Če želite nadaljevati, naložite novo okno Tinkercad Circuits in zraven vzorca sestavite svojo različico tega vezja.

Na delovnem letalu Tinkercad Circuits poiščite fotorezistor, LED, upore in žice, povezane z Arduinom.

Arduino Uno in ploščo povlecite s plošče s komponentami na delovno ravnino poleg obstoječega vezja.

Napajalne plošče (+) in ozemljitvene (-) tirnice priključite na Arduino 5V in ozemljitev (GND) s klikom, da ustvarite žice.

Razširite moč in ozemljitvene tirnice na ustrezna vodila na nasprotnem robu mize (neobvezno za to vezje, vendar dobra običajna praksa).

Priključite LED v dve različni vrstici, tako da se katoda (negativna, krajša noga) poveže z eno nogo upora (kjer koli v redu od 100-1K ohmov). Upor lahko gre v katero koli orientacijo, ker upori niso polarizirani, za razliko od LED, ki jih je za delovanje potrebno povezati na določen način.

Priključite drugo nogo upora na ozemljitev.

Priključite anodo LED (pozitivno, daljšo nogo) na Arduino pin 9.

Fotorezistor povlecite s plošče s komponentami na ploščo, tako da se njegove noge priklopijo v dve različni vrsti.

Kliknite, da ustvarite žico, ki povezuje eno nogo fotorezistorja z napajanjem.

Drugo nogo priključite na Arduino analogni pin A0.

Povlecite upor s plošče komponent, da fotonoporno nogo, priključeno na A0, povežete z maso in nastavite njeno vrednost na 4,7 k ohmov.

Korak: Koda z bloki

Koda z bloki
Koda z bloki

Z urejevalnikom kodnih blokov poslušamo stanje fotorezistorja, nato nastavimo LED na relativno svetlost glede na to, koliko svetlobe senzor vidi. V lekciji Fading LED boste morda želeli osvežiti spomin na analogni izhod LED.

Kliknite gumb "Koda", da odprete urejevalnik kode. Bloki sivih zapisov so komentarji, s katerimi si zapomnite, kaj nameravate narediti s kodo, vendar se to besedilo ne izvede kot del programa.

V urejevalniku kod kliknite kategorijo Spremenljivke.

Če želite shraniti vrednost upora fotorezistorja, ustvarite spremenljivko z imenom "sensorValue".

Povlecite "set" blok. V spremenljivko bomo shranili stanje našega fotorezistorja

sensorValue

Kliknite kategorijo vnosa in povlecite blok "analogni bralni pin" in ga postavite v blok "set" za besedo "do"

Ker je naš potenciometer povezan z Arduinom na zatiču A0, spremenite spustni meni na A0.

Kliknite kategorijo Output in povlecite blok "print to serijski monitor".

Pomaknite se do kategorije spremenljivk in povlecite spremenljivko sensorValue na blok "tiskanje na serijski monitor" in se prepričajte, da je spustni meni nastavljen za tiskanje z novo vrstico. Po želji zaženite simulacijo in odprite serijski monitor, da preverite, ali odčitki prihajajo in se spreminjajo, ko nastavite senzor. Vrednosti analognih vhodov se gibljejo od 0-1023.

Ker želimo pisati na LED s številko med 0 (izklopljeno) in 255 (polna svetlost), bomo za "navzkrižno množenje" uporabili blok "zemljevid". Pomaknite se do kategorije Matematika in povlecite blok "zemljevid".

V prvi reži povlecite spremenljivko sensorValue in nato nastavite obseg od 0 do 255.

Nazaj v kategorijo Output povlecite analogni blok "set pin", ki privzeto pravi "set pin 3 to 0." Prilagodite ga tako, da nastavite pin 9.

Povlecite blok zemljevida, ki ste ga naredili prej, v polje "set pin" bloka "to", da vnesete prilagojeno številko na pin LED z uporabo PWM.

Kliknite kategorijo Control in povlecite čakalni blok ter ga prilagodite tako, da program zamika 0,1 sekunde.

3. korak: Razložena koda fotoistorja Arduino

Ko je urejevalnik kod odprt, lahko kliknete spustni meni na levi in izberete »Bloki + Besedilo«, da razkrijete kodo Arduino, ki jo ustvarijo kodni bloki. Nadaljujte, ko kodo podrobneje raziskujemo.

int sensorValue = 0;

Pred

nastaviti()

ustvarimo spremenljivko za shranjevanje trenutne vrednosti, odčitane s potenciometra. To se imenuje

int

ker je celo število ali katero koli celo število.

void setup ()

{pinMode (A0, INPUT); pinMode (9, OUTPUT); Serial.begin (9600); }

V notranjosti nastavitve so zatiči konfigurirani z uporabo

pinMode ()

funkcijo. Pin A0 je konfiguriran kot vhod, zato lahko "poslušamo" električno stanje potenciometra. Pin 9 je konfiguriran kot izhod za krmiljenje LED. Za pošiljanje sporočil Arduino odpre nov serijski komunikacijski kanal z

Serial.begin ()

ki sprejme argument hitrosti prenosa (kakšna hitrost komunikacije), v tem primeru 9600 bitov na sekundo.

void loop ()

{// preberite vrednost iz senzorja sensorValue = analogRead (A0); // natisnemo odčitavanje senzorja, da poznate njegov obseg Serial.println (sensorValue);

Karkoli po nizu poševnic

//

je komentar, ki ljudem v preprostem jeziku pomaga razumeti, kaj namerava program narediti, vendar ni vključen v program, ki ga izvaja vaš Arduino. V glavni zanki je funkcija imenovana

analogRead ();

preveri stanje zatiča A0 (kar bo celo število od 0-1023) in to vrednost shrani v spremenljivko

sensorValue

// preslikava odčitke senzorja v obseg za LED

analogWrite (9, zemljevid (sensorValue, 0, 1023, 0, 255)); zamuda (100); // Počakajte 100 milisekund (s)}

Vrstica po naslednjem komentarju naredi veliko naenkrat. Zapomni si

analogWrite ()

vzame dva argumenta, številko zatiča (v našem primeru 9) in vrednost za zapis, ki mora biti med 0 in 255. Inline funkcija

zemljevid()

vzame pet argumentov: število za oceno (spremenljiva senzorska spremenljivka), pričakovani minimum in pričakovani maksimum ter želeni min in max. Torej

zemljevid()

funkcija v našem primeru ovrednoti dohodno vrednost sensorValue in izvede navzkrižno množenje, da zmanjša izhod iz 0-1023 na 0-255. Rezultat se vrne v drugi argument

analogWrite ();

nastavite svetlost LED, priključene na pin 9.

4. korak: Zgradite fizično vezje Arduino (neobvezno)

Zgradite fizično vezje Arduino (neobvezno)
Zgradite fizično vezje Arduino (neobvezno)

Če želite programirati fizični Arduino Uno, morate namestiti brezplačno programsko opremo (ali vtičnik za spletni urejevalnik), nato pa jo odpreti. Različne fotocelice imajo različne vrednosti, zato, če vaše fizično vezje ne deluje, boste morda morali spremeniti upor, ki je povezan z njim. Več o delilnikih napetosti preberite v lekciji Uporni razred elektronike o uporih.

Priključite vezje Arduino Uno tako, da priključite komponente in žice, da se ujemajo s povezavami, ki so prikazane tukaj v vezjih Tinkercad. Za podrobnejši opis dela s fizično ploščo Arduino Uno si oglejte brezplačni razred Arduino Instructables.

Kopirajte kodo iz okna kode Tinkercad Circuits in jo prilepite v prazno skico v programski opremi Arduino ali kliknite gumb za prenos (puščica navzdol) in odprite

nastalo datoteko z uporabo Arduina. Ta primer lahko najdete tudi v programski opremi Arduino tako, da se pomaknete do Datoteka -> Primeri -> 03. Analog -> AnalogInOutSerial.

Priključite kabel USB in izberite ploščo in vrata v meniju Orodja programske opreme.

Naložite kodo in z roko pokrijte senzor od sprejema svetlobe in/ali osvetlite senzor!

Odprite serijski monitor, da opazujete vrednosti senzorja. Verjetno se resnične svetovne vrednosti ne bodo razširile vse do 0 ali pa vse do 1023, odvisno od svetlobnih razmer. Če želite doseči največji obseg izražanja svetlosti na LED, lahko območje 0-1023 prilagodite svojemu opaženemu minimumu in opaženemu maksimumu.

5. korak: Nato poskusite…

Zdaj, ko ste se naučili brati foto upor in preslikati njegov izhod za nadzor svetlosti LED, ste pripravljeni uporabiti te in druge veščine, ki ste se jih do sedaj naučili.

Ali lahko LED zamenjate za drugo vrsto izhoda, na primer servo motor, in ustvarite kodo, ki bo odražala trenutno raven svetlobe senzorja kot določen položaj vzdolž merilnika?

Poskusite zamenjati svoj fotorezistor za druge analogne vhode, na primer ultrazvočni senzor razdalje ali potenciometer.

Več o tem, kako z računalnikom s serijskim monitorjem spremljate digitalne in analogne vhode vašega Arduina.

Priporočena: