Components and supplies
Arduino UNO
Resistor 221 ohm
Microphone sound sensor module KY-038 FOR ARDUINO
NeoPixel strip
Breadboard (generic)
Pushbutton switch 12mm
Jumper wires (generic)
Project description
Code
Light-OH.ino.ino
arduino
1//Light-OH Arduino code 2//The used microphone substracts values to the noise when sound increases, so the more sound it gets, the smaller the noise 3 4#include <Adafruit_NeoPixel.h> //Neopixel library loading 5 6#define BUTTON_PIN 9 // Button pin 7#define MIC_PIN A0 // Microphone pin 8#define LED_PIN 3 // NeoPixel LED strip pin 9#define N_PIXELS 30 // Number of pixels in LED strip 10 11Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800); //Neopixel strip declaration 12 13int NSAMPLES = 30; //Number of samples the microphone takes 14int samples = 0; //Samples initialization and starting value 15int noise = 0; //Noise initialization and starting value 16int RED = 0; //Red color initialization and starting value 17int GREEN = 0; //Green color initialization and starting value 18int BLUE = 0; //Blue color initialization and starting value 19 20int buttonState = 0; 21 22 23// the setup routine runs once when you press reset: 24void setup() { 25 Serial.begin(9600); // Initialize serial communication at 9600 bits per second 26 strip.begin(); // Initialize LED strip 27 strip.show(); // Initialize all pixels to 'off' 28 29 samples = NSAMPLES; //Declare value of "samples" 30 pinMode(BUTTON_PIN, INPUT); 31 32} 33 34// the loop routine runs over and over again forever: 35void loop() { 36 buttonState = digitalRead(BUTTON_PIN); 37 while (MODE<2){ 38 if (buttonState == LOW) { 39 // turn LED on: 40 MODE = MODE + 1; 41 } 42 } else { 43 MODE = 0; 44 } 45 46 //Process to get the "noise" value according to the taken samples: 47 if (samples > 0) { 48 noise = noise + abs(analogRead(A0) + 22); 49 samples = samples - 1; 50 } else { 51 noise = noise / NSAMPLES; 52 samples = NSAMPLES; 53 54 Serial.println(noise); //Noise value visualization in order to calibrate the microphone 55 56 updatePixels(noise, RED, GREEN, BLUE); //Call to updatePixels function 57 delay(20); //Delay of 20 miliseconds between pixels illumination 58 59 } 60 61//Color declaration depending on the noise value. This is useful to change pixels colors in an easy way: 62 if (noise < 570) { 63 RED = 0; 64 GREEN = 50; 65 BLUE = 0; 66 } 67 if (noise < 550) { 68 RED = 50; 69 GREEN = 50; 70 BLUE = 0; 71 } 72 if (noise < 540) { 73 RED = 50; 74 GREEN = 0; 75 BLUE = 0; 76 } 77} 78 79//Pixel control function. It makes pixels illuminate depending on the noise value (yes, it's a bit long): 80void updatePixels(int noise, int RED, int GREEN, int BLUE) { 81 if (noise < 566) { 82 strip.setPixelColor(0, RED, GREEN, BLUE); // Meaning: (number of pixel to illuminate, red color value, green color value, blue color value) 83 } else { 84 strip.setPixelColor(0, 0, 0, 0); // And finally this sets all pixels to off if there's no noise in the room 85 } 86 if (noise < 565.5) { 87 strip.setPixelColor(1, RED, GREEN, BLUE); 88 strip.setPixelColor(2, RED, GREEN, BLUE); 89 90 } else { 91 strip.setPixelColor(1, 0, 0, 0); 92 strip.setPixelColor(2, 0, 0, 0); 93 } 94 if (noise < 565) { 95 strip.setPixelColor(3, RED, GREEN, BLUE); 96 strip.setPixelColor(4, RED, GREEN, BLUE); 97 98 } else { 99 strip.setPixelColor(3, 0, 0, 0); 100 strip.setPixelColor(4, 0, 0, 0); 101 102 } 103 if (noise < 564.5) { 104 strip.setPixelColor(5, RED, GREEN, BLUE); 105 strip.setPixelColor(6, RED, GREEN, BLUE); 106 107 } else { 108 strip.setPixelColor(5, 0, 0, 0); 109 strip.setPixelColor(6, 0, 0, 0); 110 111 } 112 if (noise < 564) { 113 strip.setPixelColor(7, RED, GREEN, BLUE); 114 strip.setPixelColor(8, RED, GREEN, BLUE); 115 116 } else { 117 strip.setPixelColor(7, 0, 0, 0); 118 strip.setPixelColor(8, 0, 0, 0); 119 120 } 121 if (noise < 563.5) { 122 strip.setPixelColor(9, RED, GREEN, BLUE); 123 strip.setPixelColor(10, RED, GREEN, BLUE); 124 125 } else { 126 strip.setPixelColor(9, 0, 0, 0); 127 strip.setPixelColor(10, 0, 0, 0); 128 129 } 130 if (noise < 563) { 131 strip.setPixelColor(11, RED, GREEN, BLUE); 132 strip.setPixelColor(12, RED, GREEN, BLUE); 133 134 } else { 135 strip.setPixelColor(11, 0, 0, 0); 136 strip.setPixelColor(12, 0, 0, 0); 137 138 } 139 if (noise < 562.5) { 140 strip.setPixelColor(13, RED, GREEN, BLUE); 141 strip.setPixelColor(14, RED, GREEN, BLUE); 142 143 } else { 144 strip.setPixelColor(13, 0, 0, 0); 145 strip.setPixelColor(14, 0, 0, 0); 146 147 } 148 if (noise < 562) { 149 strip.setPixelColor(15, RED, GREEN, BLUE); 150 strip.setPixelColor(16, RED, GREEN, BLUE); 151 152 } else { 153 strip.setPixelColor(15, 0, 0, 0); 154 strip.setPixelColor(16, 0, 0, 0); 155 156 } 157 if (noise < 561.5) { 158 strip.setPixelColor(17, RED, GREEN, BLUE); 159 strip.setPixelColor(18, RED, GREEN, BLUE); 160 161 } else { 162 strip.setPixelColor(17, 0, 0, 0); 163 strip.setPixelColor(18, 0, 0, 0); 164 165 } 166 if (noise < 561) { 167 strip.setPixelColor(19, RED, GREEN, BLUE); 168 strip.setPixelColor(20, RED, GREEN, BLUE); 169 170 } else { 171 strip.setPixelColor(19, 0, 0, 0); 172 strip.setPixelColor(20, 0, 0, 0); 173 174 } 175 if (noise < 560.5) { 176 strip.setPixelColor(20, RED, GREEN, BLUE); 177 } else { 178 strip.setPixelColor(20, 0, 0, 0); 179 } 180 if (noise < 560) { 181 strip.setPixelColor(11, RED, GREEN, BLUE); 182 } else { 183 strip.setPixelColor(11, 0, 0, 0); 184 } 185 if (noise < 553) { 186 strip.setPixelColor(12, RED, GREEN, BLUE); 187 } else { 188 strip.setPixelColor(12, 0, 0, 0); 189 } 190 if (noise < 552) { 191 strip.setPixelColor(13, RED, GREEN, BLUE); 192 } else { 193 strip.setPixelColor(13, 0, 0, 0); 194 } 195 if (noise < 551) { 196 strip.setPixelColor(14, RED, GREEN, BLUE); 197 } else { 198 strip.setPixelColor(14, 0, 0, 0); 199 } 200 if (noise < 550) { 201 strip.setPixelColor(15, RED, GREEN, BLUE); 202 } else { 203 strip.setPixelColor(15, 0, 0, 0); 204 } 205 if (noise < 549) { 206 strip.setPixelColor(16, RED, GREEN, BLUE); 207 } else { 208 strip.setPixelColor(16, 0, 0, 0); 209 } 210 if (noise < 548) { 211 strip.setPixelColor(17, RED, GREEN, BLUE); 212 } else { 213 strip.setPixelColor(17, 0, 0, 0); 214 } 215 if (noise < 547) { 216 strip.setPixelColor(18, RED, GREEN, BLUE); 217 } else { 218 strip.setPixelColor(18, 0, 0, 0); 219 } 220 if (noise < 546) { 221 strip.setPixelColor(19, RED, GREEN, BLUE); 222 } else { 223 strip.setPixelColor(19, 0, 0, 0); 224 } 225 if (noise < 545) { 226 strip.setPixelColor(20, RED, GREEN, BLUE); 227 } else { 228 strip.setPixelColor(20, 0, 0, 0); 229 } 230 if (noise < 544) { 231 strip.setPixelColor(21, RED, GREEN, BLUE); 232 } else { 233 strip.setPixelColor(21, 0, 0, 0); 234 } 235 if (noise < 543) { 236 strip.setPixelColor(22, RED, GREEN, BLUE); 237 } else { 238 strip.setPixelColor(22, 0, 0, 0); 239 } 240 if (noise < 542) { 241 strip.setPixelColor(23, RED, GREEN, BLUE); 242 } else { 243 strip.setPixelColor(23, 0, 0, 0); 244 } 245 if (noise < 541) { 246 strip.setPixelColor(24, RED, GREEN, BLUE); 247 } else { 248 strip.setPixelColor(24, 0, 0, 0); 249 } if (noise < 540) { 250 strip.setPixelColor(25, RED, GREEN, BLUE); 251 } else { 252 strip.setPixelColor(25, 0, 0, 0); 253 } 254 if (noise < 539) { 255 strip.setPixelColor(26, RED, GREEN, BLUE); 256 } else { 257 strip.setPixelColor(26, 0, 0, 0); 258 } 259 if (noise < 538) { 260 strip.setPixelColor(27, RED, GREEN, BLUE); 261 } else { 262 strip.setPixelColor(27, 0, 0, 0); 263 } 264 if (noise < 537) { 265 strip.setPixelColor(28, RED, GREEN, BLUE); 266 } else { 267 strip.setPixelColor(28, 0, 0, 0); 268 } 269 if (noise < 536) { 270 strip.setPixelColor(29, RED, GREEN, BLUE); 271 } else { 272 strip.setPixelColor(29, 0, 0, 0); 273 } 274 strip.show(); 275 276 277} 278
Downloadable files
proyecto_arduino_sketch_F61RwPprgu.jpg
proyecto_arduino_sketch_F61RwPprgu.jpg
proyecto_arduino_sketch_F61RwPprgu.jpg
proyecto_arduino_sketch_F61RwPprgu.jpg
Comments
Only logged in users can leave comments
marcojose
0 Followers
•0 Projects
Table of contents
Intro
14
0