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