مصباح مزاج منزلي الصنع: 6 خطوات
مصباح مزاج منزلي الصنع: 6 خطوات
Anonim
Image
Image

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

مخطط Esquemático
مخطط Esquemático

باسوس:

-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í: