Tartalomjegyzék:

Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával: 4 lépés
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával: 4 lépés

Videó: Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával: 4 lépés

Videó: Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával: 4 lépés
Videó: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, Július
Anonim
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával
Vezeték nélküli Arduino fényhez illő LED-lámpa fotorezisztor használatával

Ez az útmutató részletesen leírja a kezdetleges vezeték nélküli fényérzékelő LED-lámpa Arduino Unos és fotorezisztor használatával történő létrehozásához szükséges lépéseket. Ennek az eszköznek az egyik lehetséges alkalmazása lehet a mesterséges napfény által megvilágított helyiség, amelynek ablakai nincsenek, és amely valós időben megfelel a kinti tényleges megvilágítási feltételeknek. Lássunk neki!

Ellátási lista:

Arduino Uno x2

NRF24L01 vezeték nélküli adó -vevő x2 (opcionális - NRF24L01 hátizsák x2)

TIP120 darlington tranzisztor

Fotorezisztor

5 mm -es LED -ek x3

Nyomógomb

100 ohmos ellenállás x3

10 k ohmos ellenállás x3

Különféle jumper vezetékek

1. lépés: Az NRF24L01 modulok és áramkör bekötése

Az NRF24L01 modulok és áramkör bekötése
Az NRF24L01 modulok és áramkör bekötése
Az NRF24L01 modulok és áramkör bekötése
Az NRF24L01 modulok és áramkör bekötése
Az NRF24L01 modulok és áramkör bekötése
Az NRF24L01 modulok és áramkör bekötése

Ebben a projektben az egyik Arduino adóként fog működni, és a nyomógomb megnyomásakor fényszintű adatokat küld a fotorezisztorból. A másik Arduino vevőként fog szolgálni, átveszi ezeket az adatokat, és átalakítja azt a LED -ek jelévé. Az első kép az adó diagramját, a második a vevőt mutatja.

Megjegyzés: a projektem fotóin észre fogod venni, hogy az NRF24L01 adó -vevő egy másik PCB -hez van csatlakoztatva. Ez egy hátizsák modul az adó -vevők számára, amely teljesítményszabályozóként működik. A kábelezés megkönnyítése mellett ezek a hátizsákok szabályozzák az NRF24L01 tápellátását, lehetővé téve az 5 V -os tápegység használatát. Ezeket a hátizsákokat kihagytam a diagramomból az egyértelműség kedvéért.

(Ha mégis úgy dönt, hogy a hátizsákokat használja, ezen a linken tekintheti meg a csapok elhelyezkedésének diagramját az NRF24L01 készletre hivatkozva).

Az alábbiakban az áramkör PDF másolata található a könnyebb nagyítás/részletes megtekintés érdekében.

2. lépés: Az adó kódolása

Az utolsó lépés a kódolás. Az NRF24L01 modulokkal való használathoz telepítenie kell a RadioHead könyvtárat vagy ezzel egyenértékű könyvtárat.

Ehhez a projekthez az adó és a vevő Arduinos különböző kódokat használ mindegyiken. Íme az adó kódja:

A kényelem kedvéért csatoltam az.ino fájlt (NRF_Send).

#befoglalni

#befoglalni

RH_NRF24 nrf24; // Az adó -vevő inicializálása nrf24 néven

int gomb = 5; // A gomb és a fényellenállás tű értékeinek beállítása

int pEllenállás = A0; int érték = 0; // A fény értéke 0-1023 között

üres beállítás ()

{Serial.begin (9600); pinMode (gomb, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Figyelmezteti a felhasználót, ha a modul inicializálása sikertelen Serial.println ("init failed"); // Az alapértelmezett értékek az init után 2,402 GHz (2. csatorna), 2 Mbps, 0 dBm, ha (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nem sikerült"); }

üres hurok ()

{if (digitalRead (gomb)) {// Üzenet küldése a gomb megnyomásakor value = analogRead (pResistor); // Olvassa el a fotorezisztor értékét (0-1023) uint8_t data = {value}; // Beállít egy "data " nevű tömböt, amely tartalmazza az nrf24.send (data, sizeof (data)) fényértéket; // A tömb elküldése az nrf24.waitPacketSent () vevőkészülékre // Várja meg, amíg a csomag elküldésre kerül Serial.println ("Light Value:" +String (érték)); // A fényérték nyomtatása a soros monitorba}}

3. lépés: A vevő kódolása

A vevő számára a kód a RadioHead Library -t is használja.

#befoglalni

#befoglalni

RH_NRF24 nrf24;

int LEDPin = 3;

int érték = 0; // A fény értéke 0-1023 között

üres beállítás ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init failed"); // Az alapértelmezett értékek az init után 2,402 GHz (2. csatorna), 2 Mbps, 0 dBm, ha (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nem sikerült"); }

üres hurok ()

{// Várjon egy üzenetet uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // A kapott üzenet tárolása tömbként "buf " néven uint8_t len = sizeof (buf); // A buf méretét "len" -ként tárolja, miközben (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Az üzenetet 200 milliszekundumig vagy az egész üzenet beérkezéséig fogadja {value = buf [0]; // Beállítja az értéket a buf első indexére, amely az intro a fotorezisztor analogWrite (LEDPin, map (érték, 0, 1023, 0, 255)); // Beállítja, hogy a PWM pin 0-255 közötti skálázott értéket adjon ki a Serial.println (String (érték)) LED fényerősséghez; } analogWrite (LEDPin, 0); }

4. lépés: KÉSZ

Élvezze a játékot a különböző megvilágítási szinteken, és nézze meg a hozzájuk tartozó LED -eket! A fotorezisztor néha finnyás lehet, és a legjobban sötét szobában, helyi fényforrással működik (de kint is dolgozhat a napsütéssel).

Ajánlott: