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);
  }
}

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);
  }
}

One Reply to “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 e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *