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