Sadržaj:

Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu: 5 koraka (sa slikama)
Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu: 5 koraka (sa slikama)

Video: Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu: 5 koraka (sa slikama)

Video: Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu: 5 koraka (sa slikama)
Video: ARDUINO UNO PROJECT:Ambient Light Sensor using Photoresistor 2024, Juli
Anonim
Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu
Senzor svjetla (fotootpornik) s Arduinom u Tinkercadu

Tinkercad projekti »

Naučimo čitati fotootpornik, tip promjenjivog otpornika osjetljivog na svjetlost, koristeći Arduino analogni ulaz. Naziva se i LDR (otpornik ovisan o svjetlosti).

Do sada ste već naučili kontrolirati LED diode s Arduinovim analognim izlazom i čitati potenciometar, što je druga vrsta promjenjivog otpornika, pa ćemo te vještine nadograditi u ovoj lekciji. Zapamtite da Arduino analogni ulazi (pinovi označeni A0-A6) mogu detektirati postepeno mijenjajući električni signal i prevesti taj signal u broj između 0 i 1023.

Image
Image

Istražite uzorak kola ugrađenog ovdje u radnu ravninu klikom na Pokreni simulaciju i klikom na fotootpornik (smeđi oval sa iskrivljenom linijom po sredini), a zatim povucite klizač za svjetlinu kako biste prilagodili simulirani unos svjetlosti.

U ovoj lekciji ćete sami izgraditi ovo simulirano kolo pored uzorka. Za opcionalnu izgradnju fizičkog kruga, prikupite Arduino Uno ploču, USB kabel, ploču za lemljenje, LED diodu, otpornike (220 ohma i 4,7 k ohma), fotootpornik i žice za matičnu ploču.

Možete ih pratiti virtualno koristeći Tinkercad kola. Ovu lekciju možete čak pogledati iz Tinkercada (potrebna je besplatna prijava)! Istražite uzorak kola i napravite svoj vlastiti pored njega. Tinkercad Circuits je besplatni program zasnovan na pretraživaču koji vam omogućuje izgradnju i simulaciju krugova. Savršen je za učenje, podučavanje i izradu prototipova.

Korak 1: Izgradite krug

Izgradite krug
Izgradite krug
Izgradite krug
Izgradite krug

Pogledajte krug ploče na slici. Za usporedbu, na slici, može biti korisno pogledati besplatnu verziju ovog uzorka kola. U ovom koraku ćete izgraditi vlastitu verziju ovog kruga pored uzorka na radnoj ravnini.

Da biste nastavili, učitajte novi prozor Tinkercad Circuits i sastavite vlastitu verziju ovog kruga uz uzorak.

Prepoznajte fotootpornik, LED diode, otpornike i žice povezane s Arduinom u radnoj ravnini Tinkercad Circuits.

Povucite Arduino Uno i matičnu ploču s ploče sa komponentama na radnu ploču, pored postojećeg kruga.

Povežite napajanje (+) i uzemljene (-) šine na Arduino 5V i uzemljenje (GND), klikom, za stvaranje žica.

Proširite tračnice za uzemljenje i uzemljenje na odgovarajuće sabirnice na suprotnoj ivici matične ploče (opcionalno za ovaj krug, ali dobra uobičajena praksa).

Uključite LED u dva različita reda matične ploče tako da se katoda (negativna, kraća noga) poveže s jednom nogom otpornika (bilo gdje od 100-1K ohma je u redu). Otpornik može ići u bilo kojoj orijentaciji jer otpornici nisu polarizirani, za razliku od LED dioda, koje moraju funkcionirati na određeni način.

Spojite drugu nogu otpornika na masu.

Spojite LED anodu (pozitivna, duža noga) na Arduino pin 9.

Povucite fotootpornik sa ploče sa komponentama na matičnu ploču tako da se njegove nožice utaknu u dva različita reda.

Kliknite za stvaranje žice koja povezuje jednu nogu fotootpornika na napajanje.

Spojite drugu nogu na Arduino analogni pin A0.

Povucite otpornik s ploče s komponentama da spojite nogu fotootpornika spojenu na A0 s masom i podesite njegovu vrijednost na 4,7 k ohma.

Korak 2: Kodirajte s blokovima

Kôd s blokovima
Kôd s blokovima

Koristimo uređivač blokova kodova da osluškujemo stanje fotootpornika, a zatim postavimo LED na relativnu svjetlinu na osnovu toga koliko svjetla senzor vidi. Možda ćete htjeti osvježiti pamćenje analognog LED izlaza u lekciji Fading LED.

Pritisnite dugme "Kod" da biste otvorili uređivač koda. Blokovi sive notacije su komentari za bilježenje onoga što namjeravate učiniti svojim kodom, ali ovaj tekst se ne izvršava kao dio programa.

Kliknite na kategoriju Varijable u uređivaču koda.

Za spremanje vrijednosti otpora fotootpornika, stvorite varijablu pod nazivom "sensorValue".

Izvucite "set" blok. Stanje našeg fotootpornika ćemo pohraniti u varijablu

sensorValue

Kliknite na kategoriju Input i izvucite blok "analog read pin" i postavite ga u blok "set" iza riječi "to"

Budući da je naš potenciometar povezan s Arduinom na pinu A0, promijenite padajući izbornik u A0.

Kliknite na kategoriju Output i povucite blok "print to serijski monitor".

Idite do kategorije Varijable i povucite svoju varijablu sensorValue na blok "print to serijski monitor" i provjerite je li padajući izbornik postavljen za ispis s novom linijom. Po želji pokrenite simulaciju i otvorite serijski monitor kako biste provjerili dolaze li očitanja i mijenjaju se prilikom podešavanja senzora. Vrijednosti analognih ulaza su u rasponu od 0-1023.

Budući da želimo pisati na LED diodu s brojem između 0 (isključeno) i 255 (puna svjetlina), upotrijebit ćemo blok "mapa" da bismo za nas izvršili unakrsno umnožavanje. Idite do kategorije Matematika i povucite blok "mapa".

U prvom utoru povucite blok varijable sensorValue, a zatim postavite raspon od 0 do 255.

Nazad u kategoriji Izlaz, povucite analogni blok "postavi pin", koji prema zadanim postavkama kaže "postavi pin 3 na 0." Podesite ga tako da postavite pin 9.

Povucite blok karte koji ste ranije napravili u polje "set" bloka "set pin" da biste upisali prilagođeni broj u LED pin pomoću PWM -a.

Kliknite na kategoriju Kontrola i povucite blok čekanja i podesite ga da odloži program za 0,1 sekundu.

Korak 3: Objašnjen Arduino kod fotootpornika

Kad je uređivač koda otvoren, možete kliknuti padajući izbornik s lijeve strane i odabrati "Blokovi + tekst" da biste otkrili Arduino kôd koji generiraju blokovi koda. Pratite nas dok detaljnije istražujemo kôd.

int sensorValue = 0;

Prije

postaviti()

stvaramo varijablu za spremanje trenutne vrijednosti očitane s potenciometra. To se zove

int

jer je to cijeli broj ili bilo koji cijeli broj.

void setup ()

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

Unutar postavki, pinovi su konfigurirani pomoću

pinMode ()

funkciju. Pin A0 je konfiguriran kao ulaz, tako da možemo "slušati" električno stanje potenciometra. Pin 9 je konfiguriran kao izlaz za kontrolu LED diode. Da bi mogao slati poruke, Arduino otvara novi serijski komunikacijski kanal pomoću

Serial.begin ()

koji uzima argument brzine prijenosa (kojom brzinom komunicira), u ovom slučaju 9600 bita u sekundi.

void loop ()

{// očitavanje vrijednosti sa senzora sensorValue = analogRead (A0); // ispisuje očitanje senzora tako da znate njegov raspon Serial.println (sensorValue);

Sve nakon niza kosih crta

//

je komentar koji pomaže ljudima da jasnim jezikom razumiju šta program namjerava raditi, ali nije uključen u program koji pokreće vaš Arduino. U glavnoj petlji funkcija koja se zove

analogRead ();

provjerava stanje pina A0 (što će biti cijeli broj od 0-1023) i pohranjuje tu vrijednost u varijablu

sensorValue

// preslikavanje očitanja senzora u raspon za LED

analogWrite (9, mapa (sensorValue, 0, 1023, 0, 255)); kašnjenje (100); // Pričekajte 100 milisekundi (i)}

Red koji slijedi nakon sljedećeg komentara čini mnogo odjednom. Zapamtite

analogWrite ()

uzima dva argumenta, pin broj (u našem slučaju 9) i vrijednost za upisivanje, koja bi trebala biti između 0 i 255. Inline funkcija

mapa ()

uzima pet argumenata: broj za procjenu (promjenjiva varijabla senzora), očekivani minimum i očekivani maksimum, te željene min i max. Dakle,

mapa ()

funkcija u našem slučaju procjenjuje dolaznu vrijednost sensorValue i vrši unakrsno množenje kako bi smanjila izlaz s 0-1023 na 0-255. Rezultat se vraća u drugi argument od

analogWrite ();

podešavanje svjetline LED diode spojene na pin 9.

Korak 4: Izgradite fizičko Arduino kolo (izborno)

Napravite fizičko Arduino kolo (opcionalno)
Napravite fizičko Arduino kolo (opcionalno)

Da biste programirali svoj fizički Arduino Uno, morate instalirati besplatni softver (ili dodatak za web uređivač), a zatim ga otvoriti. Različite fotoćelije imaju različite vrijednosti, pa ako vaše fizičko kolo ne radi, možda ćete morati promijeniti otpornik koji je uparen s njim. Saznajte više o razdjelnicima napona u lekciji o otpornicima na satu elektronike Instructables.

Ožičite Arduino Uno kolo uključivanjem komponenti i žica kako bi odgovarali vezama prikazanim ovdje u Tinkercad krugovima. Za detaljniji opis rada s vašom fizičkom Arduino Uno pločom pogledajte besplatnu klasu Arduino Instructables.

Kopirajte kôd iz prozora koda Tinkercad Circuits i zalijepite ga u praznu skicu u svom Arduino softveru ili kliknite gumb za preuzimanje (strelica prema dolje) i otvorite

rezultirajuća datoteka pomoću Arduina. Ovaj primjer možete pronaći i u softveru Arduino tako što ćete otići na Datoteka -> Primjeri -> 03. Analog -> AnalogInOutSerial.

Priključite USB kabel i odaberite ploču i priključak u izborniku Alati softvera.

Otpremite kôd i rukom zaklonite senzor od prijema svjetla i/ili osvijetlite senzor!

Otvorite serijski monitor kako biste promatrali vrijednosti senzora. Vjerovatno se stvarne svjetske vrijednosti neće proširiti sve do 0 ili sve do 1023, ovisno o vašim svjetlosnim uvjetima. Slobodno podesite raspon 0-1023 na svoj promatrani minimum i maksimum kako biste dobili maksimalni raspon izraza svjetline na LED-u.

Korak 5: Zatim pokušajte…

Sada kada ste naučili čitati fotootpornik i mapirati njegov izlaz za kontrolu svjetline LED -a, spremni ste primijeniti te i druge vještine koje ste do sada naučili.

Možete li zamijeniti LED diodu za drugu vrstu izlaza, poput servo motora, i stvoriti neki kôd koji odražava trenutni nivo osvjetljenja senzora kao određenu poziciju duž mjerača?

Pokušajte zamijeniti svoj fotootpornik za druge analogne ulaze, poput ultrazvučnog senzora udaljenosti ili potenciometra.

Saznajte više o tome kako nadzirati digitalne i analogne ulaze vašeg Arduina putem računara pomoću serijskog monitora.

Preporučuje se: