salut a tous ,
Je veux réaliser un projet pour commander une porte coulissante , mais j’ai eu des problémes en ecrivant mon code Materiel:
arduino uno
2 boutouns poussoir
2 fin de course
un Moteur 5v
un circuit intégrer L293D pour le commande des 2 sens OBJECTIF:
si le bouton1 est appuiyé le moteur tourne dans le sens 1 et s’arrete seulement quand il atteint le Fin de course 1 , il se bloque la bas, et ne tourne plus, seulement si j’appuie le bouton2
si le bouton 2 est appuiyé le moteur tourne dans le sens 2 (donc le fin de course 1 est relaché) , et s’arrete seulement quand il atteint le fin de course 2 , il se bloque la bas , et ne tourne plus seulement si j’appuie le bouton1 de nouveau.
J’ai attaché une copie de mon code et une capture de mon circuit
Pouvez vous m’aider s’il vous plait et Merci d’avance
Salut info barquee,
Tout d’abord merci pour votre rèponse.
Ça marche pas aussi en evitant les do.
La compilation fonctionne , la simulation sur proteus ne fonctionne pas comme demandè
digitalRead(arPin == HIGH) ça ne fonctionne pas du tout, je suppose que tu veux faire digitalRead(arPin) == HIGH. Il y a plusieurs fois ce type d'erreur.
De même quand tu fais (boutB == HIGH), je suppose que tu veux faire digitalRead(boutB) == HIGH
Salut kamil,
Merci bien pour votre rèponse tu as raison , mais même en corrigeant les erreurs indiquè , la simulation ne fonctionne pas.
Avez vous une autre proposition de code s'il vous plait , pour le schèma attachè avec mon post?
Merci d'avance
si bouton ouverture appuyé===> ouverture = true ET fermeture = false
si bouton fermeture appué ===> fermeture = true ET ouverture = false
si ouverture et fin de course ouverture != HIGH(voir comment tu cable tes stop)
moteur marche avant
sinon
ouverture = false ET fermeture = true
moteur marche avant stop
si fermeture et fin de course fermeture != HIGH(voir comment tu cable tes stop)
moteur marche arrière
sinon
ouverture = true ET fermeture = false
moteur marche arrière stop
J'ai evité les do comme vous m'avez dit , quand je simule avPin est HIGH , boutA est HIGH , moteur tourne dans le sens demandé , mais s'arrete pas quand le fin de course arPin est HIGH
motorPin1 et enablePin restent dans le meme etat meme si j'appuie tous les boutons leur etat ne change pas
la boucle ne se ferme pas
déjà, si tu mets tes boutons sans résistance pour l'antirebond, ca va poser pb.
connecte le bouton sur la pin et l'autre bout à la masse
idem pour les stop
mets input_pullup pour activer l'antirebond
au lieu de tester sur un prog, teste en direct avec une led.
1 bouton, 1 led
après 2 boutons, 2 leds
Salut infobarquee,
Merci bien pour votre aide , ca a bien fonctionné , j'aimerais maintenant vous questionner ,
Est que il est possible de Commander le moteur avec un seul bouton ainsi les instructions suivante:
if bouton==true && FC1==true====> ouverture=true jusqu'a FC2=TRUE then stop
if bouton==true && FC2==true====> fermeture=true jusqu'a FC1=TRUE then stop
if bouton==true && FC1=false && FC2==false===>stop
if bout==true && etat_precedent_FC1==true===> fermeture de nouveau jusqua'a FC1 then stop
if bouton==true && etat_precedent_FC2==true===> ouverture de nouveau jusqu'a FC2 then stop
Je trouve ca un peu compliqué , J'attends vos réponses et Merci d'avance
A propos des branchements des boutons, moi aussi je n'aime pas trop les liaisons directes d'E/S à la masse :
Par exemple pour la borne 7, si une erreur de programmation survient ( par exemple D7 programmé en sortie au niveau haut) alors il y a un court-circuit pour cette sortie.
Perso , en phase de développement j'insère toujours une faible résistance. (Par ex 470 Ohms)
Bon pour une simulation, il n'y a pas de risque de court-circuit destructeur .... mais ensuite ....
Salut aligote,
je n'ai aucun probléme avec le branchement du circuit , ce que je trouve compliqué c'est le code
donc
Avez vous des suggestions s'il vous plait?