جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
Una Mood Lamp es una lámpara a las cual le puedes personalizar el color de la luz. استمرارية هذه العملية.
الخطوة 1: المواد
- 3 بوتنسيوميتروس دي 10 كيلو أوم
- 4 مقاومات de 210Ω
- 1 بوتون
- 1 مستشعر DHT11
- 1 تبديل SDSP
- عدد 1 LED RGB
- عدد 1 لوح بروتوبورد
- اردوينو 1
- 27 لاعبا مفتول العضلات
- بلانشا دي دوروبورت
- سيليكون
- Objeto que sirva de bombilla
- كاوتين (اختياري)
- إستانيو (اختياري)
الخطوة 2: Construcción
باسوس:
-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 energía y el interrumptor.
-3 Hacer una base alrededor de la LED RGB.
-4 بيجار لا بومبيلا.
الخطوة 3: مخطط Esquemático
Aquí se presenta la unión física de todos los elementes:
الخطوة 4: رسم بياني دي فلوجو
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 botón puedes cambiar al modo automático، el cual mide la temperature y humedad delord habiente y emite luz con un معلومات حصرية.
الخطوة 5: Código
El diagrama de flujo tracido a código es el siguiente:
// Librería de sensor DHT11 en pin 10 # تشمل "DHT.h"
#define DHTPIN 10 #define DHTTYPE DHT11 // DHT 11 DHT dht (DHTPIN، DHTTYPE) ؛
// تعريف دبابيس # تعريف أزرق 3 # تعريف أخضر 5 # تعريف أحمر 6
// تعريف المتغيرات const int buttonPin = 8 ؛ int buttonState = 0 ؛ int lastButtonState = 0 ؛ عدد كثافة العمليات = 1 ؛
// Función de inicialización void setup () {Serial.begin (9600) ؛ Serial.println (F ("اختبار DHT11")) ؛ dht.begin () ،
pinMode (أحمر ، الإخراج) ؛ pinMode (الأخضر ، الإخراج) ؛ pinMode (الأزرق ، الإخراج) ؛
pinMode (buttonPin ، INPUT) ؛
}
// Programación del estado del botón void loop () {buttonState = digitalRead (buttonPin) ؛ إذا (buttonState == HIGH && lastButtonState == LOW) {if (count == 0) {M ()؛ العد = 1 ؛ } آخر {A ()؛ العد = 0 ؛ }} // Mantener activo un modo a la vez lastButtonState = buttonState؛ إذا (العد == 0) {M () ؛ } آخر {A ()؛ }}
// Programación del modo manual void M () {int B = analogRead (A3) ؛ int R = analogRead (A5) ؛ int G = analogRead (A0) ؛
// Asignar un potenciómetro a cada color del RGB analogWrite (أزرق ، B) ؛ analogWrite (أحمر ، ص) ؛ analogWrite (أخضر ، G) ؛
}
// Programación del modo automático void A () {// Toma de tematura y humedad delay (500)؛ تعويم h = dht.readHumidity () ؛ تعويم t = dht.readTemperature () ،
// Mapear la información de temperatura a humedad int HPMW = map (h، 0، 1024، 0، 255) ؛ int TPMW = خريطة (t ، 0 ، 1024 ، 0 ، 255) ؛
// Variable única con la información anterior int y = (HPMW + TPMW) ؛
// Conidción para cambiar de color if (y <29) {analogWrite (RED، 18) ؛ analogWrite (أزرق ، 73) ؛ analogWrite (أخضر ، 4) ؛ } else {analogWrite (RED، 191) ؛ analogWrite (أزرق ، 8) ؛ analogWrite (أخضر ، 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")) ؛ إرجاع؛
// Mostrar la información del sensor en el monitor series Serial.print (F ("Humedad:")) ؛ Serial.print (ح) ؛ Serial.print (F ("٪ Temperatura:")) ؛ Serial.print (t) ؛ Serial.print (F ("° C")) ؛ Serial.println (ذ) ؛
}
}
También se puede descargar aquí: