Innholdsfortegnelse:

Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor: 4 trinn
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor: 4 trinn

Video: Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor: 4 trinn

Video: Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor: 4 trinn
Video: HC05 och trådlös programmering av arduino 2024, Juli
Anonim
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor
Trådløs Arduino lysmatchende LED-lampe ved hjelp av fotoresistor

Denne instruksen beskriver trinnene som er nødvendige for å konstruere en rudimentær trådløs lysfølende LED-lampe ved hjelp av Arduino Unos og en fotoresistor. En mulig applikasjon for denne enheten er å tenne et rom som ikke har vinduer med kunstig sollys, og som matcher de faktiske lysforholdene ute i sanntid. La oss komme i gang!

Tilbudsliste:

Arduino Uno x2

NRF24L01 Trådløs transceiver x2 (valgfritt - NRF24L01 ryggsekk x2)

TIP120 darlington -transistor

Fotoresistor

5 mm lysdioder x3

Trykknapp

100 ohm motstand x3

10k ohm motstand x3

Ulike hoppetråder

Trinn 1: Koble til NRF24L01 -modulene og kretsen

Koble til NRF24L01 -modulene og kretsen
Koble til NRF24L01 -modulene og kretsen
Koble til NRF24L01 -modulene og kretsen
Koble til NRF24L01 -modulene og kretsen
Koble til NRF24L01 -modulene og kretsen
Koble til NRF24L01 -modulene og kretsen

I dette prosjektet vil en Arduino fungere som en sender og sende lysnivådata fra fotoresistoren når trykknappen trykkes. Den andre Arduino vil fungere som en mottaker, ta disse dataene og transformere dem til signalet til lysdiodene. Det første bildet viser senderdiagrammet, og det andre viser mottakeren.

Merk: På bildene av prosjektet mitt vil du legge merke til at NRF24L01 -mottakerne er festet til en annen PCB. Dette er en ryggsekkmodul for transceiverne, som fungerer som en effektregulator. I tillegg til å gjøre ledningen enklere, regulerer disse ryggsekkene inngangen til NRF24L01, slik at du kan bruke en 5V strømforsyning. Jeg har utelatt disse ryggsekkene i diagrammet mitt for klarhetens skyld.

(Hvis du bestemmer deg for å bruke ryggsekkene, kan du se denne lenken for et diagram over pinnesteder i referanse til NRF24L01).

Vedlagt nedenfor er en PDF -kopi av kretsen, for enklere zooming/detaljert visning.

Trinn 2: Koding av senderen

Det siste trinnet er koding. Du må installere RadioHead -biblioteket eller et tilsvarende bibliotek for bruk med NRF24L01 -modulene.

For dette prosjektet bruker senderen og mottakeren Arduinos forskjellige koder på hver. Her er koden for senderen:

Jeg har også lagt ved.ino -filen (NRF_Send) for enkelhets skyld.

#inkludere

#inkludere

RH_NRF24 nrf24; // Initialiserer en transceiver som nrf24

int -knapp = 5; // Angi pinverdier for knappen og fotoresistor

int pResistor = A0; int verdi = 0; // Verdi av lys fra 0-1023

ugyldig oppsett ()

{Serial.begin (9600); pinMode (knapp, INNGANG); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Varsler brukeren hvis initialiseringen av modulen mislykkes Serial.println ("init mislyktes"); // Standardinnstillinger etter init er 2,402 GHz (kanal 2), 2 Mbps, 0dBm hvis (! Nrf24.setChannel (1)) Serial.println ("setChannel mislyktes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislyktes"); }

hulrom ()

{if (digitalRead (knapp)) {// Send en melding hvis knappen er trykket value = analogRead (pResistor); // Les verdien av fotoresistoren (0-1023) uint8_t data = {verdi}; // Angir en matrise kalt "data " som inneholder lysverdien nrf24.send (data, sizeof (data)); // Send matrisen til mottakeren nrf24.waitPacketSent (); // Vent til pakken er sendt Serial.println ("Light Value:" +String (value)); // Skriv ut lysverdien i den serielle skjermen}}

Trinn 3: Koding av mottakeren

For mottakeren bruker koden også RadioHead -biblioteket.

#inkludere

#inkludere

RH_NRF24 nrf24;

int LEDPin = 3;

int verdi = 0; // Verdi av lys fra 0-1023

ugyldig oppsett ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init mislyktes"); // Standardinnstillinger etter init er 2,402 GHz (kanal 2), 2 Mbps, 0dBm hvis (! Nrf24.setChannel (1)) Serial.println ("setChannel mislyktes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislyktes"); }

hulrom ()

{// Vent på en melding uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Lagre den mottatte meldingen som en matrise kalt "buf " uint8_t len = sizeof (buf); // Lagre størrelsen på buf som "len" mens (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Mottar meldingen i 200 millisekunder eller til hele meldingen er mottatt {value = buf [0]; // Setter verdien til den første indeksen til buf , som er int fra fotoresistoren analogWrite (LEDPin, map (verdi, 0, 1023, 0, 255)); // Angir at PWM-pinnen skal sende ut en skalert verdi mellom 0-255 for LED-lysstyrken Serial.println (streng (verdi)); } analogWrite (LEDPin, 0); }

Trinn 4: Ferdig

Nyt å leke med forskjellige lysnivåer og se på lysdiodene som matcher dem! Fotoresistoren kan være finurlig noen ganger, og fungerer best i et mørkt rom med en lokalisert lyskilde (men kan også fungere ute med solen).

Anbefalt: