Bonjour a tous,
J'ai voulu réaliser un ascenseur autonome, mais la n'est pas le probleme, dans ce prgramme je gere 2 capteurs en entrée et 2 electroaimant en sortie. Pour cela j'utilise un shield que j'ai confectionné, or il y a un probleme sur mon programme que je n'arrive pas a déceler, si quelqu'un pourrait m'aider j'apprécierais fortement.
Merci d'avance
// definition des constantes qui définiront les broches
#define ENA 3 // validation pont A sur broche 3
#define ENB 5 // validation pont B sur broche 5
#define G1 6 // commande grille transistor 1 sur broche 6
#define G2 7 // commande grille transistor 2 sur broche 7
#define IN1 9 // commande demi-pont 1 (A) sur broche 9
#define IN2 10 // commande demi-pont 2 (A) sur broche 10
#define IN3 12 // commande demi-pont 3 (B) sur broche 12
#define IN4 13 // commande demi-pont 4 (B) sur broche 13
void setup() {
// initialisation des broches pour le shield
pinMode(ENA, OUTPUT); // sets the pin as output
pinMode(ENB, OUTPUT); // sets the pin as output
pinMode(G1, OUTPUT); // sets the pin as output
pinMode(G2, OUTPUT); // sets the pin as output
pinMode(IN1, OUTPUT); // sets the pin as output
pinMode(IN2, OUTPUT); // sets the pin as output
pinMode(IN3, OUTPUT); // sets the pin as output
pinMode(IN4, OUTPUT); // sets the pin as output
// les 2 transistors supplémentaires sont dans l'état ouvert (ils ne sont pas utilisés ici)
digitalWrite(G2,LOW); // transistor 2 OFF
analogWrite(G1,0); // transistor 1 à 0%
///INITIALISATION ENTREES
// initialisation du BP
pinBouton=2;
pinMode(pinBouton,INPUT);
// initialisation du capteur
pinCapteur=4;
pinMode(pinCapteur,INPUT);
/// INITIALISATION SORTIES
// initialisation de ventouse
pinventouse=7;
pinMode(pinventouse,OUTPUT);
// initialisation de Electro
pinElectro=8;
pinMode(pinElectro,OUTPUT);
//ventouse + electoaimant activé OK
//appui sur le BP OK
//ventouse + electoaimant désactivé OK
//capteur a l'état 1 OK
//electoaimant activé OK
//temps 5s OK
//ventouse activée + electoaimant désactivé OK
//allumage ventouse + electoaimant
digitalWrite(pinventouse, HIGH);
digitalWrite(pinElectro, HIGH);
//lecture de l'état du BP
//interprétation état BP
while (1)
{
if (digitalRead(pinBouton) == 1)
{
digitalWrite(pinventouse, LOW);
digitalWrite(pinElectro, LOW);
break;
}
}
//lecture de l'état du capteur
//interprétation état capteur
while (1)
{
if (digitalRead(pinCapteur) == 1)
{
digitalWrite(pinElectro, HIGH);
digitalWrite(pinventouse, HIGH);
delay(5000);
digitalWrite(pinElectro, LOW);
break;
}
}
while (1);
}