Nouvelles:

25/06/2023 : Mise à jour du forum. En cas de bug, merci de contacter le Grand Sachem

Menu principal

Télécommande Infrarouge et Arduino

Démarré par PETER41, 21 Novembre 2016 à 17:52:48

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

PETER41

 Bonjour à tous,

Un membre du FabLab de Blois avait réalisé la commande d'une bande de Leds RGB (changement des couleurs entre autre) par l'intermédiaire d'une télécommande infrarouge de base et pas chère.
Pour ma part j'ai donc réalisé la commande de mon pont transbordeur, mais cela je vous l'expliquerais plus tard.
Je vais donc vous montrer que vous pouvez commander ce que vous voulez (ou presque) avec une télécommande de ce type avec un Arduino.
Première étape : Comment utiliser cette télécommande avec un Arduino.
Matériel nécessaire :
Achat sur (par exemple) : http://stores.ebay.fr/LED-Megashop/Arduino-/_i.html?_fsub=5904793013&_sid=290269103&_trksid=p4634.c0.m322
-          Arduino Uno ou compatible : moins de 7 €. Il faudra installer avant d'utiliser un driver spécifique à cette carte mais ce n'est pas difficile. sur le site de ce vendeur vous avez le lien pour télécharger le fichier ad hoc.
-          Télécommande et son kit capteur infrarouge: moins de 5 €
-          Plaque de câblage avec 65 fils : moins de 10 €
Avec les frais d'envoi cela vous fera moins de 22 € !

Afin de ne pas surcharger ce sujet, avec plein de photos et commentaires,  j'ai réalisé un tuto spécifique pour cette étape.
Je vous invite à télécharger ces fichiers et de les imprimer (c'est vous qui voyez !).
D'ici quelques jours je vous montrerais ce que vous pouvez commander avec ce genre de télécommande ... un peu de patience.
Vous rencontrez des soucis, n'hésitez pas je ferais en sorte d'y répondre rapidement.
Arduinotement vôtre.
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

PETER41

Suite du tuto à télécharger
Arduinotement vôtre.
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

PETER41

Re à tous,
Avec un peu d'acharnement j'ai réussi à vous faire un ficher de la totalité du tuto en PDF. ::)
Donc plus simple à imprimer et à lire. :AA

Bonne découverte et à très bientôt pour la suite.
Arduinotement vôtre.
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

BLRC45

Bonsoir à tous,

Merci Pierre pour ce tuto de grande qualité et surtout en format Pdf, c'est un truc auquel je suis extrêmement favorable, parfois il arrive que certains forumeurs disent avoir des difficultés à ouvrir des fichiers en format Docx alors que le Pdf est quasiment universel et ne pose en principe pas de problèmes.

La preuve, ton document est "top" dans ce format Pdf.  :D

A vous autres amis du forum,

Je vous avais prévenus.....  ;)

Citation de: BLRC45 le 14 Novembre 2016 à 17:34:02

Bien plus sérieusement, ce gars là fait des merveilles   :D .....


Mais voilà, pas uniquement dans la découpe carton, car le garçon officie également dans bien d'autres domaines techniques qui peuvent tous nous intéresser et il nous les fera découvrir je pense.

Ne vous étonnez donc pas de voir Pierre nous proposer de temps à autres quelques "petites bricoles" (Pierre ceci n'étant pas du tout péjoratif, bien au contraire  ;)  ) dignes d'intérêt.  :D

Cordialement à tous,

A bientôt Pierre,

Christian

Christian
Membre AMFC-Orléans

PETER41

Bonjour à tous,
Merci Christian.
Je vous mets le  programme de ce que j'appelle l'étape 1, surtout si vous avez téléchargé le document au format PDF ou il est quasiment impossible d'effectuer un copier coller.
Je ferais cela pour la suite de cet apprentissage. Ce fichier est au format TXT car il est donc facilement "ouvrable" par n'importe quel logiciel de traitement de texte dont le bloc note.
Il est alors très facile d'effectuer le copier coller.
Indiquez moi si je mets suffisamment de commentaire sur mes programmes. C'est normalement pour vous faire comprendre ce que l'on doit mettre et cela s'adresse plus particulièrement pour les débutants.

Bonne programmation.
Arduinotement vôtre.
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

Ph Blondé

Bonjour Pierre,
D'abord merci de partager cette réalisation. C'est dans l'esprit "open"  :D
Je viens de terminer la programmation de ma gare cachée. Dès contrôle de fonctionnement positif, je place cela sur le forum.
A Orléans beaucoup de rencontres enrichissantes avec des "Arduinistes" ;).
Philippe Blondé
Un 59 dans le 22

PETER41

Bonjour à tous,
Nous allons aborder la deuxième étape.
Voici maintenant ce que vous pourriez commander avec cette télécommande :

1-    Provoquer l'allumage et l'extinction de lampes, mieux de leds :

       
  • a.    Allumage extinction de base,
  • b.    Allumage et extinction progressive comme s'il y avait un variateur de lumière,
  • c.    Allumage avec des séquences comme une rampe lumineuse (chenillard), animation comme une croix de pharmacie, un feu tricolore,
  • d.    Etc ...
2-    Commande d'un relais afin de pouvoir alimenter un récepteur très « puissant »,
3-    Commande d'un servomoteur,
4-    Commande d'un moteur à courant continu (vitesse et sens de rotation),
5-    Et plein de chose encore ....
L'intérêt c'est que vous soyez en réseau analogique ou numérique , ce que vous commandez est totalement indépendant.
Je vous propose de voir cela progressivement.
Aujourd'hui l'objectif est de commander deux leds avec la télécommande :

       
  • -          La touche 0 pour éteindre la led 1 et la led 2,
  • -          La touche 1 pour allumer la led 1 (rouge),
  • -          La touche 2 pour allumer la led 2 (verte).
Avec la manip de l'étape précédente vous avez pu récupérer au moins ces trois codes :
Pour ma télécommande les codes relevés (en décimal car le code est plus facile à taper !) sont :

       
  • -          Touche 0 : 16738455
  • -          Touche 1 : 16724175
  • -          Touche 2 : 16718055
Les leds seront raccordées aux bornes de la carte Arduino respectivement en :

       
  • -          Led 1 (rouge) : broche 3
  • -          Led 2 (verte) : broche 4
Le schéma de câblage est en fichier joint : la valeur des résistances 220 Ohms
 
Remarque importante : Selon votre capteur infrarouge le câblage des broches peut être différent. Bien identifier votre capteur avant de mettre sous tension.
Remarque « recyclage » : Si vous aimez récupérer du matériel électronique, vous pouvez très bien récupérer un récepteur infrarouge d'un magnétoscope (par exemple).
Maintenant il faut effectuer la programmation de ce que vous ai proposé.
// Commander deux leds avec une télécommande IR

#include <IRremote.h>

int IR = 11; // Récepteur IR en broche 11
int ledV =  3; // led rouge en broche 3
int ledR =  4; // led verte en broche 4
IRrecv RCEP(IR);

decode_results RIR; //

void setup()
{
  Serial.begin(9600); // permet de vérifier sur le moniteur série si le code de la touche est le bon
  // sinon cette ligne n'est pas nécessaire
  RCEP.enableIRIn(); // Commencement de la réception
  pinMode(ledV, OUTPUT);
  pinMode(ledR, OUTPUT);
}

void loop()
{
   if (RCEP.decode(&RIR)) // si il y a une réception sur le capteur
  {
  Serial.println(RIR.value, DEC); // vérification du code de la touche actionnée sur le moniteur série
  // sinon cette ligne n'est pas nécessaire
     if (RIR.value == 16738455) // si touche 0 actionnée
    {
     digitalWrite(ledV, 0);   // Les LED s'éteignent
     digitalWrite(ledR, 0);
    }
   
    if(RIR.value == 16724175) // si touche 1 actionnée
    {
    digitalWrite(ledV, 1);   // La LED verte s'allume
   }
   
    if(RIR.value == 16718055) // si touche 2 actionnée
    {
      digitalWrite(ledR,1);   // La LED Rouge s'allume
     }
   RCEP.resume(); // Réception de la prochaine valeur
     
  }
}

Ce programme est aussi mis au format .TXT afin que vous puissiez le télécharger et faire un copier coller dans le logiciel Arduino
Ce tuto est aussi mis en PDF que vous pouvez télécharger.
Des interrogations, n'hésitez pas je ferais en sorte de vous répondre le plus rapidement.
Ardiunotement vôtre

Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

PETER41

 Bonjour à tous.
Aujourd'hui je vous propose, toujours avec la télécommande infrarouge, de commander :
1- L'allumage et l'extinction du led progressivement,
2- Commander un petit moteur électrique à vitesse variable.
Première partie :
L'Arduino possède des sorties qui sont utilisables en analogique (mais aussi en numérique tout ou rien). Comme cela nous allons pouvoir faire « varier la tension » aux bornes d'une led et ainsi faire varier sa luminosité.

Le seul changement par rapport au montage précédent c'est qu'il faut IMPÉRATIVEMENT utiliser une broche de l'Arduino qui possède une sortie analogique (on dit PWM).
Aujourd'hui l'objectif est de commander une led avec la télécommande :
          - La touche 0 pour éteindre la led,
          - La touche 1 pour allumer la led progressivement (action momentanée sur la touche),
          - La touche 2 pour éteindre la led progressivement (action momentanée sur la touche).
Avec la manip de l'étape précédente vous avez pu récupérer au moins ces trois codes. Pour ma télécommande les codes relevés sont :
          * Touche 0 : 16738455
          * Touche 1 : 16724175
          * Touche 2 : 16718055
La led sera raccordée à une des bornes PWM : broche 5
Plus d'informations dans le fichier à télécharger : Télécommande infrarouge et Arduino E3.pdf

Deuxième partie :
Vous avez peut être envie de commander un moulin à eau, une éolienne (certes le mouvement sera produit par un petit moteur à courant continu).
J'ai pensé qu'il serait bien de faire varier la vitesse de ce moteur au moment du démarrage et aussi au moment de l'arrêt. C'est un peu le même principe que pour la led.
Mais car il y a un mais ... L'intensité que délivre un Arduino n'est pas suffisante pour alimenter un moteur.
Il est nécessaire de mettre en place un amplificateur.
Deux solutions :
          - Utiliser un transistor MOSFET
          - Utiliser un circuit intégré adapté à cette réalisation : L293D
  Les explications seront dans le prochain article.

Aujourd'hui l'objectif est de commander un petit moteur courant continu 12V avec la télécommande :
          * La touche 0 pour arrêter le moteur avec un ralentissement (action momentanée sur la touche) en 2.5 secondes,
          * La touche 1 démarré le moteur progressivement (action momentanée sur la touche) en 5 secondes.
Avec la manip de l'étape précédente vous avez pu récupérer au moins ces 2 codes :
Pour ma télécommande les codes relevés sont :
           - Touche 0 : 16738455
          - Touche 1 : 16724175
La sortie de l'Arduino sera une des bornes PWM : broche 5.

Trois fichiers sont téléchargeables :

1- Document plus complet qui explique les deux exercices avec des images cette réalisation,
2- Les deux programmes Arduino, comme cela vous n'aurez rien à programmer, simplement à comprendre ce qui est programmé.
Des questions, des interrogations, n'hésitez pas. Je ferais en sorte d'y répondre rapidement.  :)

Arduinotement vôtre.
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

Philippe de l Est

Ah ah...

Philippe, de l'Est
  n'est ce pas, Philippe de l'Ouest
Je l'ai fait parce que je ne savais pas que c'était impossible de le faire !

Ph Blondé

#9
Citation de: Philippe de l Est le 19 Janvier 2017 à 19:49:08
Ah ah...

Philippe, de l'Est
  n'est ce pas, Philippe de l'Ouest
C'est fait  ;)
Prochain article et ... montage prochainement pour les non-numérisés  :)) :))
Les  :)) :)) ne sont pas pour se moquer mais parce que le titre de Peter41 tombe en même temps que ce que je fais ; enfin, presque
Philippe Blondé
Un 59 dans le 22

Philippe de l Est


Pareil pour mes Ah ah : point ironique, mais de surprise que le monde se pose la même question aux mêmes instants !

Philippe, de l'Est
Je l'ai fait parce que je ne savais pas que c'était impossible de le faire !

PETER41

 Bonjour à tous.
Aujourd'hui je vous propose, toujours avec la télécommande infrarouge, de commander un moteur à courant continu dans les deux sens de rotation et avec variation de sa vitesse.
Matériel spécifique nouveau : le pont en H.
Je vous rassure ce n'est pas « Hachement » dur !  :'(
Vous aurez pleins d'information en téléchargement le document au format PDF avec beaucoup d'explications que j'espère très claires.  O:-)
Ce composant est nécessaire afin de pouvoir commander les deux sens de fonctionnement. Cela à été le cas pour mon pont transbordeur (consulter mon blog si vous le souhaitez : rubrique « Arduino » article « Pont transbordeur et Arduino »).
Le choix du composant : vaste question ... ::)
Pour faible simple voici ce qu'il est possible de trouver :

       
  • Soit un circuit intégré (L 293D) qu'il faudra câbler sur une plaque de circuit imprimé (ou à bandes) : le circuit ci-dessous est limité à 600 mA par sortie (donc ne pas dépasser 600 mA pour un moteur). Bien connaître les caractéristiques du moteur avant de choisir cette solution,
  • Soit un circuit déjà câblé qu'il faudra raccorder par des bornes à vis à une alimentation, à un Arduino et au moteur. Ici c'est un circuit L 298 N. Ici le courant max est de 2A par sortie.
Dans les deux cas ce sont des  doubles ponts en H, ce qui permet de raccorder deux moteurs à courant continu (ou un seul moteur pas à pas, mais cela est un autre sujet).
Pour ma part j'ai utilisé la deuxième solution.


       
  • Raccordements à l'Arduino :
Les sorties :
Pour notre application il n'y aura qu'un seul moteur. Il faut que l'Arduino donne les informations nécessaires pour que le pont en H :

       
  • Fasse tourner le moteur dans le sens choisi : deux sorties numériques,
  • Fasse tourner le moteur à la vitesse choisie : une sortie analogique PWM.
L'entrée : borne 11

       
  • La touche 0 pour arrêter le moteur rapidement (seule l'inertie mécanique donnera un délai),
  • La touche 1 pour faire tourner le moteur dans le sens 1 avec un démarrage sur 5 secondes (action momentanée sur la touche),
  • La touche 2 pour faire arrêter le moteur dans le sens 1 avec un arrêt sur 8 secondes (action momentanée sur la touche),
  • La touche 4 pour faire tourner le moteur dans le sens 1 avec un démarrage sur 5 secondes (action momentanée sur la touche),
  • La touche 5 pour faire arrêter le moteur dans le sens 1 avec un arrêt sur 8 secondes (action momentanée sur la touche),
Remarque : le changement de sens ne pourra voir lieu que si le moteur est arrêté totalement.


Le montage d'essai est alors le suivant : voir le fichier joint en jpg
Vous constaterez facilement que le câblage est très réduit :

       
  • Pas de diode en parallèle du module car il y a déjà cela sur le circuit.
  • L'Arduino est alimenté par le pont en H.
Le programme téléchargeable est : essai_cde_IR4_pour_ES.ino



Sauf erreur de câblage vous devriez avoir le fonctionnement que j'ai expliqué.  :)



Des questions, des interrogations n'hésitez pas à me passer un message je ferais en sorte d'y répondre le plus rapidement.
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

PETER41

Bonjour à tous,
Petite précision sur le pont en H utilisé dans le message précédent.
Ci joint une documentation que j'ai traduit à la louche.
Pour ceux qui s'y connaisse mieux que moi, je vous pose la question suivante :
Sur l'Arduino UNO il y a une borne marqué 5V.  J'avais compris (et j'ai vérifié cela avec le montage précédent) que c'était une sortie 5V qui permet donc d'alimenter (modestement) des composants tel que des capteurs.
Mais est-il possible d'alimenter l'Arduino par cette borne (avec bien sur la borne GND !) ?
C'est ce que j'ai trouvé dans cette documentation (page 2/4 écriture en bleue). Cela me semble bizarre ...
Merci de m'éclairer.
Arduinotement vôtre
Pierre
3 rails, commande numérique, blog : http://train-train41.eklablog.com/accueil-c26076176, Centrale Märklin CS2, Logiciel gestion train iTrain

Ph Blondé

Citation de: PETER41 le 24 Janvier 2017 à 13:50:48
Sur l'Arduino UNO il y a une borne marqué 5V.  J'avais compris (et j'ai vérifié cela avec le montage précédent) que c'était une sortie 5V qui permet donc d'alimenter (modestement) des composants tel que des capteurs.
Mais est-il possible d'alimenter l'Arduino par cette borne (avec bien sur la borne GND !) ?
Pierre
Les trois points d'alimentation d'une carte UNO sont :
- La prise USB pour 5v.
- La prise jack pour 12v ; en pensant toujours que la différence entre cette tension et le 5v s'en va plus ou moins en chaleur suivant le courant demandé et que le régulateur interne n'est pas refroidi par un radiateur.
- La broche Uin pour 12v avec la même réserve que la prise jack ; il vaut mieux lui mettre du 5/6v.
Donc NON la broche 5v n'est pas une entrée d'alimentation.

Au niveau des alimentations 5v, il y en a d'excellentes chez Tchong et qui présentent même un affichage de la tension de sortie.
Philippe Blondé
Un 59 dans le 22

Ph Blondé

Citation de: PETER41 le 24 Janvier 2017 à 13:50:48
Bonjour à tous,
Petite précision sur le pont en H utilisé dans le message précédent.
Pierre
Le pont en H est quelque chose d'un peu particulier pour celui qui débute.
Une explication simple sur http://eskimon.fr/285-arduino-601-le-moteur-courant-continu au paragraphe "Tourner dans les deux sens : le pont en H".
Philippe Blondé
Un 59 dans le 22