Kazalo:
- 1. korak: Zgradite vezje
- Korak: Koda z bloki
- 3. korak: Razložena koda fotoistorja Arduino
- 4. korak: Zgradite fizično vezje Arduino (neobvezno)
- 5. korak: Nato poskusite…
Video: Senzor svetlobe (fotorezistor) z Arduinom v Tinkercadu: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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.
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
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
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)
Č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:
Upravljanje sobne svetlobe s senzorjem PIR in Arduinom: 6 korakov
Upravljanje sobne svetlobe s senzorji PIR in Arduino: Danes bomo nadzorovali vaše sobne luči z zaznavanjem gibanja s pomočjo senzorja gibanja Arduino PIR. Ta projekt je zelo zabaven za izdelavo in ima zelo praktično uporabo v vaši hiši in vam lahko s tem projektom prihranite nekaj denarja. Ju
DIY senzor dihanja z Arduinom (prevodni pleteni senzor raztezanja): 7 korakov (s slikami)
DIY senzor dihanja z Arduinom (prevodni pleteni senzor za raztezanje): Ta DIY senzor bo v obliki prevodnega pletenega senzorja raztezanja. Ovil se bo okrog prsnega koša/želodca in ko se bodo prsi/želodec razširili in skrčili, se bo senzor in posledično vhodni podatki, ki se vnesejo v Arduino. Torej
Vmesnik LCD z Arduinom na Tinkercadu: 5 korakov
Povezovanje LCD -ja z Arduinom na Tinkercadu: Koda v tem članku je napisana za LCD -je, ki uporabljajo standardni gonilnik Hitachi HD44780. Če ima vaš LCD 16 zatičev, potem ima verjetno gonilnik Hitachi HD44780. Te zaslone lahko povežete v 4 -bitnem ali 8 -bitnem načinu. Ožičenje LCD -ja v 4
Vmesnik RGB Led z Arduinom na TinkerCadu: 4 koraki
Povezovanje RGB Led z Arduinom na TinkerCadu: V tej vadnici boste spoznali vmesnike, ki jih vodi Arduino RGB. LED RGB je sestavljen iz treh različnih LED, po imenu lahko uganite, da so te LED rdeče, zelene in modre. Z mešanjem teh barv lahko dobimo številne druge barve.
RGB LED mešanje barv z Arduinom v Tinkercadu: 5 korakov (s slikami)
RGB LED mešanje barv z Arduinom v Tinkercadu: Naučimo se upravljati večbarvne LED z uporabo Arduinovih analognih izhodov. Na Arduino Uno bomo povezali RGB LED in sestavili preprost program za spreminjanje njegove barve. Sledite lahko tako rekoč z uporabo Tinkercad Circuits. To si lahko celo ogledate