Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Commande servo par boutons boussoirs


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 21 Oct - 13:19 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

PublicitéSupprimer les publicités ?
Bonjour à tous,

help Débutant, j'ai besoin de votre aide pour réaliser la commande par boutons poussoirs d'un servomoteur Hitec HS-311 via une arduino uno, afin qu'il puisse réaliser une rotation angulaire + ou - précise.

Explication des contraintes:
Action sur le bouton poussoir 1 : rotation de 30°
Action sur le bouton poussoir 2 : rotation de 60°
Action sur le bouton poussoir 3 : rotation de 90°
Action sur le bouton poussoir 4 : retour à 0°

Je recherche un schéma simple avec des explications claires...

Pou info :
Données constructeur : 0.19sec/60° sous 4,8v et 0.15 sec/60° sous 6v
J'ai un très bon niveau en l'électricité
J'ai un bon niveau en électromécanique
j'ai de vagues notions en électronique
Je n'ai jamais paramétré d'arduino Embarassed


Merci d'avance pour vos réponses
____________________________
Haste you, life is short !
Revenir en haut
Arduino0
Débutant

Hors ligne

Inscrit le: 07 Avr 2013
Messages: 119
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Lun 21 Oct - 15:21 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

Bonjour , sur tutoarduino.com , un site partenaire de ce forum , j'ai écrits des tutos pour débuter :

voila , http://tutoarduino.com/apprendre   mieux vaut que tu apprenne le langage plutôt que je te donne le code et que tu n'ait rien compris.

Pour le shéma j’attends que tu est lu les tutos , juste : tu a deja le matériel : un arduino des câbles et des boutons?

Bonne fin de journée !
Revenir en haut
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 21 Oct - 16:20 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

Merci arduino0 pour ta réactivité,

Bien sur, j'ai déjà pris connaissance de ces tutos, très bien fait soit dit en passant.
Je possède évidement tout le matériel nécessaire à la réalisation de ce projet (bouton poussoir, straps, projectboard, servo, led résistive, résistance 10Kohms, interrupteurs, carte arduino uno, relais, relais bistable...).

Je me suis amusé a programmer quelque petits trucs du genre :

#include <Servo.h>
 
Servo myservo; 
 
int pos = 0;   
 
void setup()
{
  myservo.attach(9); 
  myservo.write(30);  // positionne le servomoteur à 30°
  delay (1000);
  myservo.write(60);  // positionne le servomoteur à 60°
  delay (1000);
  myservo.write(90);  // positionne le servomoteur à 90°
  delay (1000);
  myservo.write(180);  // positionne le servomoteur à 180°
  delay (1000);
  myservo.write(0);  // positionne le servomoteur à 0°
 
}
 
 
void loop()
{
}
je continu à chercher les infos dont j'ai besoin et reviendrais vers toi si besoin.

Merci encore,
Bonne soirée

Claude
____________________________
Haste you, life is short !
Revenir en haut
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 21 Oct - 18:44 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

Bon je reviens vers toi plus vite que prévu...

Je réalise que pour programmer ce que je souhaite, il y a beaucoup de boulot sur la planche et que cela nécessite du tepms (que je n'ai pas) et une réelle expérience (que je n'ai pas non plus).
J'ai essayé de déclencher une rotation après une impulsion sur un bouton poussoir ... en vain boulet
help je sollicite donc ta bienveillance afin de m'aider à réaliser ce projet pas à pas.
____________________________
Haste you, life is short !
Revenir en haut
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mar 22 Oct - 17:20 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

Salut,
J'ai passé la journée à essayer de comprendre le langage mais je but encore... Embarassed
Voici ce que j'ai écrit et qui marche  :

#include <Servo.h>

Servo myservo; 

int pos = 0;
 
const int buttonPin1 = 2;
const int buttonPin2 = 3;

int buttonState1 = 0;
int buttonState2 = 0;

void setup()
{
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, INPUT);
 digitalWrite (buttonPin1, HIGH);
 digitalWrite (buttonPin2, HIGH);
 myservo.attach(9);
}

void loop()
{
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
 
  if (buttonState1 == HIGH && buttonState2 == LOW)
  {
  myservo.write(90);  // positionne le servomoteur à 90°
  delay (300);
  }
  else if (buttonState1 == LOW && buttonState2 == HIGH)
  {
  myservo.write(0);  // positionne le servomoteur à 0°
  delay (300);
  }
 
}

Cependant je souhaiterais que mon servo ai 4 rotations et non 2 et ce à l'aide de 4 boutons poussoir :
Action sur le bouton poussoir 1 : rotation de 30°
Action sur le bouton poussoir 2 : rotation de 60°
Action sur le bouton poussoir 3 : rotation de 90°
Action sur le bouton poussoir 4 : retour à 0° 
j'ai donc essayer pas mal de truc (et de bugs!) comme ça (qui ne marche pas évidement) :

#include <Servo.h>

Servo myservo; 

int pos = 0;
 
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;

void setup()
{
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, INPUT);
 pinMode(buttonPin3, INPUT);
 pinMode(buttonPin4, INPUT);
 digitalWrite (buttonPin1, HIGH);
 digitalWrite (buttonPin2, HIGH);
 digitalWrite (buttonPin3, HIGH);
 digitalWrite (buttonPin4, HIGH);
 myservo.attach(9);
}

void loop()
{
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);
  buttonState4 = digitalRead(buttonPin4);
 
  if (buttonState1 == HIGH && buttonState2 == LOW)
  if (buttonState1 == HIGH && buttonState3 == LOW)
  if (buttonState1 == HIGH && buttonState4 == LOW)
  {
  myservo.write(30);  // positionne le servomoteur à 30°
  delay (300);
  }
  if (buttonState2 == HIGH && buttonState1 == LOW)
  if (buttonState2 == HIGH && buttonState3 == LOW)
  if (buttonState2 == HIGH && buttonState4 == LOW)
  {
  myservo.write(60);  // positionne le servomoteur à 90°
  delay (300);
  }
  if (buttonState3 == HIGH && buttonState1 == LOW)
  if (buttonState3 == HIGH && buttonState2 == LOW)
  if (buttonState3 == HIGH && buttonState4 == LOW)
  {
  myservo.write(90);  // positionne le servomoteur à 90°
  delay (300);
  }
  if (buttonState4 == HIGH && buttonState1 == LOW)
  if (buttonState4 == HIGH && buttonState2 == LOW)
  if (buttonState4 == HIGH && buttonState3 == LOW)
  {
  myservo.write(0);  // positionne le servomoteur à 0°
  delay (300);
  }
 
}

là je pense avoir besoin de ton aide pour me mettre sur la piste.
J'ai hâte de te lire.
Bonne soirée
Claude
____________________________
Haste you, life is short !
Revenir en haut
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mar 22 Oct - 18:54 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

bon ben voilà, j'ai réussi ! yessssss !!!!!


#include <Servo.h>

Servo myservo; 
int pos = 0;
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;

void setup()
{
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, INPUT);
 pinMode(buttonPin3, INPUT);
 pinMode(buttonPin4, INPUT);
 digitalWrite (buttonPin1, HIGH);
 digitalWrite (buttonPin2, HIGH);
 digitalWrite (buttonPin3, HIGH);
 digitalWrite (buttonPin4, HIGH);
 myservo.attach(9);
}

void loop()
{
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);
  buttonState4 = digitalRead(buttonPin4);
 
  if (buttonState1 == 0)
 
  {myservo.write(60); delay (1000);}

  if (buttonState2 == 0)
 
  {myservo.write(120); delay (1000);}

  if (buttonState3 == 0)
 
  {myservo.write(180); delay (1000);}

  if (buttonState4 == 0)
 
  {myservo.write(0);delay (1000);}


}

Pourrais tu vérifier quand même stp ?
Cordialement

Claude
____________________________
Haste you, life is short !
Revenir en haut
Arduino0
Débutant

Hors ligne

Inscrit le: 07 Avr 2013
Messages: 119
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Dim 27 Oct - 13:07 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

je ne comprend pas pourquoi tu met sa : 
 digitalWrite (buttonPin1, HIGH);
 digitalWrite (buttonPin2, HIGH);
 digitalWrite (buttonPin3, HIGH);
 digitalWrite (buttonPin4, HIGH);

dans le sens ou c'est une sortie pourquoi tu l'a met a l’état haut?
Je ne n'ai pas mon matériel pour tester (je suis en vacances) donc j’espère que sa marche :)

Si oui tu pourra mettre des photos de ton projet?
Revenir en haut
claude
Débutant

Hors ligne

Inscrit le: 21 Oct 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Dim 27 Oct - 18:31 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

Bonjour,

DigitalWrite pour activer le PullUp Wink

Oui oui, ça marche très bien !

A+

Claude
____________________________
Haste you, life is short !
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Lun 28 Oct - 13:02 (2013)    Sujet du message: Commande servo par boutons boussoirs Répondre en citant

  Tu pourrais faire un code un peux plus soft en utilisant des tableaux et des boucles du style
     int buttonPin[4] = {2,3,4,5};  pour déclarer tes varialbe (pareil pour le state)


  et :
for(i=0; i<=4; i++){
 digitalWrite (buttonPin[i], HIGH);
}


 
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:19 (2017)    Sujet du message: Commande servo par boutons boussoirs

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino