07- Utiliser le servomoteur Arduino
Tutoriel : Découvrir et apprendre à coder avec Arduino Ide grâce au servomoteur SG90 de votre kit
💡Ce tutoriel n°7 vous permettra d'apprendre à utiliser le servomoteur sg90 en appuyant sur un bouton grâce à votre carte Arduino.
Vous ne savez pas encore comment utiliser l'IDE Arduino ? Rendez-vous sur notre tutoriel dédié pour apprendre à à coder avec l'IDE Arduino .🧐
Enfin, pour acheter le kit Arduino au meilleur prix qui vous permettra de faire d'incroyables montages électroniques, cliquez ci-dessous.
Le matériel de votre kit électronique Arduino nécessaire pour ce tutoriel :
Quelques rappels avant de commencer
Pourcâbler votre servo moteur à votre carte électronique, vous aurez besoin d'un certain nombre de composants standards que vous devez maintenant commencer à connaître. 🔌
La Breadboard
🥖 Des explications détaillées sur ce composant sont développées dans ce tutoriel sur la breadboard. Nous allons seulement rappeler une information utile pour ce tutoriel : le sens de passage de l'électricité. ➡️
L'image ci-dessous vous montre comment les différents trous sont connectés entre eux.
A noter : chaque côté de la breadboard est totalement indépendant de l'autre. Lorsque vous ferez votre schéma électrique, il vous faudra donc mieux utiliser un côté seulement pour ne pas avoir de mauvaise surprise.
La carte Arduino
Nous en sommes au 7è tutoriel, vous devriez donc mieux connaître votre carte Arduino que vos tables de multiplications. Si malgré tout vous souhaitiez un petit rattrapage, allez voir ce tutoriel de découverte de d'Arduino.
Le bouton
Rappelez-vous que le bouton de votre kit électronique est livré en deux morceaux.
Il ne vous restera qu'à clipser le chapeau rouge sur le socle pour assembler votre bouton.
Etape 1 - Monter votre servomoteur sg 90 🛠️
Lorsque vous recevez votre kit électronique le servomoteur et vos hélices seront en plusieurs parties :
Vissez une hélice sur le servomoteur à l'aide d'un tournevis adapté. 🔩
Votre servomoteur est maintenant monté nous allons pouvoir passer au câblage !
Bravo, le câblage électrique est maintenant terminé ! Vous allez pouvoir attaquer le codage des instructions pour faire tourner votre servomoteur 🤴🏻
Etape 2 - Le câblage
Vous trouverez ci-dessous le schéma électronique que nous vous recommandons
Un petit rappel avant de tout faire cramer 🔥 Votre carte Arduino est sensible : pensez donc à faire tout votre montage et à le vérifier avant de le brancher avec le câble USB
Etape 3 - Inclure la library Servo.h
Le servomoteur requiert certaines fonctions spécifiques pour fonctionner. Ces fonctions sont complexes à programmer et difficiles à comprendre pour un débutant. Heureusement Arduino est gentil, et vous propose ces fonctions toutes faites dans les Bibliothèques (library).
Aujourd'hui, nous allons utiliser la library "Servo.h" pour inclure les instructions spécifiques "servo" dans le code.
Voici comment faire pour inclure la library Servo.h :
Commencez par ouvrir le logiciel Arduino
Cliquez ensuite sur le bouton "Croquis" dans la barre supérieure
Puis cliquez sur " inclure une bibliothèque"
Et enfin, sélectionnez "Servo" dans la longue liste déroulante qui s'affiche :
Super ! Désormais, vous allez pouvoir utiliser les fonctions spécifiques d'Arduino pour utiliser le Servomoteur SG90. Et maintenant, il est temps de commencer enfin, le code..
Etape 4 - Le code à mettre avant le setup
Un code Arduino a toujours la même structure : un "setup", suivi d'un "loop". Chacun de ces parties va exécuter une suite d'instructions qui sont placées entre accolades { et }.
Le "setup" est exécuté une fois seulement lors du démarrage de votre Arduino. C'est ici que nous allons configurer les pins, initialiser les variables, etc..
C'est alors que le "loop" commence. Chacune des lignes du loop est exécutée une par une, puis lorsqu'on arrive à la dernière, on reprend à la première ligne du loop, et ainsi de suite. 🔄
L'instruction include
Lorsque vous avez inclu la library Servo.h tout à l'heure, vous avez dû voir un nouvelle ligne s'intégrer à votre code Arduino. C'est tout à fait normal, et il faut absolument la conserver.
#include <Servo.h>
Vous devriez voir cette ligne avant la partie setup :
Ensuite il faut déclarer votre servomoteur pour pouvoir l'utiliser dans les fonction suivantes, ici le servomoteur sera nommé "monservo" :
La déclaration int
Afin de déclarer le pin de la carte électronique, c'est à dire le numéro de pin d'où partiront et arriveront les signaux nous allons utiliser le type "int". Cela signifie associer un nombre entier (qui sera le numéro de la pin) à un nom de variable. Ici nous associerons à la pin 7 le bouton et au pin 4 le servomoteur.
Nous allons donc écrire ces lignes, au dessus de la fonction setup 📝 :
Voici le code que vous devriez obtenir avant la partie setup :
Etape 5 - Le code de la partie setup
La fonction pinMode
La fonction pinMode nous sert à établir la communication entre la Arduino et les composants. Pour cela nous allons lui dire quels seront les pins où elle donnera des instructions et quels seront les pins où elle devra envoyer des instructions.
La fonction pinMode signifie que vous allez assigner une fonction à une pin de votre Arduino.
- OUTPUT veut dire que vos instruction vont sortir de la Arduino, que vous allez donner des ordres.
- INPUT veut dire que nous allons recevoir des informations.
- INPUT_PULLUP signifie que nous ajoutons une résistance qui est dans la Arduino dans le circuit qui va recevoir les information de la matrice. Il est nécessaire d'ajouter une résistance ici et il est plus simple d'utiliser celle présente dans la Arduino.
Nous allons utiliser cette fonction pour dire à la Arduino de recevoir des informations du bouton tout en ajoutant une résistance.
Cela nous donne :
La fonction attach
La fonction attach est une fonction particulière de la bibliothèque Servo. Elle sert à renseigner sur quel pin est branché le servomoteur. Pour l'utiliser il faut renseigner deux informations :
- le nom du servomoteur utilisé que vous devez écrire avant la fonction, ici "monservo"
- le nom du pin utilisé, ici le "pin_servo"
Cela nous fait :
Vous devriez obtenir ce code pour la partie setup :
Etape 6 - Coder la boucle du void loop
Pour cette partie loop nous allons dire au servomoteur de faire une rotation de 180° si nous appuyons sur le bouton et sinon de revenir à sa position initiale. Pour arriver à cette fin nous utiliserons la fonction if - else.
L'ordre if - else 🔱
Pour cette boucle nous aurons besoin de la commande if - else du programme Arduino. If- else est essentiel pour observer si des conditions sont réunis et pour réaliser une autre commande si les conditions ne sont pas réunies. En effet, la partie if sera le code qui va s'appliquer dans le cas où les conditions que nous avons demandé sont réunies et la partie else contient le programme qui s'appliquera si les conditions ne sont pas réunies.
Pour ce tutoriel, notre objectif est de dire que si nos conditions sont réunies alors le servomoteur fera une rotation de 180° et sinon il se remettra, ou restera, à sa position initiale.
Pour commencer, il faut noter les conditions nécessaire pour que if s'applique. Pour cela il est nécessaire d'utiliser l'instruction digitalRead. Cette instruction sert à connaitre la tension des pins, nous permettant alors de lire le pin HIGH ou LOW. Elle est absolument nécessaire pour savoir si une pression est mise sur le composant bouton.Ainsi lorsque vous mettrez votre doigt sur le bouton le pin sera lue comme LOW et, dans le cas contraire, le pin apparaitra HIGH.
Attention si vous avez besoin d'un rappel pour savoir la différence entre le symbole "==" et le symbole "=", je vous conseille de revoir le tutoriel bouton buzzer
Ce que vous devez obtenir pour l'ouverture de l'instruction if :
La fonction write
Pour dire au servomoteur de bouger nous utilisons la fonction write.
La fonction write est une fonction particulière de la bibliothèque Servo. Elle sert à dire au servomoteur sg 90 d'effectuer une rotation. Pour l'utiliser il faut renseigner deux conditions :
- Nommer le servomoteur utilisé que vous devez écrire avant la fonction, ici "monservo"
- l'angle de rotation voulu, ici le bouton est LOW nous souhaitons donc que le servomoteur soit à sa position initiale, c'est à dire 0°
Ce qui fait :
La partie else
Il suffit de dire maintenant la rotation souhaitée lors d'une pression sur le bouton, dans cet exemple nous voulons qu'il tourne à 180°. 👇
🚨
Pour cela il suffit d'utiliser la fonction write comme ci-dessus
Votre code est maintenant complet il ne vous reste plus qu'à le téléverser et regarder le résultat !
Maintenant voici une synthèse du code à obtenir :
Attention ⚠️ N'oubliez pas d'ajouter la bibliothèque "Servo" et de rajouter la ligne de code :
Il faut mettre cette ligne de code avant la partie setup.
#include <Servo.h>
Vous avez tout votre code, il vous suffit de le passer dans la carte Arduino et d'observer si le servomoteur bouge quand une pression est exercée sur le bouton.
Si rien ne se produit, n'hésitez pas à relire votre code, c'est souvent dans le code que ce cache les difficulées de ce tutoriel⚡
Le servomoteur se met en mouvement dès qu'une pression est éxercée sur le bouton ? C'est absolument dingue ... Un tutoriel de plus a été finis avec brio ! 🌠
Impréssionant ce septième tutoriel ! 🤘 🖐️ Il est venu le moment de faire tourner un autre type de moteur plus puissant ! 🗜️.
Vous en bavez d'envie ? Appuyez votre sourie juste en dessous alors !