Kotitekoinen tunnelmavalaisin: 6 vaihetta
Kotitekoinen tunnelmavalaisin: 6 vaihetta
Anonim
Image
Image

Una Mood Lamp on ainutlaatuinen ja yksilöllinen värivalikoima. A Continuación se muestra como puedes hacer una con un Kit de principiantes de Arduino y materiales caseros.

Vaihe 1: Materiaalit

- 3 potentiaalia 10 kΩ

- 4 vastusta 210Ω

- 1 botti

- 1 anturi DHT11

- 1 Vaihda SDSP

- 1 LED RGB

- 1 protoboard

- Arduino 1

- 27 puserot macho-macho

- Plancha de duroport

- Silicón

- Objeto que sirva de bombilla

- Cautín (valinnainen)

- Estaño (valinnainen)

Vaihe 2: Rakentaminen

Diagrama Esquemático
Diagrama Esquemático

Pasot:

-1 Cortar una caja con la plancha de duroport, doblarla y pegarla tridimensionalmente.

-2 Cortar los agujeros para los 3 potentiometros, bot, LED RGB, anturi DHT11, kaapeli ja energia.

-3 Hacer -pohjainen LED -RGB -pohja.

-4 Pegar la bombillaa.

Vaihe 3: Diagrama Esquemático

Aquí se presenta la unión física de todos los komponentes:

Vaihe 4: Diagrama De Flujo

Diagrama De Flujo
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 formamanual puedes escoger el color que tú quieras manipulando las luces de color rojo, verde y azul con tres potentiometros, 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 ennen kaikkea tietoa.

Vaihe 5: Código

El Diagrama de flujo tracido ja código es el siguiente:

// Vapaa anturi DHT11 ja nasta 10#include "DHT.h"

#define DHTPIN 10 #define DHTTYPE DHT11 // DHT 11 DHT dht (DHTPIN, DHTTYPE);

// määrittele nastat #define BLUE 3 #define GREEN 5 #define RED 6

// määrittävät muuttujat const int -painikePin = 8; int -painike Tila = 0; int lastButtonState = 0; int count = 1;

// Función de inicialización void setup () {Serial.begin (9600); Serial.println (F ("DHT11 TEST")); dht.begin ();

pinMode (PUNAINEN, LÄHTÖ); pinMode (VIHREÄ, LÄHTÖ); pinMode (SININEN, LÄHTÖ);

pinMode (buttonPin, INPUT);

}

// Programación del estado del botón void loop () {buttonState = digitalRead (buttonPin); if (buttonState == HIGH && lastButtonState == LOW) {if (count == 0) {M (); count = 1; } muu {A (); määrä = 0; }} // Mantener activo un modo a la vez lastButtonState = buttonState; jos (määrä == 0) {M (); } muu {A (); }}

// Programación del modo manual void M () {int B = analogRead (A3); int R = analoginen luku (A5); int G = analoginen luku (A0);

// Asignar un potentiometro a cada color del RGB analogWrite (SININEN, B); analogWrite (PUNAINEN, R); analogWrite (VIHREÄ, G);

}

// Programación del modo automático void A () {// Toma de temperatura y humedad delay (500); float h = dht.readHumidity (); float t = dht.readTemperature ();

// Mapear la información de temperatura a humedad int HPMW = kartta (h, 0, 1024, 0, 255); int TPMW = kartta (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 (SININEN, 73); analogWrite (VIHREÄ, 4); } else {analogWrite (PUNAINEN, 191); analogWrite (SININEN, 8); analogWrite (VIHREÄ, 106); }

// Manejo de error en la toma de humedad y temperatura if (isnan (h) || isnan (t)) {Serial.println (F ("Virhe en la lectura del sensor")); palata;

// Useimmat tiedot anturista ja monitori Serial.print (F ("Humedad:")); Sarjanjälki (h); Sarjajälki (F ("% lämpötila:")); Sarjanjälki (t); Sarjanjälki (F ("° C")); Sarja.println (y);

}

}

También se puede lataa vesi: