Indholdsfortegnelse:

Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor: 4 trin
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor: 4 trin

Video: Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor: 4 trin

Video: Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor: 4 trin
Video: Arduino Bluetooth LED-controller med Android HC-05 Bluetooth-modul | MIT App Opfinder 2024, November
Anonim
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor
Trådløs Arduino lys matchende LED-lampe ved hjælp af fotoresistor

Denne instruktive beskriver de trin, der er nødvendige for at konstruere en rudimentær trådløs lysfølende LED-lampe ved hjælp af Arduino Unos og en fotoresistor. En mulig applikation for denne enhed ville være belysning af et rum, der ikke har vinduer med kunstigt sollys, der matcher de faktiske lysforhold udenfor i realtid. Lad os komme igang!

Udbudsliste:

Arduino Uno x2

NRF24L01 Trådløs transceiver x2 (valgfri - NRF24L01 rygsæk x2)

TIP120 darlington transistor

Fotoresistor

5 mm lysdioder x3

Trykknap

100 ohm modstand x3

10k ohm modstand x3

Forskellige Jumper Wires

Trin 1: Tilslutning af NRF24L01 moduler og kredsløb

Tilslutning af NRF24L01 moduler og kredsløb
Tilslutning af NRF24L01 moduler og kredsløb
Tilslutning af NRF24L01 moduler og kredsløb
Tilslutning af NRF24L01 moduler og kredsløb
Tilslutning af NRF24L01 moduler og kredsløb
Tilslutning af NRF24L01 moduler og kredsløb

I dette projekt vil en Arduino fungere som en sender og sende lysniveaudata fra fotoresistoren, når der trykkes på knappen. Den anden Arduino vil tjene som modtager, tage disse data og omdanne dem til signalet til lysdioderne. Det første billede viser transmitterdiagrammet, og det andet viser modtageren.

Bemærk: På billederne af mit projekt vil du bemærke, at NRF24L01 -transceiverne er tilsluttet et andet printkort. Dette er et rygsækmodul til transceiverne, der fungerer som en effektregulator. Ud over at gøre ledningen lettere, regulerer disse rygsække strømindgangen til NRF24L01, hvilket tillader brug af en 5V strømforsyning. Jeg har for klarhedens skyld udelad disse rygsække i mit diagram.

(Hvis du beslutter dig for at bruge rygsækkene, henvises til dette link for et diagram over nålens placeringer i forhold til lageret NRF24L01).

Vedhæftet nedenfor er en PDF -kopi af kredsløbet for lettere zoom/detaljeret visning.

Trin 2: Kodning af senderen

Det sidste trin er kodning. Du skal installere RadioHead -biblioteket eller et tilsvarende bibliotek til brug med NRF24L01 -modulerne.

Til dette projekt bruger senderen og modtageren Arduinos forskellige koder på hver. Her er koden til senderen:

Jeg har også vedhæftet.ino -filen (NRF_Send) for nemheds skyld.

#omfatte

#omfatte

RH_NRF24 nrf24; // Initialiserer en transceiver som nrf24

int -knap = 5; // Indstilling af pinværdier for knappen og fotoresistor

int pResistor = A0; int værdi = 0; // Værdi af lys fra 0-1023

ugyldig opsætning ()

{Serial.begin (9600); pinMode (knap, INDGANG); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Alarmerer brugeren, hvis initialiseringen af modulet mislykkes Serial.println ("init mislykkedes"); // Standardværdier efter init er 2.402 GHz (kanal 2), 2Mbps, 0dBm hvis (! Nrf24.setChannel (1)) Serial.println ("setChannel mislykkedes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislykkedes"); }

hulrum ()

{if (digitalRead (button)) {// Send en besked, hvis der trykkes på knappen value = analogRead (pResistor); // Læs værdien af fotoresistoren (0-1023) uint8_t data = {værdi}; // Indstiller en matrix kaldet "data ", der indeholder lysværdien nrf24.send (data, sizeof (data)); // Send matrixen til modtageren nrf24.waitPacketSent (); // Vent, indtil pakken er sendt Serial.println ("Light Value:" +String (value)); // Udskriv lysværdien i den serielle skærm}}

Trin 3: Kodning af modtageren

For modtageren bruger koden også RadioHead -biblioteket.

#omfatte

#omfatte

RH_NRF24 nrf24;

int LEDPin = 3;

int værdi = 0; // Værdi af lys fra 0-1023

ugyldig opsætning ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); hvis (! nrf24.init ()) Serial.println ("init mislykkedes"); // Standardværdier efter init er 2.402 GHz (kanal 2), 2Mbps, 0dBm hvis (! Nrf24.setChannel (1)) Serial.println ("setChannel mislykkedes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislykkedes"); }

hulrum ()

{// Vent på en besked uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Gem den modtagne besked som en array kaldet "buf " uint8_t len = sizeof (buf); // Gem størrelsen af buf som "len", mens (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Modtager beskeden i 200 millisekunder, eller indtil hele meddelelsen modtages {value = buf [0]; // Sætter værdi til det første indeks for buf , som er int fra fotoresistor analogWrite (LEDPin, map (værdi, 0, 1023, 0, 255)); // Indstiller PWM-stiften til at udsende en skaleret værdi mellem 0-255 for LED-lysstyrken Serial.println (streng (værdi)); } analogWrite (LEDPin, 0); }

Trin 4: FÆRDIG

Nyd at lege med forskellige lysniveauer og se lysdioderne matche dem! Fotoresistoren kan nogle gange være fin og fungerer bedst i et mørkt rum med en lokaliseret lyskilde (men kan også fungere udenfor med solen).

Anbefalede: