Obsah:

Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru: 4 kroky
Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru: 4 kroky

Video: Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru: 4 kroky

Video: Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru: 4 kroky
Video: Laserový alarm, stmívač, detektor - how to make easy laser alarm 2024, Červenec
Anonim
Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru
Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru
Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru
Bezdrátová světelná LED dioda Arduino s použitím fotorezistoru
Bezdrátová světelná LED dioda Arduino využívající fotorezistor
Bezdrátová světelná LED dioda Arduino využívající fotorezistor

Tento instruktáž podrobně popisuje kroky nutné ke konstrukci rudimentární bezdrátové LED diody pro snímání světla pomocí Arduino Unos a fotorezistoru. Možnou aplikací pro toto zařízení by bylo osvětlení místnosti bez oken umělým slunečním zářením, které by odpovídalo skutečným světelným podmínkám venku v reálném čase. Začněme!

Seznam dodávek:

Arduino Uno x2

Bezdrátový transceiver NRF24L01 x2 (volitelně - batoh NRF24L01 x2)

TIP120 darlingtonský tranzistor

Fotorezistor

5 mm LED x3

Stiskněte tlačítko

Odpor 100 ohmů x3

Rezistor 10k ohm x3

Různé propojovací vodiče

Krok 1: Zapojení modulů a obvodu NRF24L01

Zapojení modulů a obvodu NRF24L01
Zapojení modulů a obvodu NRF24L01
Zapojení modulů a obvodu NRF24L01
Zapojení modulů a obvodu NRF24L01
Zapojení modulů a obvodu NRF24L01
Zapojení modulů a obvodu NRF24L01

V tomto projektu bude jeden Arduino fungovat jako vysílač, který po stisknutí tlačítka odešle data o úrovni světla z fotorezistoru. Druhé Arduino bude sloužit jako přijímač, který tato data převezme a převede na signál k LED diodám. První obrázek ukazuje diagram vysílače a druhý ukazuje přijímač.

Poznámka: na fotografiích mého projektu si všimnete, že transceivery NRF24L01 jsou připojeny k jiné desce plošných spojů. Jedná se o batohový modul pro transceivery, který funguje jako regulátor výkonu. Kromě toho, že tyto batohy usnadňují zapojení, regulují příkon NRF24L01, což umožňuje použití 5V napájecího zdroje. Tyto batohy jsem ve schématu pro přehlednost vynechal.

(Pokud se rozhodnete batohy použít, podívejte se na tento odkaz na schéma umístění kolíků ve vztahu k akci NRF24L01).

Níže je připojena kopie obvodu ve formátu PDF pro snazší přiblížení/podrobné prohlížení.

Krok 2: Kódování vysílače

Posledním krokem je kódování. Pro použití s moduly NRF24L01 budete muset nainstalovat knihovnu RadioHead nebo ekvivalentní knihovnu.

Pro tento projekt používají vysílač a přijímač Arduinos na každém jiný kód. Zde je kód vysílače:

Pro pohodlí jsem také připojil soubor.ino (NRF_Send).

#zahrnout

#zahrnout

RH_NRF24 nrf24; // Inicializace transceiveru jako nrf24

tlačítko int = 5; // Nastavení pinových hodnot pro tlačítko a fotorezistor

int pResistor = A0; int hodnota = 0; // Hodnota světla od 0-1023

neplatné nastavení ()

{Serial.begin (9600); pinMode (tlačítko, VSTUP); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Upozorní uživatele, pokud inicializace modulu selže Serial.println ("init failed"); // Výchozí hodnoty po inicializaci jsou 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, pokud (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

prázdná smyčka ()

{if (digitalRead (tlačítko)) {// Odeslání zprávy po stisknutí tlačítka value = analogRead (pResistor); // Přečíst hodnotu fotorezistoru (0-1023) uint8_t data = {hodnota}; // Nastaví pole s názvem "data " obsahující světelnou hodnotu nrf24.send (data, sizeof (data)); // Odeslání pole příjemci nrf24.waitPacketSent (); // Počkejte, až bude paket odeslán Serial.println ("Hodnota světla:" +String (hodnota)); // Vytiskněte hodnotu světla na sériový monitor}}

Krok 3: Kódování přijímače

U přijímače kód také používá knihovnu RadioHead.

#zahrnout

#zahrnout

RH_NRF24 nrf24;

int LEDPin = 3;

int hodnota = 0; // Hodnota světla od 0-1023

neplatné nastavení ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init failed"); // Výchozí hodnoty po inicializaci jsou 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, pokud (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

prázdná smyčka ()

{// Počkejte na zprávu uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Uložte přijatou zprávu jako pole s názvem „buf “uint8_t len = sizeof (buf); // Uložte velikost bufu jako „len“while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Přijme zprávu na 200 milisekund nebo do přijetí celé zprávy {value = buf [0]; // Nastaví hodnotu na první index buf , což je int z fotorezistoru analogWrite (LEDPin, map (hodnota, 0, 1023, 0, 255)); // Nastaví pin PWM na výstup v měřítku mezi 0-255 pro jas LED Serial.println (String (hodnota)); } analogWrite (LEDPin, 0); }

Krok 4: HOTOVO

Užijte si hraní s různými úrovněmi osvětlení a sledujte, jak jim LED diody odpovídají! Fotorezistor může být někdy vybíravý a funguje nejlépe v temné místnosti s lokalizovaným zdrojem světla (ale může fungovat i venku se sluncem).

Doporučuje: