Commande Moteur cc 5V et Fin de course difficultés

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

test_2.2.ino (1.66 KB)

bonjour,

Je veux réaliser un projet pour commander une porte coulissante , mais j'ai eu des problémes en ecrivant mon code

quel problème?

évite les do

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è

Bonjour,

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

j'ai dis évite les do, pas que ca allait fonctionner sans :wink:
karmill m'a devancé pour les digitalRead :slight_smile:

je pense que tu ne pose pas comme il faut ton approche et que tu vas rencontrer des difficultés après.

j'utiliserai des boolean

boolean ouverte = false;
boolean fermeture = false;

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 :confused:

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

Bonjour,

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 ....

Serge .D

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?