Merci a vous !
Mike : Oui pour apprendre l'arduino
Christian :
Je n'ai pas réussis. Tu mets :
//Mettre les 10 pins des Leds en sorties (pins n°2 à 11 inclus)
for (int i=2; i <= 11; i++){
pinMode(i, OUTPUT); //met cette broche en sortie
}
dans loop , au début. Ou alors dans setup ?
Et pour :
nombre_LED = map(photocellReading, 0, 1023, 0, 9);
nombre_LED représente quoi dans mon code ? j'ai tout essayer , ledCount , ledPins , LEDbrightness. Et ca marche pas.
En tout cas merci.
Et j'ai fais un code plus long , mais plus simple pour moi. Mais il y a trop de sensibilité.
#define NUMREADINGS 15 // raise this number to increase data smoothing
int senseLimit = 15; // raise this number to decrease sensitivity (up to 1023 max)
int probePin = A0; // analog 5
int val = 0; // reading from probePin
int LED1 = 11; // connections
int LED2 = 10; // to
int LED3 = 9; // LED
int LED4 = 8; // bargraph
int LED5 = 7; // anodes
int LED6 = 6; // with
int LED7 = 5; // resistors
int LED8 = 4; // in
int LED9 = 3; // series
int LED10 = 2; //
// variables for smoothing
int readings[NUMREADINGS]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // final average of the probe reading
void setup() {
pinMode(2, OUTPUT); // specify LED bargraph outputs
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600); // initiate serial connection for debugging/etc
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // initialize all the readings to 0
}
void loop() {
val = analogRead(probePin); // take a reading from the probe
if(val >= 1){ // if the reading isn't zero, proceed
val = constrain(val, 1, senseLimit); // turn any reading higher than the senseLimit value into the senseLimit value
val = map(val, 1, senseLimit, 1, 1023); // remap the constrained value within a 1 to 1023 range
total -= readings[index]; // subtract the last reading
readings[index] = val; // read from the sensor
total += readings[index]; // add the reading to the total
index = (index + 1); // advance to the next index
if (index >= NUMREADINGS) // if we're at the end of the array...
index = 0; // ...wrap around to the beginning
average = total / NUMREADINGS; // calculate the average
if (average > 10){ // if the average is over 50 ...
digitalWrite(LED1, HIGH); // light the first LED
}
else{ // and if it's not ...
digitalWrite(LED1, LOW);
}
if (average > 50){ // and so on ...
digitalWrite(LED2, HIGH);
}
else{
digitalWrite(LED2, LOW);
}
if (average > 90){
digitalWrite(LED3, HIGH);
}
else{
digitalWrite(LED3, LOW);
}
if (average > 140){
digitalWrite(LED4, HIGH);
}
else{
digitalWrite(LED4, LOW);
}
if (average > 200){
digitalWrite(LED5, HIGH);
}
else{
digitalWrite(LED5, LOW);
}
if (average > 250){
digitalWrite(LED6, HIGH);
}
else{
digitalWrite(LED6, LOW);
}
if (average > 300){
digitalWrite(LED7, HIGH);
}
else{
digitalWrite(LED7, LOW);
}
if (average > 340){
digitalWrite(LED8, HIGH);
}
else{
digitalWrite(LED8, LOW);
}
if (average > 400){
digitalWrite(LED9, HIGH);
}
else{
digitalWrite(LED9, LOW);
}
if (average > 500){
digitalWrite(LED10, HIGH);
}
else{
digitalWrite(LED10, LOW);
}
Serial.println(val); // use output to aid in calibrating
}
}
J'attend ta réponse Christian.