Ce tutoriel fait partie de: servomoteurs
Vous trouverez ici une liste de toutes les vidéos relatives aux servomoteurs. D'autres liens vers ces vidéos sont disponibles plus bas.
Contrôler un servomoteur avec un potentiomètre et un écran LCD1602 à l'aide d'un Arduino
Dans ce tutoriel, nous apprendrons à contrôler un servomoteur à l'aide d'un potentiomètre et à afficher la valeur du potentiomètre ainsi que l'angle du servomoteur sur un écran LCD1602. Ce projet est un excellent moyen de combiner plusieurs composants et de comprendre comment ils peuvent fonctionner ensemble pour créer un système interactif. À la fin de ce tutoriel, vous disposerez d'un montage fonctionnel qui vous permettra d'ajuster l'angle du servomoteur à l'aide d'une molette tout en affichant simultanément les valeurs sur l'écran LCD.

Avant d'aborder le câblage et le code, il est utile de comprendre les composants que nous allons utiliser. Le potentiomètre joue le rôle d'une résistance variable qui peut ajuster la tension de sortie en fonction de sa position, que nous utiliserons pour déterminer l'angle du servomoteur. Le LCD1602 affichera la valeur actuelle du potentiomètre et l'angle correspondant du servomoteur. Vous pouvez consulter la vidéo (à 00:00) pour un guide visuel de l'ensemble du processus.
Le matériel expliqué
Les principaux composants que nous utiliserons dans ce projet sont :
- Carte Arduino :Cela servira de contrôleur pour l'ensemble du système, traitant les entrées du potentiomètre et contrôlant la position du servomoteur en fonction de ces entrées.
- Potentiomètre:Un potentiomètre de 10 kΩ sera utilisé pour fournir une entrée analogique à l'Arduino. Il a trois bornes : l'une reliée à 5 V, l'une à la masse et la borne centrale reliée à une entrée analogique (A0) de l'Arduino.
- Servomoteur:Ce servomoteur sera contrôlé en lui envoyant un angle en fonction de la position du potentiomètre. Le fil de signal se connecte à la broche numérique 9 de l'Arduino.
- Afficheur LCD1602:Cet écran affichera la valeur du potentiomètre et l'angle du servomoteur. Il se connecte à plusieurs broches numériques de l'Arduino pour la commande.
Le potentiomètre fonctionne en faisant varier la résistance et donc la tension à sa borne centrale, que l'Arduino lit comme une entrée analogique. Le servomoteur est commandé en lui envoyant un signal de modulation de largeur d'impulsion (PWM) spécifique correspondant à l'angle souhaité. L'écran LCD1602 utilise une bibliothèque qui nous permet de contrôler facilement son affichage et d'afficher des informations concernant le potentiomètre et le servomoteur.
Détails de la fiche technique
| Fabricant | divers |
|---|---|
| Numéro de pièce | LM016L |
| Tension logique/E/S | 5 V |
| Tension d'alimentation | 4,5 - 5,5 V |
| Courant de sortie (par canal) | jusqu'à 2 mA |
| Courant de crête (par canal) | 20 mA |
| Directives sur la fréquence PWM | 50 Hz |
| Seuils logiques d'entrée | 0,3 × Vcc(bas), 0.7 x Vcopie conforme(élevé) |
| Chute de tension / RDS(en conduction)/ saturation | 0,2 V max |
| Limites thermiques | 85 °C |
| Paquet | DIP à 16 broches |
| Notes / variantes | Afficheur de caractères 16x2 |
- Connectez la broche centrale du potentiomètre à la broche analogique A0.
- Assurez-vous que le servo est alimenté par une source de 5 V et connecté à la broche numérique 9.
- Utilisez la bibliothèque appropriée pour l'écran LCD et assurez-vous qu'elle est incluse dans votre IDE Arduino.
- Faites attention au câblage pour éviter les courts-circuits, surtout avec les connexions du servomoteur.
- Vérifiez que l'écran LCD est correctement initialisé dans le code pour éviter des problèmes d'affichage.

Instructions de câblage
Pour câbler les composants, commencez par connecter le potentiomètre. Connectez une broche extérieure du potentiomètre à la broche 5V de l'Arduino, et l'autre broche extérieure à la masse. La broche du milieu va à la broche analogiqueA0.
Ensuite, pour le servomoteur, connectez le fil brun ou noir à la masse, le fil rouge à la broche 5 V, et le fil jaune ou orange à la broche numérique9sur l'Arduino. Pour le LCD1602, connectez leVDDbroche vers 5 V,RWmettre à la terre, etV0à la broche centrale du potentiomètre pour le réglage du contraste. ConnectezRSépingler12,ENépingler11,D4épingler5,D5épingler4,D6épingler3, etD7épingler2.
Il est également recommandé d'inclure une résistance de 220 ohms en série avec la LED si vous en utilisez une, en la reliant à l'alimentation 5 V. De plus, un condensateur de 470 µF peut être connecté entre l'alimentation et la masse du servo pour filtrer les parasites pendant le fonctionnement.
Exemples de code et tutoriel pas à pas
Le code commence par inclure les bibliothèques nécessaires et initialiser les broches pour l'écran LCD et le servomoteur. L'extrait suivant montre la configuration de l'écran LCD et du servomoteur :
void setup() {
lcd.begin(16, 2);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Robojax Servo Knob");
delay(2000);
}Cet extrait initialise l'écran LCD pour 16 colonnes et 2 lignes, branche le servomoteur sur la broche 9 et affiche un message de bienvenue sur l'écran LCD. Lelcd.clear()La fonction garantit que tous les messages précédents sont supprimés.
Ensuite, la boucle lit en continu la valeur du potentiomètre et met à jour la position du servomoteur ainsi que l'affichage LCD :
void loop() {
val = analogRead(potpin); // reads the value of the potentiometer
angle = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
myservo.write(angle); // sets the servo position according to the scaled value
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pot. Value:");
lcd.setCursor(11, 0);
lcd.print(val);
lcd.setCursor(0, 1);
lcd.print("Angle :");
lcd.setCursor(11, 1);
lcd.print(angle);
delay(500);
}Cette boucle lit la valeur du potentiomètre, la convertit en un angle correspondant pour le servomoteur et met à jour l'écran LCD avec à la fois la valeur du potentiomètre et l'angle du servomoteur. Ledelay(500)à la fin de la boucle empêche l'affichage de se mettre à jour trop rapidement.
Démonstration / À quoi s'attendre
Lorsque vous mettez le système sous tension, l'écran LCD affichera "Robojax Servo Knob" pendant 2 secondes, puis la valeur du potentiomètre et l'angle du servo. En tournant le potentiomètre, l'angle du servo changera en conséquence et la nouvelle valeur du potentiomètre sera affichée sur l'écran LCD. Si vous constatez un comportement inattendu, comme un déplacement du servo dans le mauvais sens, vérifiez le câblage du potentiomètre et les connexions du servo (dans la vidéo à 10:00).
Ce tutoriel fait partie de: servomoteurs
- Contrôler un servomoteur avec des boutons-poussoirs à l'aide d'un Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Contrôler un servomoteur avec un potentiomètre à l'aide d'un Arduino
- Contrôler des servomoteurs à l'aide d'une télécommande infrarouge avec Arduino
- Contrôle de moteur servo Arduino à l'aide d'un potentiomètre
- Contrôle de la position du servo avec des gestes de la main pour Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Code Arduino et vidéo pour le contrôleur de servomoteurs PCA9685 16 canaux 12 bits V1
- Build an Arduino Servo Toggle Switch with a Push Button
Ressources et références
-
ExterneBibliothèque LCD1602 (de GitHub)github.com
-
ExterneUtiliser un écran LCD LCD1602 pour Arduinoyoutube.com
Fichiers📁
Aucun fichier disponible.