Étape 6: Routines (ou : où commence le plaisir)
À ce stade, nous avons fait tout le travail de jambe. Maintenant nous pouvons commencer à développer des utilisations intéressantes pour notre projet. C’est là l’Arduino devient plus complexe. Nous attachons nos photodiode (ainsi qu’une grande résistance [quelque chose de l’ordre de 10 K] pour empêcher notre Arduino d’être frit par trop courant) à l’une des entrées analogiques de l’Arduino. Ce qui suit est un exemple Arduino de programme appelé « blinds » qui utilise une fonction de « dither » pour trouver des maxima relatives de l’intensité lumineuse en fonction de l’angle aveugle toutes les 30 minutes. Notez que j’utilise broches PWM de l’Arduino Leonardo 9, 10 et 5 pour contrôler la logique du pont, et que restime devrait dépendre de la spécificité de votre installation (p. ex. tension moteur, combien tournant est nécessaire pour ouvrir vos stores, etc..).int c1 = 9 ;
int c2 = 10 ;
activez int = 5 ;
int temp ;
booléenne gauche = false ;
booléenne droite = false ;
int rightval ;
int leftval ;
restime int = 40 ;
void setup() {}
pinMode (c1, sortie) ;
pinMode (c2, sortie) ;
pinMode (active, sortie) ;
}
void loop() {}
gauche = false ;
droite = false ;
dither() ;
Delay(2800000) ;
}
void dither() {}
while(Left==false|| droit == false) {}
Temp=analogRead(a0) ;
Si (gauche == false) {}
digitalWrite (enable, faible) ;
digitalWrite (c1, HIGH) ;
digitalWrite (c2, faible) ;
digitalWrite (enable, HIGH) ;
Delay(restime) ;
digitalWrite (c2, HIGH) ;
leftval=analogRead(a0) ;
digitalWrite (c1, faible) ;
Delay(restime) ;
digitalWrite (enable, faible) ;
if(leftval>temp)
gauche = false ;
d’autre
gauche = true ;
}
Si (droite == false) {}
digitalWrite (enable, faible) ;
digitalWrite (c1, faible) ;
digitalWrite (c2, HIGH) ;
digitalWrite (enable, HIGH) ;
Delay(restime) ;
digitalWrite (c2, faible) ;
rightval=analogRead(a0) ;
digitalWrite (c1, HIGH) ;
Delay(restime) ;
digitalWrite (enable, faible) ;
if(rightval>temp)
droite = false ;
d’autre
droite = true ;
}
}
Je voudrais éventuellement obtenir mes problèmes de montage/mechanical triés assez pour enregistrer une vidéo en Time-lapse de ce programme qui s’exécute pendant toute la journée. Si jamais je vous que cela fonctionne, je vais probablement mettre que vidéo ici.