Inhoudsopgave:
- Stap 1: Bedrading van de NRF24L01-modules en circuit
- Stap 2: De zender coderen
- Stap 3: De ontvanger coderen
- Stap 4: KLAAR
Video: Draadloze Arduino Light-Matching LED-lamp met behulp van Photoresistor - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Deze instructable beschrijft de stappen die nodig zijn om een rudimentaire draadloze lichtgevoelige LED-lamp te bouwen met behulp van Arduino Unos en een fotoresistor. Een mogelijke toepassing voor dit apparaat is het verlichten van een kamer zonder ramen met kunstmatig zonlicht, zodat het in realtime overeenkomt met de werkelijke lichtomstandigheden buiten. Laten we beginnen!
Voorraadlijst:
Arduino Uno x2
NRF24L01 Draadloze transceiver x2 (optioneel - NRF24L01 rugzak x2)
TIP120 darlington-transistor
Fotoweerstand
5 mm LED's x3"
Druk op de knop
100 ohm weerstand x3
10k ohm weerstand x3
Verschillende jumperdraden
Stap 1: Bedrading van de NRF24L01-modules en circuit
In dit project zal één Arduino fungeren als een zender, die lichtniveaugegevens van de fotoresistor verzendt wanneer de drukknop wordt ingedrukt. De andere Arduino zal als ontvanger dienen, die gegevens opneemt en omzet in het signaal naar de LED's. De eerste afbeelding toont het zenderdiagram en de tweede toont de ontvanger.
Opmerking: op de foto's van mijn project ziet u dat de NRF24L01-transceivers op een andere PCB zijn bevestigd. Dit is een rugzakmodule voor de transceivers, die fungeert als vermogensregelaar. Deze rugzakken maken niet alleen de bedrading eenvoudiger, maar regelen ook de stroominvoer voor de NRF24L01, waardoor het gebruik van een 5V-voeding mogelijk is. Voor de duidelijkheid heb ik deze rugzakken in mijn schema weggelaten.
(Als u besluit de rugzakken te gebruiken, raadpleeg dan deze link voor een diagram van de pinlocaties met verwijzing naar de voorraad NRF24L01).
Hieronder is een PDF-kopie van het circuit bijgevoegd, voor eenvoudiger zoomen/gedetailleerde weergave.
Stap 2: De zender coderen
De laatste stap is coderen. U moet de RadioHead-bibliotheek of een gelijkwaardige bibliotheek installeren voor gebruik met de NRF24L01-modules.
Voor dit project gebruiken de zender en ontvanger Arduinos verschillende code op elk. Hier is de code voor de zender:
Ik heb voor het gemak ook het.ino-bestand (NRF_Send) bijgevoegd.
#erbij betrekken
#erbij betrekken
RH_NRF24 nrf24; //Een zendontvanger initialiseren als nrf24
int-knop = 5; //Pinwaarden instellen voor de knop en fotoresistor
int pResistor = A0; int-waarde = 0; //Waarde van licht van 0-1023
ongeldige setup()
{ Serieel.begin(9600); pinMode (knop, INPUT); pinMode (pResistor, INPUT); if (!nrf24.init()) // Waarschuwt de gebruiker als de initialisatie van de module mislukt Serial.println("init failed"); // Standaardwaarden na init zijn 2,402 GHz (kanaal 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF mislukt"); }
lege lus()
{if (digitalRead(button)) {//Stuur een bericht als de knop wordt ingedrukt waarde = analogRead(pResistor); // Lees de waarde van de fotoresistor (0-1023) uint8_t data = {value}; // Stelt een array in met de naam "data" met daarin de lichte waarde nrf24.send(data, sizeof(data)); //Stuur de array naar de ontvanger nrf24.waitPacketSent(); //Wacht tot het pakket is verzonden Serial.println ("Light Value: " +String (value)); // Druk de lichtwaarde af in de seriële monitor } }
Stap 3: De ontvanger coderen
Voor de ontvanger maakt de code ook gebruik van de RadioHead Library.
#erbij betrekken
#erbij betrekken
RH_NRF24 nrf24;
int LEDPin = 3;
int-waarde = 0; //Waarde van licht van 0-1023
ongeldige setup()
{ Serieel.begin(9600); pinMode (LEDPin, UITGANG); if (!nrf24.init()) Serial.println("init mislukt"); // Standaardwaarden na init zijn 2,402 GHz (kanaal 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF mislukt"); }
lege lus()
{ // Wacht op een bericht uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Bewaar het ontvangen bericht als een array met de naam "buf " uint8_t len = sizeof (buf); //Sla de grootte van buf op als "len" while (nrf24.waitAvailableTimeout(200) && nrf24.recv(buf, &len)) //Ontvangt het bericht gedurende 200 milliseconden of totdat het hele bericht is ontvangen { value = buf[0]; // Stelt de waarde in op de eerste index van buf , de int van de fotoresistor analogWrite (LEDPin, map (value, 0, 1023, 0, 255)); // Stelt de PWM-pin in om een geschaalde waarde tussen 0-255 uit te voeren voor de LED-helderheid Serial.println (String (waarde)); } analoogWrite(LEDPin, 0); }
Stap 4: KLAAR
Geniet van het spelen met verschillende lichtniveaus en kijk hoe de LED's daarbij passen! De fotoresistor kan soms kieskeurig zijn en werkt het beste in een donkere kamer met een plaatselijke lichtbron (maar kan ook buiten werken met de zon).
Aanbevolen:
Draadloze stroomoverdracht met behulp van een 9v-batterij: 10 stappen
Draadloze stroomoverdracht met behulp van een 9v-batterij: inleiding. Stel je een wereld voor zonder bekabelde verbinding, waar onze telefoons, lamp, tv, koelkast en alle andere elektronica draadloos worden aangesloten, opgeladen en gebruikt. Dat is inderdaad de wens van velen geweest, zelfs het elektrisch elektronische genie
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Draadloze communicatie met behulp van goedkope 433MHz RF-modules en Pic-microcontrollers. Deel 2: 4 stappen (met afbeeldingen)
Draadloze communicatie met behulp van goedkope 433MHz RF-modules en Pic-microcontrollers. Deel 2: In het eerste deel van deze instructable demonstreerde ik hoe je een PIC12F1822 programmeert met behulp van MPLAB IDE en XC8-compiler, om een eenvoudige string draadloos te verzenden met goedkope TX/RX 433MHz-modules. De ontvangermodule was via een USB aangesloten op UART TTL kabel advertentie
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): 4 stappen
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): Inleiding In deze tutorial gaan we de helderheid van LED regelen met behulp van Arduino UNO, Bluetooth-module (HC-05) en Android-applicatie voor Bluetooth (Bluetooth Terminal)
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik