Aide trois états sur une sortie arduino Est ce possible ??

  • Auteur de la discussion Charly 57
  • Date de début
C

Charly 57

Compagnon
Bonjour

Arduino ( grace à ses brillants programmateurs ) sait il mettre trois états sur une même sortie ? J'explique ma question:
état 0 : sortie à zéro volt
état 1 :sortie avec un créneau haut cyclique (50 hz) de 1 mili seconde pendant la durée de T1 secondes
état 2 : sortie avec un créneau haut cyclique (50 hz) de 2 mili seconde pendant la durée de T2 secondes

POUR une MAQUETTE (maison de poupée) avec des servo moteurs ( genre radio commande), ce serait la réponse au besoin d'ouverture / fermeture d'un volet roulant.
pas d'ordre --> la sortie est à l'état 0 : sortie à zéro volt (le servo moteur est hors sollicitation)
ordre ouverture du volet roulant --> la sortie passe à l'état 1 pendant T1 : sortie avec un créneau haut cyclique (50 hz) de 1 mili seconde pendant T1 secondes ( le servo moteur tourne dans un sens pendant T1 secondes)
T1 écoulé et pas de demande donc séquence: pas d'ordre --> la sortie passe à l'état 0 : sortie à zéro volt
ordre fermeture du volet roulant --> la sortie passe à l'état 2 pendant T2 : sortie avec un créneau haut cyclique (50 hz) de 2 mili seconde pendant T2 secondes ( le servo moteur a tourné dans l'autre sens pendant T2 secondes)
T2 écoulé et pas de demande donc séquence: pas d'ordre --> la sortie passe à l'état 0 : sortie à zéro volt.

Je cherche à savoir si tout çà est possible sur la même sortie.
Nota: Pour moi l'état zéro volt est nécessaire pour éviter de laisser le servo alimenté au neutre car en vieillissant les servos de basse qualité que j'utilise se mettent à vibrer et à chauffer.

Merci pour vos réponses
 
J

jpbbricole

Compagnon
Bonsoir Charly 57

C'est possible en mettant, momentanément l'E/S concernée en mode input:

pinMode(pinDuPort, OUTPUT); // Etat normal
pinMode(pinDuPort, INPUT); // Equivalent au 3ème état di tristate
// attention pas INPUT_PULLUP!!!
pinMode(pinDuPort, OUTPUT); // Retour état normal


Cordialement
jpbbricole
 
C

Charly 57

Compagnon

OK, super c'est exactement çà.


Bonsoir Charly 57

C'est possible en mettant, momentanément l'E/S concernée en mode input:

pinMode(pinDuPort, OUTPUT); // Etat normal
pinMode(pinDuPort, INPUT); // Equivalent au 3ème état di tristate
// attention pas INPUT_PULLUP!!!
pinMode(pinDuPort, OUTPUT); // Retour état normal


Cordialement
jpbbricole

Merci Jpb ça va m'aider
 
C

Charly 57

Compagnon
Bonsoir Patrick

Merci pour ton message
Arduino, juste un tout petit peu mais c'est pas pour moi, alors je n'ai pas encore le courage de plonger dedans ....
 
W

wika58

Compagnon
C'est génial... pas encore assez de temps libre pour m'y consacrer comme je le souhaiterai...
Mais ça viendra...

A bientôt pour un visu (depuis le temps...).
 
Haut