Bonjour à tous
je suis entrain de travailler sur un projet d’éclairage led des marches de mon escalier(merci à MIMIX)
le coté technique est fini mais j'ai des soucis au niveau de la programmation avec adruino.
j'ai 13 marches et il y'a un detecteur avec piezzo au niveau de la première et dernière marche.
la couleur des ruban led est unique(bleu).
et les marches s'allument sequentiellement en montant et en descendant.
les rubans sont installés sur les broches 0 à 12 et le capteur 1ére et derniére marche surs broches analogiques A3 et A2;
Es ce que quelqu'un peut me vérifier ce programme. merci d'avance.
le programme d'origine était effectué sur teenesy 2++
//declaration des pins
int activity = 27; //led interne permettant de verifier l'activitee du teensy 2.0 ++
int marche[13] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; //sorties ou sont reliees les marches, en partant de bas en haut
int marchetest = 32; //led strip de test
int capteurbas = A3; //capteur de presence en bas de l'escalier
int capteurhaut = A2; //capteur de presence en haut de l'escalier
//initialisation du mode de connection des pins
// initialisation des variables
unsigned int Bright = 50;
int Veille = 0;
int Verrou = 0;
int activitycount = 0;
int luminositee = 0;
//paramètres pour le cadencement
int nbrmarche = 13; //nombre de marches 14
//temps d'allumage des leds
int tpsattente = 25000; //temps d'allumage une fois tout éclaire 25000
int tpsallum= 98; //temps de cadencement d'une marche 98
int marcheN;
void setup()
{
Serial.begin(9600); //utile au debug
pinMode(activity, OUTPUT);
pinMode(capteurbas, INPUT_PULLUP);
pinMode(capteurhaut, INPUT_PULLUP);
for (int marcheN = 0; marcheN < nbrmarche; marcheN++) {
pinMode(marche[marcheN], OUTPUT);
}
}
//programme
void loop()
{
luminositee = analogRead(0); //acquisition luminositee
//verif activite du teensy
activitycount++;
if ( activitycount == 100)
{
digitalWrite(activity, HIGH);
}
if ( activitycount == 100)
{
digitalWrite(activity, LOW);
activitycount = 0;
}
// allumage si montée de personne
if ((digitalRead (capteurbas) == LOW) && luminositee <= 400 && Verrou == 0)
{
for (int marcheN = 0; marcheN < nbrmarche; marcheN++)
{
// allumer la marche
digitalWrite(marche[marcheN], HIGH);
delay(tpsallum);
}
delay(tpsattente);
for (int marcheN = 0; marcheN < nbrmarche; marcheN++)
{
digitalWrite(marche[marcheN], LOW);
delay(tpsallum);
}
}
// allumage si descente de personne
if ((digitalRead (capteurhaut) == LOW) && luminositee <= 400 && Verrou == 0)
{
for (int marcheN = nbrmarche - 1; marcheN >= 0; marcheN--)
{
// allumer la marche
digitalWrite(marche[marcheN], HIGH);
delay(tpsallum);
}
delay(tpsattente);
for (int marcheN = nbrmarche - 1; marcheN >= 0; marcheN--)
{
digitalWrite(marche[marcheN], LOW);
delay(tpsallum);
}
}
//debug
/*
Serial.print("Bright =");
Serial.println(Bright);
delay(200);
Serial.print("Code R =");
Serial.println(CodeR);
delay(200);
*/
}