Servomoteur

Bonjour,

J’amerais faire tourner mon servomoteur de 0 à 180° grace a un capteur de presence. J’ai reussi à le faire tourner or il reviens à sa place instantanément, c’est à dire que le servomoteur ne se bloque pas à la position de 180° et moi j’aimerais qu’il y reste. (Pour en faire une porte qui souvre)

Voici mon Programme :

#include <Servo.h>

Servo myservo;
int pos = 0;

void setup() {
myservo.attach(9);
pinMode(A0, INPUT);
}

void loop() {
// put your main code here, to run repeatedly:
if(analogRead ((A0)>100)){

for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15);
}
}
}

Merci de votre aide.

Tu le laisse alimenté ou tu l'éteint ?

Le code sans balises code = illisible
Le code c'est bien mais avec un schéma électrique (même fait à la main) c'est mieux.

Voir les messages épinglés si tu veux des réponses.

Le code pas bien lisible dit :
if(analogRead ((A0)>100))
en séparant:

if ( analogRead ( (A0)>100 ) )

A0 c'est une constante, c'est le numéro de la broche. par exempe pour une Mega elle vaut 54
La condition devient:
if ( analogRead ( (54)>100 ) )

ou encore

if ( analogRead ( 54>100 ) )

soit:

if ( analogRead (false) )

C'est encore

if ( analogRead (0) )

C'est la lecture de la broche 0 qui est faite. Après je ne me rappelle plus ce qui se passe si ion lit une broche qui n'existe pas...

Il est probable que la condition puisse être

if ( analogRead(A0) > 100 )


Mais si la condition est vrai, on dirait que l'on demande au servo de s'ouvrir en repartant de 0. Le servo devrait alors s'ouvrir lentement, se fermer brusquement tant que la condition est vraie, et rester ouver si la condition est fausse.

Le code n’est pas dans les balises

Je ne prends même pas la peine de lire la demande