Components and supplies
Capacitor 100 nF
Wire, Wrapping Wire
Female Header 8 Position 1 Row (0.1")
Arduino Nano R3
Resistor 221k ohm
Resistor 22.1k ohm
MSGEQ7
Capacitor 33pF
USB Connector, USB Type B
Capacitor 10 nF
Adressable RGB-LED Strip
Tools and machines
Solder Wire, Lead Free
Bantam Tools Desktop PCB Milling Machine
Hot glue gun (generic)
Soldering iron (generic)
Project description
Code
Programm_5.0
arduino
1//Arduino Spectrum Analyzer with RGB-LED Stripe and MSGEQ7 by HeinzKetchup 2// declarations for the Neopixel by Adafruit 3#include <Adafruit_NeoPixel.h> 4#ifdef __AVR__ 5#include <avr/power.h> 6#endif 7#define PIN 4 // Pin for the RGB Stripe 8#define NUMPIXELS 70 // Number of Pixels 9Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); 10int strobePin = 2; // Strobe Pin on the MSGEQ7 11int resetPin = 3; // Reset Pin on the MSGEQ7 12int outPin = A0; // Output Pin on the MSGEQ7 13int level[7]; // An array to hold the values from the 7 frequency bands 14int l; 15uint32_t aus = pixels.Color(0,0,0); 16uint32_t gr = pixels.Color(0,200,0); 17uint32_t grb = pixels.Color(0,160,40); 18uint32_t grbl = pixels.Color(0,120,80); 19uint32_t gbl = pixels.Color(0,80,120); 20uint32_t bl = pixels.Color(0,40,160); 21uint32_t blr = pixels.Color(0,0,200); 22uint32_t blro = pixels.Color(40,0,160); 23uint32_t bro = pixels.Color(80,0,120); 24uint32_t ro = pixels.Color(120,0,80); 25uint32_t rog = pixels.Color(160,0,0); 26 27void setup() 28{ 29 Serial.begin(9600); 30 pinMode(strobePin, OUTPUT); // Define our pin modes 31 pinMode(resetPin, OUTPUT); 32 pinMode(outPin, INPUT); 33 pinMode(3,OUTPUT); 34 digitalWrite(resetPin, LOW); // Create an initial state for our pins 35 digitalWrite(strobePin, LOW); 36 delay(1); 37 digitalWrite(resetPin, HIGH); // Reset the MSGEQ7 as per the datasheet timing diagram 38 delay(1); 39 digitalWrite(resetPin, LOW); 40 digitalWrite(strobePin, HIGH); 41 delay(1); 42 pixels.begin(); // enables Adafruit Neopixels 43 pixels.show(); // reset Pixels 44 for (int i = 0; i < 70; i++) 45 { 46 int ii = i-5; //snake effect at the start 47 pixels.setPixelColor(i, gr); 48 pixels.setPixelColor(ii, aus); 49 pixels.show(); 50 delay(20); 51 } 52} 53void LEDaus1(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 54{ 55 for (int i=a; i <=k; i++) 56 { 57 pixels.setPixelColor(i, aus); 58 pixels.show(); 59 } 60} 61void LEDaus2(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 62{ 63 for (int i=a; i >=k; i--) 64 { 65 pixels.setPixelColor(i, aus); 66 pixels.show(); 67 } 68} 69void LED0(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k, uint32_t gr) 70{ 71 pixels.setPixelColor(a, gr); 72 for (int i=b; i <= k; i++) pixels.setPixelColor(i, aus); 73} 74void LED1(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 75{ 76 pixels.setPixelColor(a, gr); 77 pixels.setPixelColor(b, grb); 78 for (int i=k; i <= c; i++) pixels.setPixelColor(i, aus); 79} 80void LED2(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 81{ 82 pixels.setPixelColor(a, gr); 83 pixels.setPixelColor(b, grb); 84 pixels.setPixelColor(c, grbl); 85 for (int i=d; i <= k; i++) pixels.setPixelColor(i, aus); 86} 87void LED3(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 88{ 89 pixels.setPixelColor(a, gr); 90 pixels.setPixelColor(b, grb); 91 pixels.setPixelColor(c, grbl); 92 pixels.setPixelColor(d, gbl); 93 for (int i=k; i <= e; i++) pixels.setPixelColor(i, aus); 94} 95void LED4(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 96{ 97 pixels.setPixelColor(a, gr); 98 pixels.setPixelColor(b, grb); 99 pixels.setPixelColor(c, grbl); 100 pixels.setPixelColor(d, gbl); 101 pixels.setPixelColor(e, bl); 102 for (int i=f; i <= k; i++) pixels.setPixelColor(i, aus); 103} 104void LED5(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 105{ 106 pixels.setPixelColor(a, gr); 107 pixels.setPixelColor(b, grb); 108 pixels.setPixelColor(c, grbl); 109 pixels.setPixelColor(d, gbl); 110 pixels.setPixelColor(e, bl); 111 pixels.setPixelColor(f, blr); 112 for (int i=k; i <= g; i++) pixels.setPixelColor(i, aus); 113} 114void LED6(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 115{ 116 pixels.setPixelColor(a, gr); 117 pixels.setPixelColor(b, grb); 118 pixels.setPixelColor(c, grbl); 119 pixels.setPixelColor(d, gbl); 120 pixels.setPixelColor(e, bl); 121 pixels.setPixelColor(f, blr); 122 pixels.setPixelColor(g, blro); 123 for (int i=h; i <= k; i++) pixels.setPixelColor(i, aus); 124} 125void LED7(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 126{ 127 pixels.setPixelColor(a, gr); 128 pixels.setPixelColor(b, grb); 129 pixels.setPixelColor(c, grbl); 130 pixels.setPixelColor(d, gbl); 131 pixels.setPixelColor(e, bl); 132 pixels.setPixelColor(f, blr); 133 pixels.setPixelColor(g, blro); 134 pixels.setPixelColor(h, bro); 135 for (int i=k; i <= j; i++) pixels.setPixelColor(i, aus); 136} 137void LED8(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 138{ 139 pixels.setPixelColor(a, gr); 140 pixels.setPixelColor(b, grb); 141 pixels.setPixelColor(c, grbl); 142 pixels.setPixelColor(d, gbl); 143 pixels.setPixelColor(e, bl); 144 pixels.setPixelColor(f, blr); 145 pixels.setPixelColor(g, blro); 146 pixels.setPixelColor(h, bro); 147 pixels.setPixelColor(j, ro); 148 pixels.setPixelColor(k, aus); 149} 150void LED9(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 151{ 152 pixels.setPixelColor(a, gr); 153 pixels.setPixelColor(b, grb); 154 pixels.setPixelColor(c, grbl); 155 pixels.setPixelColor(d, gbl); 156 pixels.setPixelColor(e, bl); 157 pixels.setPixelColor(f, blr); 158 pixels.setPixelColor(g, blro); 159 pixels.setPixelColor(h, bro); 160 pixels.setPixelColor(j, ro); 161 pixels.setPixelColor(k, rog); 162} 163void abfolge(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k) 164{ 165 switch (l) 166 { 167 case 93 ... 104:/*<---------------------------------------first LED area--------------------------------------------------------*/ 168 LED0(a,b,c,d,e,f,g,h,j,k,gr); 169 break; 170 case 105 ... 139:/*<---------------------------------------second LED area------------------------------------------------------*/ 171 LED1(a,b,c,d,e,f,g,h,j,k); 172 break; 173 case 140 ... 164:/*<---------------------------------------third LED area-------------------------------------------------------*/ 174 LED2(a,b,c,d,e,f,g,h,j,k); 175 break; 176 case 165 ... 199:/*<---------------------------------------fourth LED area------------------------------------------------------*/ 177 LED3(a,b,c,d,e,f,g,h,j,k); 178 break; 179 case 200 ... 234:/*<---------------------------------------fith LED area--------------------------------------------------------*/ 180 LED4(a,b,c,d,e,f,g,h,j,k); 181 break; 182 case 235 ... 269:/*<---------------------------------------sixth LED area-------------------------------------------------------*/ 183 LED5(a,b,c,d,e,f,g,h,j,k); 184 break; 185 case 270 ... 304:/*<---------------------------------------seventh LED area-----------------------------------------------------*/ 186 LED6(a,b,c,d,e,f,g,h,j,k); 187 break; 188 case 305 ... 339:/*<---------------------------------------eighth LED area------------------------------------------------------*/ 189 LED7(a,b,c,d,e,f,g,h,j,k); 190 break; 191 case 340 ... 374:/*<---------------------------------------nineth LED area------------------------------------------------------*/ 192 LED8(a,b,c,d,e,f,g,h,j,k); 193 break; 194 case 375 ... 1000:/*<---------------------------------------tenth LED area------------------------------------------------------*/ 195 LED9(a,b,c,d,e,f,g,h,j,k); 196 break; 197 } 198} 199void loop() 200{ 201 // Cycle through each frequency band by pulsing the strobe. 202 for (int i = 0; i < 7; i++) 203 { 204 digitalWrite (strobePin, LOW); 205 delayMicroseconds (100); // Delay necessary due to timing diagram 206 level[i] = analogRead (outPin); 207 digitalWrite (strobePin, HIGH); 208 delayMicroseconds (100); // Delay necessary due to timing diagram 209 } 210 /*-----------------------------------------------------------Band1(For the first LED stripe)---------------------------------------------------------------*/ 211 // allocation for the Numbers of LEDs 212 l = level [0]; 213 abfolge(0,1,2,3,4,5,6,7,8,9); 214 if (l < 92) LEDaus1(0,1,2,3,4,5,6,7,8,9); 215 /*-----------------------------------------------------------Band2(For the second LED stripe)---------------------------------------------------------------*/ 216 // allocation for the Numbers of LEDs 217 l = level [1]; 218 abfolge(19,18,17,16,15,14,13,12,11,10); 219 if (l < 92) LEDaus2(19,18,17,16,15,14,13,12,11,10); 220 /*-----------------------------------------------------------Band3(For the third LED stripe)---------------------------------------------------------------*/ 221 // allocation for the Numbers of LEDs 222 l = level [2]; 223 abfolge(20,21,22,23,24,25,26,27,28,29); 224 if (l < 92) LEDaus1(20,21,22,23,24,25,26,27,28,29); 225 /*-----------------------------------------------------------Band4(For the fourth LED stripe)---------------------------------------------------------------*/ 226 // allocation for the Numbers of LEDs 227 l = level [3]; 228 abfolge(39,38,37,36,35,34,33,32,31,30); 229 if (l < 92) LEDaus2(39,38,37,36,35,34,33,32,31,30); 230 /*-----------------------------------------------------------Band5(For the fifth LED stripe)---------------------------------------------------------------*/ 231 // allocation for the Numbers of LEDs 232 l = level [4]; 233 abfolge(40,41,42,43,44,45,46,47,48,49); 234 if (l < 92) LEDaus1(40,41,42,43,44,45,46,47,48,49); 235 /*-----------------------------------------------------------Band6(For the sixth LED stripe)---------------------------------------------------------------*/ 236 // allocation for the Numbers of LEDs 237 l = level [5]; 238 abfolge(59,58,57,56,55,54,53,52,51,50); 239 if (l < 92) LEDaus2(59,58,57,56,55,54,53,52,51,50); 240 /*-----------------------------------------------------------Band7(For the seventh LED stripe)---------------------------------------------------------------*/ 241 // allocation for the Numbers of LEDs 242 l = level [6]; 243 abfolge(60,61,62,63,64,65,66,67,68,69); 244 if (l < 92) LEDaus1(60,61,62,63,64,65,66,67,68,69); 245} 246
Downloadable files
Eagle board data
Eagle board data
Eagle board data
Eagle board data
Comments
Only logged in users can leave comments
HeinzKetschup
0 Followers
•0 Projects
Table of contents
Intro
22
0