Mood Lamp UVG
We programmed in Arduino a lamp with an automatic and manual mode. The manual mode can be manipulated through potentiometers, while the automatic mode is toggled by a photoresistor. You can access each mode by a button and turn on/off the lamp with a switcher.
Components and supplies
1
ambient light sensor (photoresistor)
1
Breadboard and Wire Kit
1
Acrylic Sheet
1
Switcher On/Off
1
MDF
3
10kOhm potentiometer
1
4x4 RGB LED Matrix
1
China Tissue Paper
1
Push Button
1
Arduino Uno R3
Tools and machines
1
laser sheet cutting machine
Apps and platforms
1
TINKERCAD
Project description
Code
Mood Lamp UVG
js
¡Flowchart on the scroll images above!
1#include <Adafruit_NeoPixel.h> 2#ifdef __AVR__ 3 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket 4#endif 5#define PIN 3 // On Trinket or Gemma, suggest changing this to 1 6 7#define NUMPIXELS 16 // Popular NeoPixel ring size 8 9Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); 10bool modo = true; 11bool controlBoton = false; 12int fotoresistencia = A1; 13 int valorfotoresistencia = 0; 14const int an_pin1 = A5; 15 const int an_pin2 = A4; 16const int an_pin3 = A3; 17int boton = 2; 18 19void setup() 20{ 21 Serial.begin(9600); 22 pinMode(2,INPUT); 23 pixels.begin(); 24 pinMode(boton, INPUT); 25 //attachInterrupt(digitalPinToInterrupt(2),funcion,RISING); 26 27} 28 29void loop() 30{ 31 if (digitalRead(boton) == HIGH) { 32 if(controlBoton==false){ 33 controlBoton=true; 34 if(modo == true){ 35 modo =false; 36 }else{ 37 modo=true; 38 } 39 Serial.println (modo); 40 delay(250); 41 } 42 } 43 44 if(digitalRead(boton) == LOW){ 45 controlBoton=false; 46 } 47 48 if(modo) 49 { 50 51 valorfotoresistencia=analogRead(fotoresistencia); 52 Serial.println(valorfotoresistencia); 53 54 if (valorfotoresistencia>25) 55 { 56 pixels.clear(); 57 pixels.show(); 58 pixels.setPixelColor(0,pixels.Color (255,0,0)); 59 pixels.setPixelColor(1,pixels.Color (255,0,0)); 60 pixels.setPixelColor(2,pixels.Color (255,0,0)); 61 pixels.setPixelColor(3,pixels.Color (255,0,0)); 62 pixels.setPixelColor(4,pixels.Color (255,0,0)); 63 pixels.setPixelColor(5,pixels.Color (255,0,0)); 64 pixels.setPixelColor(6,pixels.Color (255,0,0)); 65 pixels.setPixelColor(7,pixels.Color (255,0,0)); 66 pixels.setPixelColor(8,pixels.Color (255,0,0)); 67 pixels.setPixelColor(9,pixels.Color (255,0,0)); 68 pixels.setPixelColor(10,pixels.Color (255,0,0)); 69 pixels.setPixelColor(11,pixels.Color (255,0,0)); 70 pixels.setPixelColor(12,pixels.Color (255,0,0)); 71 pixels.setPixelColor(13,pixels.Color (255,0,0)); 72 pixels.setPixelColor(14,pixels.Color (255,0,0)); 73 pixels.setPixelColor(15,pixels.Color (255,0,0)); 74 pixels.show(); 75 } 76 77 else 78 { 79 pixels.clear(); 80 pixels.show(); 81 pixels.setPixelColor(0,pixels.Color (255,255,255)); 82 pixels.setPixelColor(1,pixels.Color (255,255,255)); 83 pixels.setPixelColor(2,pixels.Color (255,255,255)); 84 pixels.setPixelColor(3,pixels.Color (255,255,255)); 85 pixels.setPixelColor(4,pixels.Color (255,255,255)); 86 pixels.setPixelColor(5,pixels.Color (255,255,255)); 87 pixels.setPixelColor(6,pixels.Color (255,255,255)); 88 pixels.setPixelColor(7,pixels.Color (255,255,255)); 89 pixels.setPixelColor(8,pixels.Color (255,255,255)); 90 pixels.setPixelColor(9,pixels.Color (255,255,255)); 91 pixels.setPixelColor(10,pixels.Color (255,255,255)); 92 pixels.setPixelColor(11,pixels.Color (255,255,255)); 93 pixels.setPixelColor(12,pixels.Color (255,255,255)); 94 pixels.setPixelColor(13,pixels.Color (255,255,255)); 95 pixels.setPixelColor(14,pixels.Color (255,255,255)); 96 pixels.setPixelColor(15,pixels.Color (255,255,255)); 97 pixels.show(); 98 } 99 } 100 101 else{ 102 103 int val_1 = analogRead(an_pin1); 104 int val_2 = analogRead(an_pin2); 105 int val_3 = analogRead(an_pin3); 106 int rojo = map (val_1, 0, 1024, 0, 255); 107 int verde = map (val_2, 0, 1024, 0, 255); 108 int azul = map (val_3, 0, 1024, 0, 255); 109 110 Serial.print("Valor digital:"); 111 Serial.print(val_1); 112 Serial.print("Valor digital:"); 113 Serial.print(val_2); 114 Serial.print ("Valor digital:"); 115 Serial.println (val_3); 116 117 Serial.print ("Color rojo"); 118 Serial.print (rojo); 119 Serial.print ("Color verde"); 120 Serial.print (verde); 121 Serial.print ("Color azul"); 122 Serial.println (azul); 123 124 pixels.clear(); 125 pixels.setPixelColor(0,pixels.Color (rojo,verde,azul)); 126 pixels.show(); 127 pixels.setPixelColor(1,pixels.Color (rojo,verde,azul)); 128 pixels.setPixelColor(2,pixels.Color (rojo,verde,azul)); 129 pixels.setPixelColor(3,pixels.Color (rojo,verde,azul)); 130 pixels.setPixelColor(4,pixels.Color (rojo,verde,azul)); 131 pixels.setPixelColor(5,pixels.Color (rojo,verde,azul)); 132 pixels.setPixelColor(6,pixels.Color (rojo,verde,azul)); 133 pixels.setPixelColor(7,pixels.Color (rojo,verde,azul)); 134 pixels.setPixelColor(8,pixels.Color (rojo,verde,azul)); 135 pixels.setPixelColor(9,pixels.Color (rojo,verde,azul)); 136 pixels.setPixelColor(10,pixels.Color (rojo,verde,azul)); 137 pixels.setPixelColor(11,pixels.Color (rojo,verde,azul)); 138 pixels.setPixelColor(12,pixels.Color (rojo,verde,azul)); 139 pixels.setPixelColor(13,pixels.Color (rojo,verde,azul)); 140 pixels.setPixelColor(14,pixels.Color (rojo,verde,azul)); 141 pixels.setPixelColor(15,pixels.Color (rojo,verde,azul)); 142 pixels.show(); 143 } 144 145}
Comments
Only logged in users can leave comments