Turinys:

Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“: 5 žingsniai (su nuotraukomis)
Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“: 5 žingsniai (su nuotraukomis)

Video: Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“: 5 žingsniai (su nuotraukomis)

Video: Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“: 5 žingsniai (su nuotraukomis)
Video: Arduino pamoka Nr. 4: Daugiau šviesos diodų 2024, Lapkritis
Anonim
Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“
Šviesos jutiklis (fotorezistorius) su „Arduino“„Tinkercad“

Tinkercad projektai »

Išmokime skaityti fotorezistorių, šviesai jautrų kintamo rezistoriaus tipą, naudojant „Arduino“analoginę įvestį. Jis taip pat vadinamas LDR (nuo šviesos priklausomu rezistoriumi).

Iki šiol jūs jau išmokote valdyti šviesos diodus su „Arduino“analogine išvestimi ir skaityti potenciometrą, kuris yra kito tipo kintamasis rezistorius, todėl šioje pamokoje mes remiamės šiais įgūdžiais. Atminkite, kad „Arduino“analoginiai įėjimai (kaiščiai pažymėti A0-A6) gali aptikti palaipsniui kintantį elektrinį signalą ir tą signalą paversti skaičiumi nuo 0 iki 1023.

Vaizdas
Vaizdas

Naršykite pavyzdinę grandinę, įterptą čia į darbo planą, spustelėdami Pradėti modeliavimą ir spustelėdami fotorezistorių (rudas ovalus su neryškiąja linija viduryje), tada vilkite ryškumo slankiklį, kad sureguliuotumėte imituojamą šviesos įvestį.

Šioje pamokoje šią imituojamą grandinę patys sukursite šalia mėginio. Norėdami pasirinktinai sukurti fizinę grandinę, surinkite savo „Arduino Uno“plokštę, USB kabelį, duoną be litavimo, šviesos diodą, rezistorius (220 omų ir 4,7 000 omų), fotorezistorių ir duonos plokštės laidus.

Galite sekti virtualiai naudodami „Tinkercad“grandines. Jūs netgi galite peržiūrėti šią pamoką iš „Tinkercad“(reikalingas nemokamas prisijungimas)! Tyrinėkite pavyzdinę grandinę ir sukurkite savo šalia jos. „Tinkercad Circuits“yra nemokama naršyklės programa, leidžianti kurti ir modeliuoti grandines. Tai puikiai tinka mokymuisi, mokymui ir prototipų kūrimui.

1 žingsnis: sukurkite grandinę

Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę

Pažvelkite į pavaizduotą duonos lentos grandinę. Palyginimui gali būti naudinga pažvelgti į šios pavyzdinės grandinės nemokamą laidinę versiją. Šiame žingsnyje jūs sukursite savo šios grandinės versiją kartu su pavyzdžiu darbo plokštumoje.

Norėdami tai padaryti, įkelkite naują „Tinkercad Circuits“langą ir kartu su pavyzdžiu sukurkite savo šios grandinės versiją.

Tinkercad Circuits darbo plokštumoje nustatykite fotorezistorių, šviesos diodą, rezistorius ir laidus, prijungtus prie „Arduino“.

Vilkite „Arduino Uno“ir duonos lentą iš komponentų skydelio į darbo plokštumą šalia esamos grandinės.

Prijunkite maitinimo plokštės maitinimo (+) ir įžeminimo (-) bėgius atitinkamai prie „Arduino 5V“ir įžeminimo (GND) spustelėdami, kad sukurtumėte laidus.

Išplėskite maitinimo ir įžeminimo bėgius iki atitinkamų magistralių, esančių priešingame duonos lentos krašte (pasirinktinai šiai grandinei, bet gera praktika).

Prijunkite šviesos diodą prie dviejų skirtingų lentos lentų, kad katodas (neigiama, trumpesnė kojelė) būtų prijungtas prie vienos rezistoriaus kojos (tinka bet kur nuo 100-1K omų). Rezistorius gali būti nukreiptas bet kuria kryptimi, nes rezistoriai nėra poliarizuoti, skirtingai nei šviesos diodai, kurie turi būti prijungti tam tikru būdu, kad veiktų.

Prijunkite kitą rezistoriaus koją prie žemės.

Prijunkite LED anodą (teigiamą, ilgesnę koją) prie „Arduino“kaiščio 9.

Vilkite fotorezistorių iš komponentų skydelio į duonos lentą, kad jo kojos būtų sujungtos į dvi skirtingas eilutes.

Spustelėkite, kad sukurtumėte laidą, jungiantį vieną fotorezistoriaus koją prie maitinimo.

Prijunkite kitą koją prie „Arduino“analoginio kaiščio A0.

Vilkite rezistorių iš komponentų skydelio, kad prijungtumėte prie A0 prijungtą fotorezistoriaus kojelę su žeme, ir sureguliuokite jo vertę iki 4,7k omų.

2 žingsnis: koduokite su blokais

Kodas su blokais
Kodas su blokais

Naudokitės kodų blokų redaktoriumi, kad išklausytumėte fotorezistoriaus būseną, tada nustatykite santykinį šviesos diodo šviesos diodą, atsižvelgiant į tai, kiek šviesos mato jutiklis. Pamokoje „Fading LED“galite atnaujinti savo analoginės LED išvesties atmintį.

Spustelėkite mygtuką „Kodas“, kad atidarytumėte kodų redaktorių. Pilki užrašų blokai yra komentarai, skirti pažymėti, ką ketinate atlikti savo kodu, tačiau šis tekstas nėra vykdomas kaip programos dalis.

Kodų redaktoriuje spustelėkite kategoriją Kintamieji.

Norėdami išsaugoti fotorezistoriaus varžos vertę, sukurkite kintamąjį pavadinimu „sensorValue“.

Ištraukite „nustatytą“bloką. Mūsų fotorezistoriaus būseną išsaugosime kintamajame

sensorValue

Spustelėkite įvesties kategoriją ir ištraukite bloką „analoginis skaitymo kaištis“ir įdėkite jį į „nustatyti“bloką po žodžio „iki“

Kadangi mūsų potenciometras yra prijungtas prie „Arduino“kaiščio A0, pakeiskite išskleidžiamąjį meniu į A0.

Spustelėkite išvesties kategoriją ir ištraukite bloką „spausdinti į serijinį monitorių“.

Eikite į kategoriją „Kintamieji“ir vilkite kintamąjį sensorValue į bloką „spausdinti į serijinį monitorių“ir įsitikinkite, kad išskleidžiamasis meniu nustatytas spausdinti nauja eilute. Pasirinktinai pradėkite modeliavimą ir atidarykite serijinį monitorių, kad patikrintumėte, ar rodmenys ateina ir keičiasi, kai sureguliuojate jutiklį. Analoginės įvesties vertės yra nuo 0 iki 1023.

Kadangi norime rašyti į šviesos diodą, kurio skaičius yra nuo 0 (išjungtas) iki 255 (visas ryškumas), mes naudosime „žemėlapio“bloką, kad padarytume kryžminį daugybą. Eikite į matematikos kategoriją ir ištraukite „žemėlapio“bloką.

Pirmajame lizde vilkite kintamojo sensorValue bloką, tada nustatykite diapazoną nuo 0 iki 255.

Grįžę į išvesties kategoriją, ištraukite analoginį „nustatymo kaiščio“bloką, kuris pagal nutylėjimą sako „nustatyti kaištį nuo 3 iki 0.“Sureguliuokite jį, kad nustatytumėte 9 kaištį.

Vilkite anksčiau sukurtą žemėlapio bloką į lauką „nustatyti kaiščio bloką“į „ir parašykite sureguliuotą skaičių į LED kaištį naudodami PWM.

Spustelėkite valdiklio kategoriją ir ištraukite laukimo bloką ir sureguliuokite, kad programa būtų atidėta 0,1 sekundės.

3 žingsnis: paaiškintas fotorezistorius „Arduino“kodas

Kai atidarytas kodų redaktorius, galite spustelėti išskleidžiamąjį meniu kairėje ir pasirinkti „Blokai + tekstas“, kad būtų parodytas kodų blokų sukurtas „Arduino“kodas. Sekite toliau, kol išsamiau išnagrinėsime kodą.

int sensorValue = 0;

Prieš

sąranka ()

sukuriame kintamąjį, kad išsaugotume dabartinę iš potenciometro nuskaitytą vertę. Tai vadinama

tarpt

nes tai sveikasis skaičius arba bet koks sveikas skaičius.

negaliojanti sąranka ()

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

Sąrankos viduje kaiščiai konfigūruojami naudojant

pinMode ()

funkcija. A0 kaištis sukonfigūruotas kaip įvestis, todėl galime „klausytis“potenciometro elektros būsenos. 9 kaištis sukonfigūruotas kaip šviesos diodo valdymo išėjimas. Kad galėtų siųsti pranešimus, „Arduino“atidaro naują nuoseklaus ryšio kanalą su

Serial.begin ()

kuris priima baudos spartos argumentą (kokiu greičiu bendrauti), šiuo atveju 9600 bitų per sekundę.

tuštumos kilpa ()

{// skaityti reikšmę iš jutiklio sensorValue = analogRead (A0); // atspausdinkite jutiklio rodmenis, kad žinotumėte jo diapazoną Serial.println (sensorValue);

Bet kas po brūkšnių

//

yra komentaras, padedantis žmonėms suprantama kalba suprasti, ką programa turi daryti, tačiau nėra įtraukta į programą, kurią vykdo „Arduino“. Pagrindinėje cikle funkcija, vadinama

analogRead ();

tikrina kaiščio A0 būseną (tai bus sveikas skaičius nuo 0 iki 1023) ir išsaugo šią vertę kintamajame

sensorValue

// susieti jutiklio rodmenis su šviesos diodo diapazonu

analogWrite (9, žemėlapis (sensorValue, 0, 1023, 0, 255)); vėlavimas (100); // Palaukite 100 milisekundžių}

Eilutė, einanti po kito komentaro, iš karto daro daug. Prisiminti

analogWrite ()

reikia dviejų argumentų: PIN kodo (mūsų atveju - 9) ir įrašomos reikšmės, kuri turėtų būti nuo 0 iki 255. Įterpta funkcija

žemėlapis ()

pateikiami penki argumentai: skaičius, kurį reikia įvertinti (nuolat kintantis jutiklio kintamasis), numatomas minimalus ir tikėtinas maksimumas ir pageidaujama min ir max. Taigi

žemėlapis ()

Mūsų atveju funkcija įvertina gaunamą sensorValue ir atlieka tam tikrą kryžminį dauginimą, kad sumažintų išvestį nuo 0-1023 iki 0-255. Rezultatas grąžinamas į antrąjį argumentą

analogWrite ();

nustatant šviesos diodo, prijungto prie 9 kaiščio, ryškumą.

4 žingsnis: sukurkite fizinę „Arduino“grandinę (neprivaloma)

Sukurkite fizinę „Arduino“grandinę (neprivaloma)
Sukurkite fizinę „Arduino“grandinę (neprivaloma)

Norėdami užprogramuoti savo fizinį „Arduino Uno“, turėsite įdiegti nemokamą programinę įrangą (arba žiniatinklio redaktoriaus papildinį), tada ją atidaryti. Įvairių fotoelementų vertės yra skirtingos, todėl jei jūsų fizinė grandinė neveikia, gali tekti pakeisti su juo susietą rezistorių. Sužinokite daugiau apie įtampos skirstytuvus „Instructables Electronics Class“pamokoje apie rezistorius.

Prijunkite „Arduino Uno“grandinę, prijunkite komponentus ir laidus, kad jie atitiktų „Tinkercad“grandinėse parodytas jungtis. Norėdami išsamiau susipažinti su darbu su savo fizine „Arduino Uno“lenta, peržiūrėkite nemokamą „Instructables Arduino“klasę.

Nukopijuokite kodą iš „Tinkercad Circuits“kodo lango ir įklijuokite jį į tuščią eskizą „Arduino“programinėje įrangoje arba spustelėkite atsisiuntimo mygtuką (rodyklė žemyn) ir atidarykite

gautą failą naudodami „Arduino“. Šį pavyzdį taip pat galite rasti „Arduino“programinėje įrangoje, eidami į Failas -> Pavyzdžiai -> 03. Analog -> AnalogInOutSerial.

Prijunkite USB kabelį ir programinės įrangos meniu Įrankiai pasirinkite plokštę ir prievadą.

Įkelkite kodą ir ranka uždenkite jutiklį nuo šviesos gavimo ir (arba) apšvieskite jutiklį!

Atidarykite nuoseklųjį monitorių, kad stebėtumėte jutiklio vertes. Tikėtina, kad realaus pasaulio vertybės nesikeis iki 0 arba iki 1023, priklausomai nuo jūsų apšvietimo sąlygų. Nedvejodami sureguliuokite 0-1023 diapazoną iki minimalaus ir stebimo maksimumo, kad gautumėte maksimalų šviesos diodo ryškumo diapazoną.

5 žingsnis: Toliau pabandykite…

Dabar, kai išmokote skaityti fotorezistorių ir susieti jo išvestį, kad valdytumėte šviesos diodo ryškumą, esate pasiruošę pritaikyti tuos ir kitus įgūdžius, kuriuos išmokote iki šiol.

Ar galite pakeisti šviesos diodą į kito tipo išvestį, pvz., Servo variklį, ir sukurti kodą, kuris atspindėtų dabartinį jutiklio šviesos lygį kaip tam tikrą padėtį išilgai matuoklio?

Pabandykite pakeisti savo fotorezistorių į kitus analoginius įėjimus, pvz., Ultragarsinį atstumo jutiklį ar potenciometrą.

Sužinokite daugiau apie tai, kaip stebėti „Arduino“skaitmenines ir analogines įvestis per kompiuterį naudojant serijinį monitorių.

Rekomenduojamas: