Obsah:

Světelný senzor (fotorezistor) s Arduinem v Tinkercad: 5 kroků (s obrázky)
Světelný senzor (fotorezistor) s Arduinem v Tinkercad: 5 kroků (s obrázky)

Video: Světelný senzor (fotorezistor) s Arduinem v Tinkercad: 5 kroků (s obrázky)

Video: Světelný senzor (fotorezistor) s Arduinem v Tinkercad: 5 kroků (s obrázky)
Video: Tinkercad|Arduino - Видео Дәріс 5: PIR Motion Sensor және Фоторезистор 2024, Červenec
Anonim
Světelný senzor (fotorezistor) s Arduinem v Tinkercad
Světelný senzor (fotorezistor) s Arduinem v Tinkercad

Projekty Tinkercad »

Pojďme se naučit číst fotorezistor, typ proměnného rezistoru citlivého na světlo, pomocí analogového vstupu Arduino. Říká se mu také LDR (odpor závislý na světle).

Doposud jste se již naučili ovládat LED diody pomocí analogového výstupu Arduina a číst potenciometr, což je další typ proměnného odporu, takže v této lekci na tyto dovednosti navážeme. Pamatujte, že analogové vstupy Arduina (piny označené A0-A6) dokážou detekovat postupně se měnící elektrický signál a překládají tento signál na číslo mezi 0 a 1023.

obraz
obraz

Prozkoumejte vzorový obvod vložený zde v pracovní rovině kliknutím na Spustit simulaci a kliknutím na fotorezistor (hnědý ovál s vlnitou čarou uprostřed), poté přetažením posuvníku jasu upravte simulovaný světelný vstup.

V této lekci si tento simulovaný obvod postavíte sami vedle vzorku. Chcete -li volitelně vybudovat fyzický obvod, shromážděte desku Arduino Uno, kabel USB, nepájivou desku, LED diodu, odpory (220 ohmů a 4,7 k ohmů), fotorezistor a nepájivé vodiče.

Virtuálně můžete sledovat Tinkercad Circuits. Tuto lekci si můžete dokonce prohlédnout z Tinkercad (vyžaduje se bezplatné přihlášení)! Prozkoumejte ukázkový obvod a postavte si vlastní hned vedle. Tinkercad Circuits je bezplatný program založený na prohlížeči, který vám umožní vytvářet a simulovat obvody. Je ideální pro učení, výuku a prototypování.

Krok 1: Vybudujte obvod

Vybudujte obvod
Vybudujte obvod
Vybudujte obvod
Vybudujte obvod

Podívejte se na vyobrazený obvod breadboardu. Může být užitečné podívat se na verzi tohoto ukázkového obvodu s volným připojením pro srovnání na obrázku. V tomto kroku vytvoříte svou vlastní verzi tohoto obvodu podél vzorku v pracovní rovině.

Chcete -li pokračovat, načtěte nové okno Tinkercad Circuits a vytvořte si vlastní verzi tohoto obvodu vedle vzorku.

Identifikujte fotorezistor, LED, odpory a vodiče připojené k Arduinu v pracovní rovině obvodů Tinkercad.

Přetáhněte Arduino Uno a prkénko z panelu komponent na pracovní rovinu vedle stávajícího obvodu.

Kliknutím na vytvoření vodičů připojte napájecí lištu (+) a kostru (-) k Arduino 5V a uzemnění (GND).

Rozšiřte napájecí a pozemní kolejnice na příslušné sběrnice na opačném okraji prkénka (volitelné pro tento obvod, ale běžná praxe).

Zapojte LED do dvou různých řad prkénka tak, aby se katoda (záporná, kratší noha) připojila k jedné noze rezistoru (kdekoli od 100-1K ohmů je v pořádku). Rezistor může mít libovolnou orientaci, protože rezistory nejsou polarizované, na rozdíl od LED, které musí být zapojeny určitým způsobem, aby fungovaly.

Připojte další odporovou nohu k zemi.

Připojte LED anodu (kladná, delší noha) k pinu Arduino 9.

Přetáhněte fotorezistor z panelu komponent na prkénko, aby se jeho nohy zapojily do dvou různých řad.

Kliknutím vytvořte vodič spojující jednu nohu fotorezistoru s napájením.

Připojte druhou nohu k analogovému pinu Arduino A0.

Přetažením rezistoru z panelu komponent propojte nohu fotorezistoru připojenou k A0 se zemí a upravte její hodnotu na 4,7 k ohmů.

Krok 2: Kód s bloky

Kód s bloky
Kód s bloky

Pomocí editoru bloků kódu posloucháme stav fotorezistoru a poté nastavíme LED na relativní jas podle toho, kolik světla senzor vidí. Možná budete chtít v lekci Fading LED obnovit paměť LED analogového výstupu.

Kliknutím na tlačítko „Kód“otevřete editor kódu. Šedé bloky notace jsou komentáře pro zaznamenávání toho, co zamýšlíte, aby váš kód dělal, ale tento text není spuštěn jako součást programu.

V editoru kódu klikněte na kategorii Proměnné.

Pro uložení hodnoty odporu fotorezistoru vytvořte proměnnou s názvem „sensorValue“.

Přetáhněte „nastavený“blok. Uložíme stav našeho fotorezistoru do proměnné

sensorValue

Klikněte na kategorii Vstup a přetáhněte blok „analogového čtecího špendlíku“a vložte jej do bloku „nastavit“za slovo „do“

Protože je náš potenciometr připojen k Arduinu na pinu A0, změňte rozevírací seznam na A0.

Klikněte na kategorii Výstup a přetáhněte blok „tisk na sériový monitor“.

Přejděte do kategorie Proměnné a přetáhněte hodnotu proměnné sensorValue do bloku „tisk na sériový monitor“a zkontrolujte, zda je rozevírací seznam nastaven na tisk s novým řádkem. Volitelně spusťte simulaci a otevřete sériový monitor, abyste ověřili, že hodnoty přicházejí a mění se při nastavování senzoru. Hodnoty analogových vstupů se pohybují od 0-1023.

Protože chceme zapisovat na LED s číslem mezi 0 (vypnuto) a 255 (plný jas), použijeme blok „mapa“, abychom za nás provedli nějaké křížové násobení. Přejděte do kategorie Matematika a přetáhněte blok „mapy“.

V prvním slotu přetáhněte proměnný blok sensorValue a poté nastavte rozsah od 0 do 255.

Zpět do kategorie Výstup přetáhněte analogový blok „set pin“, který ve výchozím nastavení říká „set pin 3 to 0.“Upravte jej tak, aby nastavil kolík 9.

Tažením bloku mapy, který jste vytvořili dříve, do pole „set pin“bloku „to“zapíšete upravené číslo na pin LED pomocí PWM.

Klikněte na kategorii Control, přetáhněte blok čekání a upravte jej tak, aby se program odložil o 0,1 sekundy.

Krok 3: Vysvětlen fotorezistorový kód Arduino

Když je editor kódu otevřený, můžete kliknout na rozevírací nabídku vlevo a vybrat „Bloky + text“, abyste odhalili kód Arduino generovaný bloky kódu. Sledujte, jak kód prozkoumáme podrobněji.

int sensorValue = 0;

Před

založit()

vytvoříme proměnnou pro uložení aktuální hodnoty načtené z potenciometru. Jmenuje se to

int

protože je to celé číslo nebo jakékoli celé číslo.

neplatné nastavení ()

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

Uvnitř nastavení jsou piny konfigurovány pomocí

pinMode ()

funkce. Pin A0 je konfigurován jako vstup, takže můžeme „poslouchat“elektrický stav potenciometru. Pin 9 je konfigurován jako výstup pro ovládání LED. Aby bylo možné odesílat zprávy, Arduino otevírá nový sériový komunikační kanál s

Serial.begin ()

který vyžaduje argument přenosové rychlosti (jaká rychlost komunikace), v tomto případě 9600 bitů za sekundu.

prázdná smyčka ()

{// načtěte hodnotu ze senzoru sensorValue = analogRead (A0); // vytiskněte údaje ze snímače, abyste znali jeho rozsah Serial.println (sensorValue);

Cokoli po sérii lomítek

//

je komentář, který lidem pomáhá srozumitelně porozumět tomu, k čemu je program určen, ale není součástí programu, který vaše Arduino spouští. V hlavní smyčce se volala funkce

analogRead ();

zkontroluje stav pinu A0 (což bude celé číslo od 0-1023) a uloží tuto hodnotu do proměnné

sensorValue

// namapujte čtení senzoru na rozsah pro LED

analogWrite (9, mapa (sensorValue, 0, 1023, 0, 255)); zpoždění (100); // Počkejte 100 milisekund}

Řádek následující za dalším komentářem dělá hodně najednou. Pamatovat si

analogWrite ()

bere dva argumenty, číslo pinu (v našem případě 9) a hodnotu pro zápis, která by měla být mezi 0 a 255. Funkce inline

mapa()

vyžaduje pět argumentů: počet k vyhodnocení (neustále se měnící proměnná senzoru), očekávané minimum a očekávané maximum a požadované minimum a maximum. Takže

mapa()

funkce v našem případě vyhodnocuje příchozí hodnotu sensorValue a provádí křížové násobení, aby zmenšila výstup z 0-1023 na 0-255. Výsledek se vrátí do druhého argumentu

analogWrite ();

nastavení jasu LED připojené k pinu 9.

Krok 4: Sestavte fyzický obvod Arduino (volitelně)

Sestavte fyzický obvod Arduino (volitelně)
Sestavte fyzický obvod Arduino (volitelně)

Chcete -li naprogramovat fyzické Arduino Uno, musíte si nainstalovat bezplatný software (nebo plugin pro webový editor) a poté jej otevřít. Různé fotobuňky mají různé hodnoty, takže pokud váš fyzický obvod nefunguje, možná budete muset změnit odpor, který je s ním spárován. Další informace o děličích napětí najdete v lekci Instructables Electronics Class o odporech.

Zapojte obvod Arduino Uno zapojením komponent a vodičů tak, aby odpovídaly připojení zde zobrazenému v obvodech Tinkercad. Chcete-li získat podrobnější informace o práci s fyzickou deskou Arduino Uno, podívejte se na bezplatnou třídu Instructables Arduino.

Zkopírujte kód z okna kódu Tinkercad Circuits a vložte jej do prázdné skici v softwaru Arduino, nebo klikněte na tlačítko stahování (šipka směřující dolů) a otevřete

Výsledný soubor pomocí Arduino. Tento příklad najdete také v softwaru Arduino tak, že přejdete na Soubor -> Příklady -> 03. Analog -> AnalogInOutSerial.

Připojte kabel USB a v nabídce Nástroje softwaru vyberte desku a port.

Nahrajte kód a pomocí ruky zakryjte snímač před přijímáním světla a/nebo si na senzor posviťte!

Otevřete sériový monitor a sledujte hodnoty senzorů. Je pravděpodobné, že hodnoty v reálném světě nebudou sahat až na 0 nebo až na 1023, v závislosti na vašich světelných podmínkách. Nebojte se upravit rozsah 0-1023 na vaše pozorované minimum a pozorované maximum, abyste získali maximální rozsah vyjádření jasu na LED.

Krok 5: Další, zkuste…

Nyní, když jste se naučili číst fotorezistor a mapovat jeho výstup pro ovládání jasu LED, jste připraveni uplatnit tyto a další dovednosti, které jste se dosud naučili.

Můžete vyměnit LED za jiný typ výstupu, jako je servomotor, a vytvořit nějaký kód, který by odrážel aktuální úroveň osvětlení senzoru jako určitou polohu podél měřidla?

Zkuste vyměnit fotorezistor za jiné analogové vstupy, jako je ultrazvukový snímač vzdálenosti nebo potenciometr.

Zjistěte více o tom, jak monitorovat digitální a analogové vstupy vašeho Arduina prostřednictvím počítače pomocí sériového monitoru.

Doporučuje: