Table des matières:

Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance : 4 étapes
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance : 4 étapes

Vidéo: Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance : 4 étapes

Vidéo: Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance : 4 étapes
Vidéo: Comment utiliser l'arduino pour l'éclairage automatique: montage+code 2024, Juillet
Anonim
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance
Lampe LED sans fil Arduino assortie à la lumière utilisant une photorésistance

Cette instructable détaille les étapes nécessaires pour construire une lampe LED rudimentaire à détection de lumière sans fil à l'aide d'Arduino Unos et d'une photorésistance. Une application possible pour cet appareil serait d'éclairer une pièce sans fenêtres avec une lumière artificielle du soleil, correspondant aux conditions d'éclairage réelles à l'extérieur en temps réel. Commençons!

Liste d'approvisionnement:

Arduino Uno x2

Émetteur-récepteur sans fil NRF24L01 x2 (En option - sac à dos NRF24L01 x2)

Transistor Darlington TIP120

Photorésistance

LED 5 mm x3

Bouton

Résistance 100 ohms x3

Résistance 10k ohms x3

Divers fils de cavalier

Étape 1: Câblage des modules et du circuit NRF24L01

Câblage des modules et du circuit NRF24L01
Câblage des modules et du circuit NRF24L01
Câblage des modules et du circuit NRF24L01
Câblage des modules et du circuit NRF24L01
Câblage des modules et du circuit NRF24L01
Câblage des modules et du circuit NRF24L01

Dans ce projet, un Arduino agira comme un émetteur, envoyant des données de niveau de lumière à partir de la photorésistance lorsque le bouton-poussoir est enfoncé. L'autre Arduino servira de récepteur, prenant ces données et les transformant en signal aux LED. La première image montre le schéma de l'émetteur et la seconde montre le récepteur.

Remarque: sur les photos de mon projet, vous remarquerez que les émetteurs-récepteurs NRF24L01 sont attachés à un autre PCB. Il s'agit d'un module dorsal pour les émetteurs-récepteurs, qui agit comme un régulateur de puissance. En plus de faciliter le câblage, ces sacs à dos régulent l'alimentation du NRF24L01, permettant l'utilisation d'une alimentation 5V. J'ai omis ces sacs à dos dans mon schéma par souci de clarté.

(Si vous décidez d'utiliser les sacs à dos, veuillez vous référer à ce lien pour un diagramme des emplacements des broches en référence au stock NRF24L01).

Vous trouverez ci-dessous une copie PDF du circuit, pour un zoom/une visualisation plus facile.

Étape 2: Codage de l'émetteur

La dernière étape est le codage. Vous devrez installer la bibliothèque RadioHead ou une bibliothèque équivalente à utiliser avec les modules NRF24L01.

Pour ce projet, l'émetteur et le récepteur Arduinos utilisent un code différent sur chacun. Voici le code de l'émetteur:

J'ai également joint le fichier.ino (NRF_Send) pour plus de commodité.

#comprendre

#comprendre

RH_NRF24 nrf24; //Initialisation d'un transceiver en nrf24

bouton int = 5; //Définition des valeurs de broche pour le bouton et la photorésistance

int pRésistance = A0; valeur entière = 0; //Valeur de lumière de 0-1023

void setup()

{ Serial.begin(9600); pinMode(bouton, INPUT); pinMode(pRésistor, INPUT); if (!nrf24.init()) //Avertit l'utilisateur si l'initialisation du module échoue Serial.println("init failed"); // Les valeurs par défaut après l'initialisation sont 2,402 GHz (canal 2), 2 Mbps, 0 dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF a échoué"); }

boucle vide()

{ if (digitalRead(button)) { //Envoyer un message si le bouton est enfoncé value = analogRead(pResistor); //Lire la valeur de la photorésistance (0-1023) uint8_t data = {value}; //Définit un tableau appelé "data" contenant la valeur de lumière nrf24.send(data, sizeof(data)); //Envoyer le tableau au destinataire nrf24.waitPacketSent(); //Attendez que le paquet ait été envoyé Serial.println("Light Value: " +String(value)); //Imprime la valeur de la lumière dans le moniteur série } }

Étape 3: Codage du récepteur

Pour le récepteur, le code utilise également la bibliothèque RadioHead.

#comprendre

#comprendre

RH_NRF24 nrf24;

int LEDPin = 3;

valeur entière = 0; //Valeur de lumière de 0-1023

void setup()

{ Serial.begin(9600); pinMode (LEDPin, SORTIE); if (!nrf24.init()) Serial.println("l'initialisation a échoué"); // Les valeurs par défaut après l'initialisation sont 2,402 GHz (canal 2), 2 Mbps, 0 dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF a échoué"); }

boucle vide()

{ // Attend un message uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; //Stocke le message reçu sous forme de tableau appelé "buf" uint8_t len = sizeof(buf); //Stocke la taille de buf comme "len" while (nrf24.waitAvailableTimeout(200) && nrf24.recv(buf, &len)) //Reçoit le message pendant 200 millisecondes ou jusqu'à ce que le message entier soit reçu { value = buf[0]; //Définit la valeur sur le premier index de buf, qui est l'entier de la photorésistance analogWrite(LEDPin, map(value, 0, 1023, 0, 255)); // Définit la broche PWM pour produire une valeur mise à l'échelle entre 0 et 255 pour la luminosité de la LED Serial.println(String(value)); } analogWrite(LEDPin, 0); }

Étape 4: FAIT

Amusez-vous à jouer avec différents niveaux de lumière et à regarder les LED les assortir ! La photorésistance peut parfois être capricieuse et fonctionne mieux dans une pièce sombre avec une source de lumière localisée (mais peut également fonctionner à l'extérieur avec le soleil).

Conseillé: