Bonjour à tous,
J'annonce je suis suis un gros débutant, j’espère avoir une réponse pédagogique sur mon problème.
Je cherche à lancer un programme en appuyant sur un bouton. car quand je connecte l'Arduino il fait ça vie tout seul. J aimerai lui dire là, maintenant, tu lances la Loop à l'aide d'un bouton.
J'ai essayé le code de maxpeigne plus haut mais cela ne fonctionne pas. quand je lance mon programme se met en route directement.
.
L'INSTALLATION :
J'utilise 1 moteur avec un mosfet L298N, avec une alim 12v. et j'ai un bouton poussoirs.Tout semble relié correctement. le programme lance bien le moteur.
Pour le bouton je pars du 5v arduino, ensuite R de 10k , je vais sur pin 2 et sur bouton (bouton protégé par condensateur 10uF et enfin sur le ground.
Shema inspiré. j ai utilisé les pin 10-8-9 pour mon moteur. ci dessous.
PROGRAMME
J'ai essayé d'autre solution voici la dernière :
Etant mauvais, je me suis servis de plusieurs tuto pour assembler ce code. Dons celui d'Eskimon.
A la fin pour couper le programme j'ai cracké sur le delay...
int enA = 10; // crée une variable de type "int", nommée "enA" et attachée à la Broche 10, qui permet de gérer la vitesse du moteur.
int in1 = 9; // crée une variable de type "int", nommée "in1" et attachée à la Broche 9, qui permet de gérer le sens de rotation.
int in2 = 8; // crée une variable de type "int", nommée "in2" et attachée à la Broche 8, qui permet de gérer l'autre sens de rotation.
const int bouton = 2; // un bouton sur la broche 2
int etatBouton; // variable qui enregistre l'état du bouton
void setup() { // Void Setup ------------------------------------------------------------------------------------------------------------------------------------------
pinMode(2, INPUT);
pinMode(enA, OUTPUT); // indique que la broche de la variable "enA" donc ici la PIN 10, est une sortie.
pinMode(in1, OUTPUT); // indique que la broche de la variable "in1" donc ici la PIN 9, est une sortie.
pinMode(in2, OUTPUT); // indique que la broche de la variable "in2" donc ici la PIN 8, est une sortie.
pinMode(bouton, INPUT);
etatBouton= HIGH;
}
void loop() { // Void Loop -------------------------------------------------------------------------------------------------------------------------------------------
etatBouton = digitalRead(bouton); // Rappel : bouton = 2
if (etatBouton == HIGH) // test si le bouton a un niveau logique HAUT
{
digitalWrite(in1,HIGH); // envoie l'électricité dans la broche in1 (donc la PIN 9)ce qui fait donc tourner le moteur dans le sens de rotation de in1.
digitalWrite(in2,LOW); // en mettant la broche in2 à l'état bas, la carte n'injecte pas d'électricité, le moteur peut donc continuer à tourner dans le sens de in1.
analogWrite(enA,200); // défini la vitesse du moteur, ici 200 sur un maximum de 255 (échélle comprise entre 0 et 255, car cela correspond à 8 bits soit 1 octet).
delay(2500); // créer un delais de 5 secondes, donc le moteur tourne pendant 5 secondes.
digitalWrite(in1,LOW); // en mettant la broche in1 à l'état bas, la carte n'injecte pas d'électricité, le moteur est donc à l'arrêt.
digitalWrite(in2,LOW); // en mettant la broche in2 à l'état bas, la carte n'injecte pas d'électricité, le moteur est donc à l'arrêt.
delay(1000); // créer un delais où le moteur ne tourne pas pendant 2 secondes.
digitalWrite(in1,LOW); // met la broche in1 à l'état bas, la carte n'injecte pas d'électricité, le moteur ne tourne pas dans le sens de in1.
digitalWrite(in2,HIGH); // envoie l'électricité dans la broche in2 (donc la PIN 8)ce qui fait donc tourner le moteur dans le sens de rotation de in2.
analogWrite(enA,70); // défini la vitesse du moteur, ici 200 sur un maximum de 255 (échélle comprise entre 0 et 255, car cela correspond à 8 bits soit 1 octet).
delay(2500); // créer un delais de 5 secondes, donc le moteur tourne pendant 5 secondes.
digitalWrite(in1,LOW); // en mettant la broche in1 à l'état bas, la carte n'injecte pas d'électricité, le moteur est donc à l'arrêt.
digitalWrite(in2,LOW); // en mettant la broche in2 à l'état bas, la carte n'injecte pas d'électricité, le moteur est donc à l'arrêt.
delay(1000); // créer un delais où le moteur ne tourne pas pendant 2 secondes.
}
else // test si le bouton a un niveau logique différent de HAUT (donc BAS)
delay(100000000000000000000000);
}
J’espère avoir de l'aide,
Merci 'avance Duocalment.