Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Una Mood Lamp - это лазерная лампа, которая позволяет персонализировать цвета в лучах света. Продолжение се муэстра como puedes hacer una con un Kit de Principiantes de Arduino y materiales caseros.
Шаг 1: Materiales
- 3 потенциала 10 кОм
- 4 сопротивления 210 Ом
- 1 ботон
- 1 датчик DHT11
- 1 коммутатор SDSP
- 1 светодиод RGB
- 1 Протоборд
- Ардуино 1
- 27 джемперов мачо-мачо
- Планча-де-дюропор
- Силикон
- Objeto que sirva de bombilla
- Каутин (опционально)
- Estaño (опционально)
Шаг 2: Конструкция
Пасос:
-1 Cortar una caja con la plancha de duroport, doblarla y pegarla tridimensionalmente.
-2 Cortar los agujeros для 3-х потенциометров, el botón, la LED RGB, el sensor DHT11, el cable de energía y el interrumptor.
-3 Hacer - это базовый светодиодный индикатор RGB.
-4 Пегар ла бомбилья.
Шаг 3: Diagrama Esquemático
Aquí se presenta la unión física de todos los components:
Шаг 4: Diagrama De Flujo
Это диаграмма-де-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 манипуландо las luces de color rojo, verde y azul con tres потенциометры, 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 a esta información.
Шаг 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);
// определение контактов #define BLUE 3 #define GREEN 5 #define RED 6
// определяем переменные const int buttonPin = 8; int buttonState = 0; int lastButtonState = 0; int count = 1;
// Функция инициализации void setup () {Serial.begin (9600); Serial.println (F ("ТЕСТ DHT11")); dht.begin ();
pinMode (КРАСНЫЙ, ВЫХОД); pinMode (ЗЕЛЕНЫЙ, ВЫХОД); pinMode (СИНИЙ, ВЫХОД);
pinMode (buttonPin, ВВОД);
}
// Программа запуска ботона void loop () {buttonState = digitalRead (buttonPin); если (buttonState == HIGH && lastButtonState == LOW) {если (count == 0) {M (); count = 1; } else {A (); count = 0; }} // Человек активен в режиме работы lastButtonState = buttonState; если (счетчик == 0) {M (); } else {A (); }}
// Ручная программа для режима void M () {int B = analogRead (A3); int R = аналоговое чтение (A5); int G = аналоговое чтение (A0);
// Назначение потенциометра кадра цвета RGB analogWrite (СИНИЙ, B); analogWrite (КРАСНЫЙ, КРАСНЫЙ); analogWrite (ЗЕЛЕНЫЙ, G);
}
// Programación del modo automático void A () {// Toma de temperatura y humedad delay (500); float h = dht.readHumidity (); float t = dht.readTemperature ();
// Отображение информации о температуре в humedad int HPMW = map (h, 0, 1024, 0, 255); int TPMW = карта (t, 0, 1024, 0, 255);
// Переменная связана с предшествующей информацией int y = (HPMW + TPMW);
// Определение цвета if (y <29) {analogWrite (RED, 18); analogWrite (СИНИЙ, 73); analogWrite (ЗЕЛЕНЫЙ, 4); } else {analogWrite (КРАСНЫЙ, 191); analogWrite (СИНИЙ, 8); analogWrite (ЗЕЛЕНЫЙ, 106); }
// Исправление ошибки при работе с температурой if (isnan (h) || isnan (t)) {Serial.println (F ("Error en la lectura del sensor")); возвращение;
// Основная информация о датчике на последовательном мониторе Serial.print (F ("Humedad:")); Серийный отпечаток (ч); Serial.print (F ("% температуры:")); Serial.print (t); Serial.print (F («° C»)); Serial.println (y);
}
}
También se puede descargar aquí: