Music level meter

Potěšen předchozím pokusem, připojil jsem místo potenciometru audio výstup z počítače. Přidal diody a mírně rozšířil program. Nejdříve jsem data nechal posílat na sériový port a opět dle rozsahu zvolil hodnotu jednotlivých kroků při kterých se rozsvěcují jednotlivé diody.

 

int sensorPin = A0; // select the input pin for the analog input
int pinArray[] = {2,3,4,5,6,7,8,9,10,11,12,13}; // array of outputs LED pins
int count = 0;
int sensorValue = 0; // variable to store the value coming from the sensor

void setup() { // declare the pinArray as an OUTPUT:
for (count=0;count<12;count++) {pinMode(pinArray[count], OUTPUT);};
//Serial.begin(9600); }

void loop() { // read the value from the sensor:
sensorValue = analogRead(sensorPin); // we have X LEDs for 0-1024 range of senzorValue
if (sensorValue>0){digitalWrite(pinArray[0], HIGH);};
if (sensorValue>5){digitalWrite(pinArray[1], HIGH);};
if (sensorValue>10){digitalWrite(pinArray[2], HIGH);};
if (sensorValue>20){digitalWrite(pinArray[3], HIGH);};
if (sensorValue>35){digitalWrite(pinArray[4], HIGH);};
if (sensorValue>60){digitalWrite(pinArray[5], HIGH);};
if (sensorValue>120){digitalWrite(pinArray[6], HIGH);};
if (sensorValue>240){digitalWrite(pinArray[7], HIGH);};
if (sensorValue>480){digitalWrite(pinArray[8], HIGH);};
if (sensorValue>610){digitalWrite(pinArray[9], HIGH);};
if (sensorValue>800){digitalWrite(pinArray[10], HIGH);};
if (sensorValue>1000){digitalWrite(pinArray[11], HIGH);};
delay(50); //Wait 50ms and turns off all LEDs
for (count=0;count<12;count++) {digitalWrite(pinArray[count], LOW);} }

 

2012-07-23_23.47.44.mp4
Be Sociable, Share!

One thought on “Music level meter

  1. abys ti tam nestrašil ten int count = 0 tak to jde napsat i takhle:for (int count = 0; count < 12; count++) { pinMode(pinArray[count], OUTPUT);}

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *