telecommande 20 bouton pour arduino
#1
Posté 06 décembre 2014 - 10:54
J aimerai savoir si il est possible d assigner un servo sur un bouton et de se servir de deux autres pour le faire bouger.
Si oui , pouvez vous m aider car je n ai et trouve pas de documentation.
Merci.
#2
Posté 07 décembre 2014 - 08:24
J'ai pas bien compris ce que tu veux faire..
Tu voudrais assigner un bouton à un servo pour l'enclencher / le déclencher et ensuite avoir deux boutons pour le faire bouger dans le sens horaire ou anti-horaire?
#3
Posté 07 décembre 2014 - 11:27
Salut Taupiot_Jr,
Oui C est ma question car j ai plusieurs servos ,je précise je suis novice avec arduino donc je découvre et j apprend le langage.
A l heure actuel, exemple j utilise le bouton 1 pour le sens horaire et le bouton 2 pour l anti-horaire pour servo1
Je souhaiterai avoir, exemple:
Bouton 1 (servo1)
Bouton 2 (servo2)
Bouton 3 (servo3)
Bouton av rapide (horaire) d après sélection du servo
Bouton rt rapide (anti-horaire) d après sélection du servo.
Est ce possible, si oui pouvez vous m aider?
merci d avance.
#4
Posté 07 décembre 2014 - 12:19
Si oui alors il te faut au maximum 22 boutons (1 par servo et les deux de commande).
Sinon il existe d'autres solutions plus optimisées qui sont plus intéressantes.
Que préfères-tu essayer?
- Jean-luc83 aime ceci
#5
Posté 07 décembre 2014 - 03:48
Par la suite je vais devoir utiliser des electrovannes,j ai vu qu il y a des des cartes relais arduino , mais pour le moment j ai vraiment besoin pour mes trois servos.
Je suis curieux donc proposez toujours!
#6
Posté 07 décembre 2014 - 04:20
1. Un bouton par servo
2. Deux switches
Il en existe certainement d'autres auxquelles je ne pense pas en ce moment..
Donc, quelques détails sur chacune des solutions proposées:
1. Un bouton / servo. Plus simple pour un nombre faible se servos et peu cher.
2. Deux switches, tu dispose donc d'un nombre de possibilités de 2^2 = 4 servos avec.
A toi de voir ce que tu as en stock, ce qui est plus adapté à ton projet ou ce qui te plaît le plus
Si tu as d'autres questions, n'hésite pas!
#8
Posté 07 décembre 2014 - 05:08
Il te faut 5 boutons, des résistances et du fil. Avec ça tu peux brancher tes boutons sur les entrées de ton Arduino et contrôler tes servos.
Apparemment tes servos sont de petits consommateurs. Donc si leur consommation totale est inférieure à 500 mA normalement c'est bon. Les points à contrôler sont la consommation totale des servos, le courant max que peut fournir la patte d'alimentation de ton Arduino et les valeurs des résistances à mettre en série avec tes boutons
#9
Posté 07 décembre 2014 - 05:19
Mais je n arrive pas à le faire dans mon programme car je ne trouve pas de doc dessus...
Peux tu M aider pour le programme.
#10
Posté 07 décembre 2014 - 07:50
Tu as déjà une télécommande et tu veux contrôler tes servos avec?
Dans ce cas, quel type de télécommande est-ce?
Pourrais-tu éclaircir plus précisément ce que tu veux, avec quels moyens?
C'est plus facile de t'aider avec toutes les infos
#11
Posté 07 décembre 2014 - 08:14
#define TOUCHE_On/Off 16753245
#define TOUCHE_MENU 16769565
#define TOUCHE_TEST 16720605
#define TOUCHE_PLUS 16712445
#define TOUCHE_Annuler 16761405
#define TOUCHE_Retour rapide 16769055
#define TOUCHE_Lecture 16754775
#define TOUCHE_Avance rapide 16748655
#define TOUCHE_0 16738455
#define TOUCHE_MOINS 16750695
#define TOUCHE_C 16756815
#define TOUCHE_1 16724175
#define TOUCHE_2 16718055
#define TOUCHE_3 16743045
#define TOUCHE_4 16716015
#define TOUCHE_5 16726215
#define TOUCHE_6 16734885
#define TOUCHE_7 16728765
#define TOUCHE_8 16730805
#define TOUCHE_9 16732845int brocheRecepteur = 3;
int brocheLED = 13;#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
int pos = 0;#include <IRremote.h>
IRrecv monRecepteur(brocheRecepteur);
decode_results serieImpulsions;unsigned long codeTouche = 0;
void setup()
{
servo1.attach(10);
servo2.attach(9);
servo3.attach(8);
pinMode(brocheRecepteur, INPUT);
pinMode(brocheLED, OUTPUT);
monRecepteur.enableIRIn();
Serial.begin(9600);
}void loop()
{
if ( monRecepteur.decode( &serieImpulsions ) )
{
codeTouche = serieImpulsions.value ;
monRecepteur.resume();
}if ( codeTouche == TOUCHE_8 )
{
digitalWrite( brocheLED, HIGH );
}
if ( codeTouche == TOUCHE_9 )
{
digitalWrite( brocheLED, LOW );
}
if ( codeTouche == TOUCHE_1 )
{
for(pos = 0; pos <= 180; pos += 1)
{
servo1.write(pos);
delay(15);
}
for(pos = 180; pos>=0; pos-=1)
{
servo1.write(pos);
delay(15);
}
}
if ( codeTouche == TOUCHE_2 )
{
servo2.write(180);
delay(1000);
servo2.write(90);
delay(1000);
servo2.write(0);
}
if ( codeTouche == TOUCHE_3 )
{
servo3.write(0);
delay(1000);
servo3.write(90);
delay(1000);
servo3.write(180);
}
}
#12
Posté 07 décembre 2014 - 08:25
Je ne trouve pas de documentation sur la télécommande pour pouvoir faire ce que je veux donc je demande de l aide pour comprendre et faire le changement nécessaire sur le programme.
Je reste à ta disposition s'il te faut autre chose pour m'expliquer.
#13
Posté 07 décembre 2014 - 09:30
#14
Posté 07 décembre 2014 - 11:21
Okay, visiblement tu utilises une télécommande infrarouge et la librairie IRemote.
Apparemment cela fonctionne puisque tu as pu lire les valeurs de chaque touche, c'est juste?
Ensuite, le code que tu as uploadé fonctionne? Si oui, alors il te faut réfléchir a une solution qui te permette d'exécuter ta volonté
Tu pourrais créer une fonction qui te permette de contrôler le servo X. Avec une fonction switch tu pourrais choisir le servo et ensuite dans le case donner les infos du servo à la fonction de contrôle.
La fonction pourrait être controlServo(avec en paramètre le servo à contrôler). Ensuite tu écris à l'intérieur de cette fonction le code permettant de contrôler le servo selon les deux touches avance et retour rapide (puisque se sera le même code pour n'importe quel servo, tout ce qui change c'est de savoir quel est le servo à contrôler, chose que l'on saura par le paramètre donné).
#15
Posté 08 décembre 2014 - 07:33
Merci pour le temps que tu m'accordes, oui ma télécommande fonctionne et oui ce code fonctionne, comme j ai dit dans les messages précédents, j aimerais réussir à attribuer chaque servo sur les touche 1 , 2, 3 et réussir à les faire bouger d un pas de 1 dans les deux sens selon av et rt rapide.
Je vais chercher une explication concernant le switch sur le site arduino car j aime apprendre et comprendre. Il me semble que j ai déjà vu sur certains codes ce fameux switch avec case et break.
Par la suite je vais essayer de faire un code avec la fonction switch et si je n y arrive pas , pourrions nous faire ensemble un exemple que je puisse utiliser par la suite pour faire mon code?
en tout cas merci.
#16
Posté 08 décembre 2014 - 10:11
Fais quelques essais et fait nous part de tes problèmes et de tes solutions.
Si tu restes bloqué on pourra essayer d'écrire un code d'exemple qui te parleras
Bon travail
#17
Posté 09 décembre 2014 - 08:16
#18
Posté 16 décembre 2014 - 09:17
Je pensais que c était plus simple que ça mais non je suis face à un mur à cause de mon inexpérience dans ce domaine.
J ai vraiment besoin d aide sur ce coup là,si t es toujours ok merci de M aider.
#19
Posté 16 décembre 2014 - 09:23
Oui bien sûr, qu'est-ce qui te bloque exactement?
As-tu compris le fonctionnement du switch.. Case? Et as-tu réussi à l'appliquer dans un petit exercice?
#20
Posté 16 décembre 2014 - 09:58
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users