Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Una Mood Lamp je ena od najboljših osebnih barv, ki so prilagojene barvam. A Continuación se muestra como puedes hacer una con un Kit de principiantes de Arduino y materiales caseros.
1. korak: Materiales
- 3 napetosti 10 kΩ
- 4 odpornosti po 210 Ω
- 1 boton
- 1 senzor DHT11
- 1 Preklopite SDSP
- 1 LED RGB
- 1 Protoboard
- Arduino 1
- 27 Skakači macho-macho
- Plancha de duroport
- silicij
- Objeto que sirva de bombilla
- Cautín (neobvezno)
- Estaño (opcijsko)
2. korak: Konstrukcija
Pasos:
-1 Cortar una caja con la plancha de duroport, doblarla y pegarla tridimensionalmente.
-2 Cortar los agujeros para 3s potenciometros, el botton, LED RGB, senzor DHT11, el kabel za napajanje in interrumptor.
-3 Hacer -ova osnovna enota LED RGB.
-4 Pegar la bombilla.
3. korak: Diagrama Esquemático
Aquí se presenta la unión física de todos los components:
4. korak: Diagrama De Flujo
Este diagrama de flujo muestra la lógica y el sentido del funcionamiento del proyecto.
Esta lámpara tiene dos modos de funcionamiento. De la formamanual puedes escoger el color que tú quieras manipulando las luces de color rojo, verde y azul con tres potenciómetros, y con un botón puedes cambiar al modo automático, el cual mide la temperatura y humedad del habiente y emite luz con un color acorde a esta información.
5. korak: Código
El diagrama de flujo tracido a código es el siguiente:
// Librería de sensor DHT11 en pin 10#include "DHT.h"
#define DHTPIN 10 #define DHTTYPE DHT11 // DHT 11 DHT dht (DHTPIN, DHTTYPE);
// dokončni zatiči #define BLUE 3 #define GREEN 5 #define RED 6
// določene spremenljivke const int buttonPin = 8; int buttonState = 0; int lastButtonState = 0; int count = 1;
// Función de inicialización void setup () {Serial.begin (9600); Serial.println (F ("DHT11 TEST")); dht.begin ();
pinMode (RDEČA, IZHODNA); pinMode (ZELENO, IZHOD); pinMode (MODRA, IZHOD);
pinMode (buttonPin, INPUT);
}
// Programiranje del estado del botón void loop () {buttonState = digitalRead (buttonPin); if (buttonState == HIGH && lastButtonState == LOW) {if (count == 0) {M (); count = 1; } else {A (); count = 0; }} // Mantener activo un modo a la vez lastButtonState = buttonState; if (štetje == 0) {M (); } else {A (); }}
// Programiranje modo ročno void M () {int B = analogRead (A3); int R = analogno branje (A5); int G = analogno branje (A0);
// Asignar un potenciómetro a cada color del RGB analogWrite (BLUE, B); analogWrite (RDEČA, R); analogWrite (ZELENO, G);
}
// Programación del modo automático void A () {// Toma de temperatura y humedad delay (500); float h = dht.readHumidity (); float t = dht.readTemperature ();
// Podatki o temperaturi in humedad in HPMW = zemljevid (h, 0, 1024, 0, 255); int TPMW = zemljevid (t, 0, 1024, 0, 255);
// spremenljivo única con la información anterior int y = (HPMW + TPMW);
// Conidción para cambiar de color if (y <29) {analogWrite (RDEČA, 18); analogWrite (MODRA, 73); analogWrite (ZELENO, 4); } else {analogWrite (RDEČA, 191); analogWrite (MODRA, 8); analogWrite (ZELENO, 106); }
// Manejo de error en la toma de humedad y temperature if (isnan (h) || isnan (t)) {Serial.println (F ("Error en la lectura del sensor")); vrnitev;
// Pošlji informacijo o senzorju in monitorju serijski Serial.print (F ("Humedad:")); Serijski.tisk (h); Serial.print (F ("% Temperatura:")); Serial.print (t); Serijski.tisk (F ("° C")); Serial.println (y);
}
}
También se puede descargar aquí: