Innehållsförteckning:

Trådlös Arduino ljusmatchande LED-lampa med fotoresistor: 4 steg
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor: 4 steg

Video: Trådlös Arduino ljusmatchande LED-lampa med fotoresistor: 4 steg

Video: Trådlös Arduino ljusmatchande LED-lampa med fotoresistor: 4 steg
Video: Arduino fotoresistor - Programmering i s4a för att styra något med hjälp av ljus. 2024, Juli
Anonim
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor
Trådlös Arduino ljusmatchande LED-lampa med fotoresistor

Denna instruerbara detalj beskriver de steg som krävs för att konstruera en rudimentär trådlös ljuskänslig LED-lampa med Arduino Unos och en fotoresistor. En möjlig applikation för denna enhet skulle vara att belysa ett rum som inte har fönster med artificiellt solljus, som matchar de faktiska ljusförhållandena ute i realtid. Låt oss börja!

Utbudslista:

Arduino Uno x2

NRF24L01 Trådlös sändtagare x2 (tillval - NRF24L01 ryggsäck x2)

TIP120 darlington -transistor

Fotoresistor

5 mm lysdioder x3

Tryckknapp

100 ohm motstånd x3

10k ohm motstånd x3

Olika tröjor

Steg 1: Anslutning av NRF24L01 -moduler och krets

Anslutning av NRF24L01 -moduler och kretsar
Anslutning av NRF24L01 -moduler och kretsar
Anslutning av NRF24L01 -moduler och kretsar
Anslutning av NRF24L01 -moduler och kretsar
Anslutning av NRF24L01 -moduler och kretsar
Anslutning av NRF24L01 -moduler och kretsar

I detta projekt kommer en Arduino att fungera som en sändare och skicka ljusnivådata från fotoresistorn när tryckknappen trycks in. Den andra Arduino kommer att fungera som mottagare, ta den informationen och omvandla den till signalen till lysdioderna. Den första bilden visar sändardiagrammet och den andra visar mottagaren.

Obs! På bilderna av mitt projekt kommer du att märka att NRF24L01 -sändtagarna är anslutna till ett annat kretskort. Detta är en ryggsäcksmodul för transceivrarna, som fungerar som en effektregulator. Förutom att göra kablarna enklare, reglerar dessa ryggsäckar ingången för NRF24L01, vilket möjliggör användning av en 5V strömförsörjning. Jag har för klarhetens skull utelämnat dessa ryggsäckar i mitt diagram.

(Om du bestämmer dig för att använda ryggsäckarna, se denna länk för ett diagram över stiftplatserna med hänvisning till lager NRF24L01).

Nedan bifogas en PDF -kopia av kretsen för enklare zoomning/detaljerad visning.

Steg 2: Kodning av sändaren

Det sista steget är kodning. Du måste installera RadioHead -biblioteket eller ett motsvarande bibliotek för användning med NRF24L01 -modulerna.

För detta projekt använder sändaren och mottagaren Arduinos olika koder på varje. Här är koden för sändaren:

Jag har också bifogat.ino -filen (NRF_Send) för enkelhets skull.

#omfatta

#omfatta

RH_NRF24 nrf24; // Initierar en transceiver som nrf24

int -knapp = 5; // Ställa in stiftvärden för knappen och fotoresistor

int pResistor = A0; int värde = 0; // Ljusets värde från 0-1023

void setup ()

{Serial.begin (9600); pinMode (knapp, INGÅNG); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Varnar användaren om initialiseringen av modulen misslyckas Serial.println ("init misslyckades"); // Standardvärdena efter init är 2.402 GHz (kanal 2), 2Mbps, 0dBm om (! Nrf24.setChannel (1)) Serial.println ("setChannel misslyckades"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misslyckades"); }

void loop ()

{if (digitalRead (knapp)) {// Skicka ett meddelande om knappen trycks ned value = analogRead (pResistor); // Läs värdet på fotoresistorn (0-1023) uint8_t data = {värde}; // Ställer in en array som heter "data " som innehåller ljusvärdet nrf24.send (data, sizeof (data)); // Skicka matrisen till mottagaren nrf24.waitPacketSent (); // Vänta tills paketet har skickats Serial.println ("Light Value:" +String (value)); // Skriv ut ljusvärdet i den seriella bildskärmen}}

Steg 3: Kodning av mottagaren

För mottagaren använder koden också RadioHead -biblioteket.

#omfatta

#omfatta

RH_NRF24 nrf24;

int LEDPin = 3;

int värde = 0; // Ljusets värde från 0-1023

void setup ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init misslyckades"); // Standardvärdena efter init är 2.402 GHz (kanal 2), 2Mbps, 0dBm om (! Nrf24.setChannel (1)) Serial.println ("setChannel misslyckades"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misslyckades"); }

void loop ()

{// Vänta på ett meddelande uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Lagra det mottagna meddelandet som en array som heter "buf " uint8_t len = sizeof (buf); // Lagra storleken på buf som "len" medan (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Tar emot meddelandet i 200 millisekunder eller tills hela meddelandet mottas {value = buf [0]; // Sätter värde till det första indexet för buf , vilket är int från fotoresistor analogWrite (LEDPin, map (värde, 0, 1023, 0, 255)); // Ställer in PWM-stiftet för att mata ut ett skalat värde mellan 0-255 för LED-ljusstyrkan Serial.println (Sträng (värde)); } analogWrite (LEDPin, 0); }

Steg 4: KLAR

Njut av att leka med olika ljusnivåer och se hur lysdioderna matchar dem! Fotoresistorn kan vara finurlig ibland och fungerar bäst i ett mörkt rum med en lokaliserad ljuskälla (men kan också fungera utomhus med solen).

Rekommenderad: