IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Maintenir un servomoteur dans une position donnée


Sujet :

Arduino

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Maintenir un servomoteur dans une position donnée
    Bonjour, je souhaiterai faire tourner mon servomoteur de 0° à 90° puis qu'il reste bloqué à 90° jusqu'à qu'un capteur IR lui dise de revenir à 0°. Quand je programme mon servo, il tourne de 0° à 90° mais il revient tout de suite après à 0°. Je sais pas comment le faire rester dans sa position (90°). J'ai besoin d'aide, merci d'avance

  2. #2
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir ineeee77

    Pourrais-tu mettre ton code en ligne?

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    le voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <Servo.h>
     
    Servo monServomoteur;
     
    void setup()
    {
      Serial.begin(9600); //régle le débit de données du Arduino
      Serial.println("arduino commence à envoyer des données");
     
      pinMode (11,INPUT); //définit le pin 11 comme entrée du capteur IR 1
     
      monServomoteur.attach(6, 1000, 2000);
      monServomoteur.write(0);
    }
     
    void loop()
    {
      int ir1 = digitalRead(11); //la variable ir1 lit ce que le capteur IR 1 reçoit
      delay(50); //tous les 50 millisecondes
     
      if(ir1 == 0)
        { 
         monServomoteur.attach(6, 1000, 2000);
         monServomoteur.write(90);  
        }
    }

  4. #4
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour ineeees77

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      if(ir1 == 0)
        { 
         monServomoteur.attach(6, 1000, 2000);
         monServomoteur.write(90);  
        }
    }
    La ligne en gras n'est pas nécessaire, celà ne se fait qu'une fois dans setup().

    Ton capteur IR est de quel type, mets un lien, au repos, quel état logique sur la pin 11 (1 (+5V.) ou 0 (GND))?

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci, mon capteur IR, quand il détecte quelque chose, il envoie un 0 et quand il détecte rien, il envoie un 1.

    Mais si je mets que cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monServomoteur.write(90);
    c'est censé le faire tourner puis le maintenir dans sa position ? Ou il faut que je rajoute une ligne de code ?

  6. #6
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour ineeees77

    Voilà ce que j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <Servo.h>
    
    Servo monServomoteur;
    
    void setup()
    {
    	Serial.begin(9600); //régle le débit de données du Arduino
    	Serial.println("arduino commence à envoyer des données");
    	
    	pinMode (11,INPUT_PULLUP); //définit le pin 11 comme entrée du capteur IR 1
    	
    	monServomoteur.attach(6, 1000, 2000);
    	monServomoteur.write(90);
    }
    
    void loop()
    {
    	int ir1 = digitalRead(11); //la variable ir1 lit ce que le capteur IR 1 reçoit
    	delay(50); //tous les 50 millisecondes
    	
    	if(ir1 == 0)
    	{
    		//monServomoteur.attach(6, 1000, 2000);
    		monServomoteur.write(0);
    	}
    }
    En gras, les lignes modifiées.

    Je n'ai pas de capteur IR, donc j'ai essayé avec un bouton poussoir.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/12/2009, 10h14
  2. Réponses: 1
    Dernier message: 08/02/2009, 10h47
  3. Ecriture à une position donné dans un fichier
    Par xarius dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/05/2006, 16h05
  4. Inserer du texte à une position donnée dans un Memo
    Par bassim dans le forum Composants VCL
    Réponses: 2
    Dernier message: 23/11/2005, 17h45
  5. Réponses: 2
    Dernier message: 07/07/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo