bonjour,
je suis en train de chercher comment , associer tout ca:
Metro, shift register 74hc595 et interuption
Mon programme doit commander une animation lumineuse de 8 led, donc j'opte pour l'utilisation du registre shift qui permet de coder ça en séquence binaire bien pratique car visuelles,
Cette animation doit pouvoir être interrompue à tout moment par un appui sur un bouton , que j'ai donc câblé en pin2 pour bénéficier de l’interruption, qui, lui déclenche un relais qui commande une prise d'image , un servo moteur et une autre animation lumineuse.
la partie italique
ne me pause pas de problème, pour l'instant mais je n'ai pas encore intégrer le 74h595
cela dit,
si je m'en tiens a ce que je lis , ce CI a besoin des pin 2.3.4 or j'y ai un bouton (sur la 2) et qui doit être hyper réactif,
j'ai un peut de mal à piger l'utilisation de metro pour intercaler mes allumage/extinction de leds et la doc la dessus est un peut maigre,
je précise que l'utilisation de delay() est impossible en première partie pour ne pas rater l’appui sur le bouton mais que ca ne pause pas de problème après cet appui,
voici le code
#include <Servo.h>
Servo myservo;
const int buttonPin = 2; // bouton de la ciblesur pin 2
const int ledPin = 12; // led 12 sortie pour relais reed
int ledPins[] = {14,15,16,17,18,19,8,10,11};
int buttonState = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
myservo.attach(9); // servo sur pin 9
myservo.write(40); //initialise le servo en position repos zero
delay(20); // pour stabilisation
}
void loop()
{
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) { // bouton etat haut detecté
digitalWrite(ledPin, HIGH); // led ON
delay(1000);
myservo.write(178); // va en butée inverse
delay(250); // stabilisation 250 ms
digitalWrite(ledPin, LOW); // led OFF
myservo.write(40); // retour en zero
delay(20); // pour stabilisation
/*
si la cible est atteinte, les led font un truc a la k2000
à etoffer plus tard
*/
int delayTime = 100;
for(int i = 8; i > 0; i--){
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
for(int i = 1; i <= 8; i++){
digitalWrite(ledPins[i], LOW);
delay(delayTime);
}
}for(int i = 0; i <= 8; i++){
digitalWrite(ledPins[i], HIGH);
delay(delayTime);
for(int i = 8; i >= 0; i--){
digitalWrite(ledPins[i], LOW); delay(delayTime);
}
} }
//reste a intégrer des animation (type MaFonction1,MaFonction2...)avant l'impact
}
bonne journée et merci a ceux qui prendrais le temps de me lire et de me conseiller, parce que la je sèche un peu