Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Una Mood Lamp es una lámpara a las cual le puedes personalizar el color de la luz. Một liên tục se muestra como puedes hacer una con un Kit de Principiantes de Arduino y materiales caseros.
Bước 1: Vật liệu
- 3 Potenciómetros de 10 kΩ
- 4 điện trở de 210Ω
- 1 botón
- 1 cảm biến DHT11
- 1 Chuyển đổi SDSP
- 1 LED RGB
- 1 Protoboard
- Arduino 1
- 27 Jumpers đại trượng phu
- Plancha de duroport
- Silicón
- Objeto que sirva de bombilla
- Cautín (opcional)
- Estaño (opcional)
Bước 2: Construcción
Pasos:
-1 Cortar una caja con la plancha de duroport, doblarla y pegarla tridimensionalmente.
-2 Cortar los agujeros para los 3 potenciómetros, el botón, la LED RGB, el sensor DHT11, el cable de energygía y el interrumptor.
-3 Hacer una base alrededor de la LED RGB.
-4 Pegar la bombilla.
Bước 3: Chẩn đoán Esquemático
Các thành phần của Aquí se presenta la unión física de todos los:
Bước 4: Chẩn đoán 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 sportsulando 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 một thông tin esta.
Bước 5: 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);
// chân định nghĩa # xác định màu XANH 3 # xác định màu XANH 5 # xác định màu ĐỎ 6
// biến definit 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 ("THỬ NGHIỆM DHT11")); dht.begin ();
pinMode (RED, OUTPUT); pinMode (XANH LÁ, ĐẦU RA); pinMode (BLUE, OUTPUT);
pinMode (buttonPin, INPUT);
}
// Programación del estado del botón void loop () {buttonState = digitalRead (buttonPin); if (buttonState == HIGH && lastButtonState == LOW) {if (count == 0) {M (); đếm = 1; } else {A (); đếm = 0; }} // Mantener activo un modo a la vez lastButtonState = buttonState; if (đếm == 0) {M (); } else {A (); }}
// Hướng dẫn sử dụng Programación del modo void M () {int B = analogRead (A3); int R = analogRead (A5); int G = analogRead (A0);
// Asignar un potenciómetro a cada color del RGB analogWrite (BLUE, B); analogWrite (RED, R); analogWrite (XANH LÁ, G);
}
// Programación del modo automático void A () {// Toma de temperatura y humedad delay (500); float h = dht.readHumidity (); float t = dht.readTempe Heat ();
// Mapear la Información de temperatura a humedad int HPMW = map (h, 0, 1024, 0, 255); int TPMW = map (t, 0, 1024, 0, 255);
// Biến única con la Información anterior int y = (HPMW + TPMW);
// Conidción para cambiar de color if (y <29) {analogWrite (RED, 18); analogWrite (BLUE, 73); analogWrite (XANH LÁ, 4); } else {analogWrite (RED, 191); analogWrite (BLUE, 8); analogWrite (XANH, 106); }
// Manejo de error en la toma de humedad y temperatura if (isnan (h) || isnan (t)) {Serial.println (F ("Error en la lectura del sensor")); trở lại;
// Mostrar la Información del sensor en el monitor serial Serial.print (F ("Humedad:")); Serial.print (h); Serial.print (F ("% Temperatura:")); Serial.print (t); Serial.print (F ("° C")); Serial.println (y);
}
}
También se puede descargar aquí: