Obsah:

Svetelný senzor (fotorezistor) s Arduino v Tinkercad: 5 krokov (s obrázkami)
Svetelný senzor (fotorezistor) s Arduino v Tinkercad: 5 krokov (s obrázkami)

Video: Svetelný senzor (fotorezistor) s Arduino v Tinkercad: 5 krokov (s obrázkami)

Video: Svetelný senzor (fotorezistor) s Arduino v Tinkercad: 5 krokov (s obrázkami)
Video: Прототипирование в Tinkercad: Arduino 2024, Júl
Anonim
Svetelný senzor (fotorezistor) s Arduinom v Tinkercad
Svetelný senzor (fotorezistor) s Arduinom v Tinkercad

Projekty Tinkercad »

Naučme sa čítať fotorezistor, svetlocitlivý typ variabilného odporu, pomocou analógového vstupu Arduino. Hovorí sa mu tiež LDR (svetlo závislý odpor).

Doteraz ste sa už naučili ovládať LED diódy s analógovým výstupom Arduino a čítať potenciometer, čo je ďalší typ variabilného odporu, takže v tejto lekcii budeme stavať na týchto schopnostiach. Nezabudnite, že analógové vstupy Arduina (piny označené A0-A6) môžu detekovať postupne sa meniaci elektrický signál a prekladajú tento signál na číslo medzi 0 a 1023.

Obrázok
Obrázok

Preskúmajte vzorový obvod vložený tu v pracovnej rovine kliknutím na položku Spustiť simuláciu a kliknutím na fotorezistor (hnedý ovál s vlnovkou v strede), potom potiahnutím posúvača jasu upravte simulovaný vstup svetla.

V tejto lekcii postavíte tento simulovaný obvod sami vedľa vzorky. Ak chcete voliteľne vybudovať fyzický obvod, zozbierajte dosku Arduino Uno, kábel USB, nepájivú dosku, LED diódu, odpory (220 ohmov a 4,7 k ohmov), fotorezistor a nepájivé vodiče.

Nasledovať môžete virtuálne pomocou obvodov Tinkercad. Túto lekciu si môžete dokonca pozrieť aj v rámci Tinkercad (vyžaduje sa bezplatné prihlásenie)! Preskúmajte ukážkový obvod a postavte si vlastný hneď vedľa neho. Tinkercad Circuits je bezplatný program založený na prehliadači, ktorý vám umožňuje vytvárať a simulovať obvody. Je ideálny na učenie, učenie a prototypovanie.

Krok 1: Vybudujte obvod

Vybudujte obvod
Vybudujte obvod
Vybudujte obvod
Vybudujte obvod

Pozrite sa na zapojený obvod breadboardu. Na porovnanie môže byť užitočné pozrieť sa na voľne zapojenú verziu tohto vzorového obvodu. V tomto kroku si postavíte vlastnú verziu tohto obvodu pozdĺž vzorky v pracovnom pláne.

Ak chcete pokračovať, načítajte nové okno Tinkercad Circuits a vytvorte si vlastnú verziu tohto obvodu vedľa vzorky.

Identifikujte fotorezistor, LED, odpory a vodiče pripojené k Arduinu v pracovnej rovine obvodov Tinkercad.

Pretiahnite Arduino Uno a nepájivú dosku z panela s komponentmi do pracovného priestoru, vedľa existujúceho obvodu.

Pripojte napájacie (+) a uzemňovacie (-) koľajnice k Arduino 5V a uzemneniu (GND) kliknutím na vytvorenie vodičov.

Rozšírte výkonové a pozemné koľajnice na príslušné autobusy na opačnom okraji dosky (voliteľné pre tento okruh, ale bežná prax).

Zapojte diódu LED do dvoch rôznych radov dosky, aby sa katóda (záporná, kratšia noha) spojila s jednou nohou rezistora (v poriadku je kdekoľvek od 100 do 1 ohmov). Rezistor môže mať ľubovoľnú orientáciu, pretože rezistory nie sú polarizované, na rozdiel od diód LED, ktoré musia byť zapojené určitým spôsobom, aby fungovali.

Pripojte druhú nohu rezistora k zemi.

Pripojte LED anódu (kladná, dlhšia noha) k pinu Arduino 9.

Pretiahnite fotorezistor z panelu komponentov na dosku, aby sa jeho nohy zapojili do dvoch rôznych radov.

Kliknutím vytvoríte drôt spájajúci jednu nohu fotoodporu s napájaním.

Druhú nohu pripojte k analógovému kolíku Arduino A0.

Potiahnutím rezistora z panelu komponentov spojte nohu fotoodporu pripojenú k A0 so zemou a upravte jej hodnotu na 4,7 k ohmov.

Krok 2: Kódujte s blokmi

Kód s blokmi
Kód s blokmi

Poďme použiť editor kódových blokov na počúvanie stavu fotorezistora a potom nastavíme LED na relatívny jas podľa toho, koľko svetla senzor vidí. Možno budete chcieť obnoviť svoju pamäť analógového výstupu LED v lekcii Fading LED.

Kliknutím na tlačidlo „Kód“otvoríte editor kódu. Sivé bloky notácie sú komentáre na zaznamenanie toho, čo chcete v kóde urobiť, ale tento text nie je súčasťou programu.

V editore kódu kliknite na kategóriu Premenné.

Na uloženie hodnoty odporu fotorezistora vytvorte premennú s názvom „sensorValue“.

Presuňte „nastavený“blok. Uložíme stav nášho fotorezistora do premennej

sensorValue

Kliknite na kategóriu Vstup, potiahnite blok „analógového čítacieho pinu“a umiestnite ho do bloku „nastaviť“za slovom „do“

Pretože je náš potenciometer pripojený k Arduinu na kolíku A0, zmeňte rozbaľovaciu ponuku na A0.

Kliknite na kategóriu Výstup a potiahnite blok „vytlačiť na sériový monitor“.

Prejdite do kategórie Premenné a presuňte hodnotu senzora premennej do bloku „Print to serial monitor“a uistite sa, že je rozbaľovacia ponuka nastavená na tlač s novým riadkom. Voliteľne spustite simuláciu a otvorte sériový monitor, aby ste si overili, či údaje prichádzajú a menia sa pri úprave senzora. Analógové vstupné hodnoty sa pohybujú od 0-1023.

Pretože chceme zapisovať na LED diódy s číslom od 0 (vypnuté) do 255 (plný jas), použijeme blok „mapa“na to, aby sme pre nás urobili nejaké krížové násobenie. Prejdite do kategórie Matematika a potiahnite blok „mapy“.

Do prvého slotu potiahnite variabilný blok sensorValue a potom nastavte rozsah od 0 do 255.

Späť do kategórie Výstup potiahnite analógový blok „set pin“, ktorý v predvolenom nastavení hovorí „nastavte pin 3 na 0“. Upravte ho tak, aby nastavil kolík 9.

Potiahnutím bloku mapy, ktorý ste vytvorili predtým, do poľa „set pin“bloku „to“napíšte upravené číslo na pin LED pomocou PWM.

Kliknite na kategóriu Ovládanie, potiahnite blok čakania a upravte ho tak, aby odložil program o 0,1 sekundy.

Krok 3: Vysvetlený kód fotoodporu Arduino

Keď je editor kódu otvorený, môžete kliknúť na rozbaľovaciu ponuku vľavo a vybrať „Bloky + text“, aby ste odhalili kód Arduino generovaný blokmi kódu. Postupujte ďalej, pretože kód skúmame podrobnejšie.

int sensorValue = 0;

Pred

nastaviť()

vytvoríme premennú na uloženie aktuálnej hodnoty načítanej z potenciometra. Vola sa to

int

pretože je to celé číslo alebo akékoľvek celé číslo.

neplatné nastavenie ()

{pinMode (A0, INPUT); pinMode (9, VÝSTUP); Serial.begin (9600); }

Vnútri nastavenia sú piny nakonfigurované pomocou

pinMode ()

funkciu. Pin A0 je nakonfigurovaný ako vstup, takže môžeme „počúvať“elektrický stav potenciometra. Pin 9 je nakonfigurovaný ako výstup na ovládanie LED. Aby bolo možné odosielať správy, Arduino otvára nový sériový komunikačný kanál s

Serial.begin ()

ktorý vyžaduje argument prenosovej rýchlosti (aká je rýchlosť komunikácie), v tomto prípade 9600 bitov za sekundu.

prázdna slučka ()

{// odčítajte hodnotu zo senzora sensorValue = analogRead (A0); // vytlačte údaje zo senzora, aby ste poznali jeho rozsah Serial.println (sensorValue);

Čokoľvek po sérii lomiek

//

je komentár, ktorý ľuďom pomáha v jednoduchom jazyku porozumieť tomu, na čo je program určený, ale nie je súčasťou programu, ktorý vaše Arduino beží. V hlavnej slučke sa volá funkcia

analogRead ();

skontroluje stav kolíka A0 (čo bude celé číslo od 0 do 1023) a uloží túto hodnotu do premennej

sensorValue

// namapujte čítanie senzora do rozsahu pre LED diódu

analogWrite (9, mapa (sensorValue, 0, 1023, 0, 255)); oneskorenie (100); // Počkajte 100 milisekúnd}

Riadok nasledujúci komentár robí veľa naraz. Pamätajte si

analogWrite ()

trvá dva argumenty, číslo PIN (v našom prípade 9) a hodnota na zápis, ktorá by mala byť medzi 0 a 255. Inline funkcia

mapa ()

vyžaduje päť argumentov: vyhodnotený počet (neustále sa meniaca premenná senzora), očakávané minimum a očakávané maximum a požadované minimum a maximum. Takže

mapa ()

funkcia v našom prípade vyhodnocuje prichádzajúcu hodnotu senzora a robí krížové násobenie na zníženie výstupu z 0-1023 na 0-255. Výsledok sa vráti do druhého argumentu z

analogWrite ();

nastavenie jasu LED diódy pripojenej k pinu 9.

Krok 4: Zostavte fyzický obvod Arduino (voliteľné)

Zostavte fyzický obvod Arduino (voliteľné)
Zostavte fyzický obvod Arduino (voliteľné)

Na naprogramovanie fyzického Arduino Uno budete musieť nainštalovať bezplatný softvér (alebo doplnok pre webový editor) a potom ho otvoriť. Rôzne fotobunky majú rôzne hodnoty, takže ak váš fyzický obvod nefunguje, možno budete musieť zmeniť odpor, ktorý je s ním spárovaný. Získajte viac informácií o rozdeľovačoch napätia v lekcii triedy elektroniky s pokynmi k odbornému vybaveniu o odporoch.

Zapojte obvod Arduino Uno zapojením komponentov a vodičov tak, aby zodpovedali prepojeniam tu uvedeným v obvodoch Tinkercad. Ak sa chcete podrobnejšie zoznámiť s prácou s fyzickou doskou Arduino Uno, navštívte bezplatnú triedu Arduino Instructables.

Skopírujte kód z okna kódu Tinkercad Circuits a vložte ho do prázdneho náčrtu v softvéri Arduino alebo kliknite na tlačidlo sťahovania (šípka nadol) a otvorte

výsledný súbor pomocou Arduino. Tento príklad nájdete aj v softvéri Arduino tak, že prejdete na Súbor -> Príklady -> 03. Analog -> AnalogInOutSerial.

Pripojte kábel USB a v ponuke Nástroje softvéru vyberte dosku a port.

Nahrajte kód a rukou zakryte snímač pred príjmom svetla a/alebo si na senzor posvieťte!

Otvorte sériový monitor a sledujte hodnoty senzorov. V závislosti od vašich svetelných podmienok je pravdepodobné, že hodnoty skutočného sveta nebudú siahať až na 0 alebo až na 1023. Nebojte sa nastaviť rozsah 0-1023 na vaše pozorované minimum a pozorované maximum, aby ste získali maximálny rozsah výrazu jasu na dióde LED.

Krok 5: Ďalej skúste…

Teraz, keď ste sa naučili čítať fotoodpor a mapovať jeho výstup na ovládanie jasu LED, ste pripravení uplatniť tieto a ďalšie schopnosti, ktoré ste sa doteraz naučili.

Môžete vymeniť diódu LED za iný typ výstupu, napríklad za servomotor, a vytvoriť kód, ktorý by odrážal aktuálnu úroveň osvetlenia senzora ako určitú polohu pozdĺž meradla?

Skúste vymeniť fotoodpor za iné analógové vstupy, ako napríklad ultrazvukový snímač vzdialenosti alebo potenciometer.

Získajte viac informácií o tom, ako monitorovať digitálne a analógové vstupy Arduina prostredníctvom počítača pomocou sériového monitora.

Odporúča: