// 3 led a jouant a la noire, croche et triolet
// un potentiometre 10k en A0 : controle le tempo général...
// une photo resistance en A1 : controle un effet de delay
#define led1 5
#define led2 9
#define led3 10
//#define factor 10 //factor for pwm tone !
int factor = 10;
unsigned long previousMillis[3]; //[x] = number of leds
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A1);
sensorValue = map(sensorValue, 0, 1023, 2000, 0);
if(sensorValue > 1990) {
sensorValue == 10000;
}
int sensorValueB = analogRead(A0);
sensorValueB = map(sensorValueB, 0, 1023, 1023, 0);
int sensorValueC = analogRead(A2);
factor = map(sensorValueC, 0, 1023, 2, 200);
if(sensorValueB > 800) {
BlinkLedSimple(led1, sensorValue, 0,sensorValueB); //BlinkLed( which led, interval, one of the stored prevMillis
BlinkLedSimple(led2, sensorValue/3, 1,sensorValueB); //last parameters must be different for each led
BlinkLedSimple(led3, sensorValue/2, 2,sensorValueB);
}
if(sensorValueB > 400 && sensorValueB < 800 ) {
BlinkLed(led1, sensorValue, 0,sensorValueB); //BlinkLed( which led, interval, one of the stored prevMillis
BlinkLed(led2, sensorValue/3, 1,sensorValueB); //last parameters must be different for each led
BlinkLed(led3, sensorValue/2, 2,sensorValueB);
}
if(sensorValueB < 400) {
BlinkLedSuper(led1, sensorValue, 0,sensorValueB); //BlinkLed( which led, interval, one of the stored prevMillis
BlinkLedSuper(led2, sensorValue/3, 1,sensorValueB); //last parameters must be different for each led
BlinkLedSuper(led3, sensorValue/2, 2,sensorValueB);
}
Serial.print("potentiometre");
Serial.println(sensorValue);
Serial.print("ldr");
Serial.println(sensorValueB);
// delay(1);
}
///Simple blink
void BlinkLedSimple (int led, int interval, int array, int pwm){
if (((long)millis() - previousMillis[array]) >= interval){
previousMillis[array]= millis(); //stores the millis value in the selected array
digitalWrite(led, !digitalRead(led)); //changes led state
}}
///delayyyy blink
void BlinkLed (int led, int interval, int array, int pwm){
if (((long)millis() - previousMillis[array]) >= interval){
previousMillis[array]= millis(); //stores the millis value in the selected array
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
}
}
///super delayyyy blink
void BlinkLedSuper (int led, int interval, int array, int pwm){
if (((long)millis() - previousMillis[array]) >= interval){
previousMillis[array]= millis(); //stores the millis value in the selected array
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
delay (pwm/factor);
digitalWrite(led, !digitalRead(led)); //changes led state
}
}