Commande servo-moteur avec deux bouton poussoir


bonjour,

je suis sur un projet pour commander un servo-moteur avec deux boutons poussoir, je m'explique:

- lorsque j'appuie sur un des bouton poussoir le servo-moteur tourne de 180° et quand je relache il revient à la position initiale(0°).
-et lorsque  j'appuie sur l'autre bouton poussoir le servo-moteur tourne à -180° et quand je relache il revient à la position initiale (0°).



et voici mon code :


#include <servo.h>
     
    const byte servo_a_angle_min = -1;
    const byte servo_a_angle_max = 1;
    const byte servo_en_neutre = 0;

     
    const int anglemin = -1750;
    const int angleneutre = 0;
    const int anglemax = 1750;
     
    servo monservo1;

    int vitesse = 0;
    int angle = angleneutre;
    byte etatservo = servo_en_neutre;
     
    const int pinbouton = 0; /* le bouton est connecté à la broche a0 */
    const int pinbouton1 = 1; /* le bouton est connecté à la broche a1 */

     
    const boolean presse = true;
    const boolean relache = false;
     
    boolean etatbouton = relache;
     
    const byte aucun_evenement = 0;
    const byte evenement_presse = 1;
    const byte evenement_relache = 2;
     
    /*
     * fonctions de gestion du poussoir
     */
    boolean lirepoussoir()
    {
     
     {
        boolean resultat = relache;
        if (analogread(pinbouton) > 512) {
            resultat = presse;
        boolean resultat = presse;
        if (analogread(pinbouton) > 1023) {
            resultat = relache;
        boolean resultat = relache;
        if (analogread(pinbouton1) > 512) {
            resultat = presse;
        boolean resultat = presse;
        if (analogread(pinbouton1) > -1023) {
            resultat = relache;
        }
        return resultat;
    }
     
    byte lireevenement()
    {
        byte evenement;
        boolean nouveletat = lirepoussoir();
       
        if (nouveletat == etatbouton)
            evenement = aucun_evenement;
        if (nouveletat == presse && etatbouton)
            evenement = evenement_presse;
        if (nouveletat == relache && etatbouton)
            evenement = evenement_relache;
        etatbouton = nouveletat;
        return evenement;
               
   
        if (nouveletat == etatbouton1)
            evenement = aucun_evenement;
        if (nouveletat == presse && etatbouton1)
            evenement = evenement_presse1;
        if (nouveletat == relache && etatbouton1)
            evenement = evenement_relache1;
        etatbouton1 = nouveletat;
        return evenement;
    }
     
    /*
     * la fonction setup() est exécutée 1 fois
     * au démarrage du programme
     */
    void setup()
    {
      monservo1.attach(2);

    }
     
    /*
     * la fonction loop() est exécutée
     * répétitivement
     */
    void loop()
{
    /* actualisation de l'angle du servo */
    monservo1.writemicroseconds(angle);
 
    angle = angle + vitesse;
 
    if (angle > anglemax) {
        angle = anglemax;
        vitesse = 0;
        etatservo = servo_a_angle_max;
    }
    else if (angle < anglemin) {
        angle = anglemin;
        vitesse = 0;
        etatservo = servo_a_angle_min;
    }
 
    /* lecture de la commande de l'utilisateur */
    byte evenement = lireevenement();
 
    if (evenement == evenement_presse) {
        switch (etatservo1) {
            case servo_a_angle_min:
            case servo_en_mouvement_vers_angle_min:
                vitesse =  1;
 
    if (evenement == evenement_presse1) {
        switch (etatservo1) {
            case servo_a_angle_min:
            case servo_en_mouvement_vers_angle_max:
                vitesse =  1;

    if (evenement = aucun_evenement;) {
        switch (etatservo1) {
            case servo_a_angle_min:
            case servo_en_mouvement_vers_angle_max:
                vitesse =  1;

           
        }
    }
 
    delay(3);
}

et j'aimerai un peu d'aide pour le code...

je vous remercie d'avance


Arduino Forum > International > Français > Le bar (Moderators: jfs, Snootlab) > Commande servo-moteur avec deux bouton poussoir


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor