Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Una Mood Lamp es una lámpara a las cual le puedes personalizar el color de la luz. Sebuah kelanjutan dari perangkat lunak untuk Arduino y materiales caseros.
Langkah 1: Materi
- 3 Potenciómetro de 10 kΩ
- 4 resistencias de 210Ω
- 1 boton
- 1 sensor DHT11
- 1 Saklar SDSP
- 1 LED RGB
- 1 Protoboard
-Arduino 1
- 27 Jumper macho-macho
-Plancha de duroport
- silikon
- Objeto que sirva de bombilla
- Cautín (opsional)
- Estaño (opsional)
Langkah 2: Konstruksi
Paso:
-1 Cortar una caja con la plancha de duroport, doblarla y pegarla tridimensionalmente.
-2 Cortar los agujeros para los 3 potensi, el botón, la LED RGB, el sensor DHT11, el kabel de energi dan interrumptor.
-3 Hacer una base alrededor de la LED RGB.
-4 Pegar la bombilla.
Langkah 3: Diagrama Esquemático
Aquí se presenta la unión física de todos los komponen:
Langkah 4: 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 formanual 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 temperatur a y humedad color emite del habiente con sebuah esta informasi.
Langkah 5: Codigo
El diagrama de flujo tracido a código es el siguiente:
// Librería de sensor DHT11 dan pin 10#termasuk "DHT.h"
#define DHTPIN 10 #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE);
// menentukan pin #menentukan BIRU 3 #menentukan HIJAU 5 #menentukan MERAH 6
// variabel pasti const int buttonPin = 8; int keadaan tombol = 0; int lastButtonState = 0; int jumlah = 1;
// Fungsikan inicialización void setup() { Serial.begin(9600); Serial.println(F("UJI DHT11")); dht.mulai();
pinMode(MERAH, KELUARAN); pinMode(HIJAU, KELUARAN); pinMode(BIRU, OUTPUT);
pinMode(tombolPin, INPUT);
}
// Programación del estado del botón void loop() { buttonState = digitalRead(buttonPin); if (buttonState ==HIGH && lastButtonState ==LOW){ if (hitung == 0){ M(); menghitung = 1; } lain { A(); menghitung = 0; } } //Mantener activo un modo a la vez lastButtonState = buttonState; jika (hitung== 0){ M(); } lain{ A(); } }
// Programación del modo manual void M(){ int B = analogRead(A3); int R = analogBaca(A5); int G = analogBaca(A0);
// Tetapkan potensi untuk warna kada del RGB analogWrite(BLUE, B); analogWrite(MERAH, R); analogWrite(HIJAU, G);
}
// Programación del modo automático void A(){ // Toma de temperatur y humedad delay(500); float h = dht.readHumidity(); float t = dht.readTemperature();
//Pear la información de temperature a humedad int HPMW = peta(h, 0, 1024, 0, 255); int TPMW = peta(t, 0, 1024, 0, 255);
// Variabel nica con la información anterior int y = (HPMW + TPMW);
// Conidción para cambiar de color if (y <29){ analogWrite(RED, 18); analogWrite(BIRU, 73); analogWrite(HIJAU, 4); }else { analogWrite(RED, 191); analogWrite(BIRU, 8); analogWrite(HIJAU, 106); }
// Manejo de error en la toma de humedad y suhu if (isnan(h) || isnan(t)) { Serial.println(F("Error en la lectura del sensor")); kembali;
// Paling banyak informasi dan sensor dan monitor serial Serial.print(F("Humedad: ")); Serial.print(h); Serial.print(F("% Temperatur: ")); Serial.print(t); Serial.print(F("°C")); Serial.println(y);
}
}
También se puede descargar aquí: