Code de recherche

Projet Arduino facile : Contrôler un servomoteur avec un bouton poussoir de 180 degrés à 0 et retour

Projet Arduino facile : Contrôler un servomoteur avec un bouton poussoir de 180 degrés à 0 et retour

Introduction

Cet article explique un projet Arduino simple qui utilise un bouton-poussoir pour contrôler un servomoteur. Un servomoteur est un moteur précis qui peut tourner vers une position spécifique, ce qui le rend idéal pour des applications comme la robotique et l'automatisation. Ce projet fera bouger un servo de 0 à 180 degrés lorsqu'un bouton est pressé et le fera revenir à 0 lorsqu'il est relâché.

Composants du projet et câblage

Vous aurez besoin d'une carte Arduino, d'un servomoteur et d'un bouton-poussoir.

Instructions de câblage :

  • Servomoteur : Connectez le fil de signal (généralement jaune/orange) à la broche 3 de l'Arduino, le fil d'alimentation (rouge) à 5V, et le fil de terre (noir/marron) à GND.
  • Bouton-poussoir : Connectez une patte à la broche numérique 2 et l'autre patte à une broche GND. C'est tout ! En utilisant la résistance de tirage interne de l'Arduino, vous n'avez pas besoin de résistance externe.

 

Le code expliqué

Le programme est divisé en trois parties principales : les définitions de broches, la fonction setup() et la fonction loop().

Définitions de broches

Cette section configure les bibliothèques requises et attribue des noms significatifs aux broches que vous utilisez.

#include <Servo.h>

const int servoPin = 3;
const int buttonPin = 2;

Servo myServo;

La fonction setup()

La fonction setup() contient du code qui ne s'exécute qu'une seule fois lorsque la carte Arduino est mise sous tension ou réinitialisée. Elle est utilisée pour la configuration initiale.

void setup() {
  myServo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
  myServo.write(0);
}

Le changement crucial est pinMode(buttonPin, INPUT_PULLUP);. Cela active une résistance interne qui tire la tension de la broche vers HIGH. Lorsque vous appuyez sur le bouton, il connecte la broche à la terre, et la tension chute à LOW.

La fonction loop()

La fonction loop() contient la logique principale du programme et s'exécute répétitivement pour toujours après la fin de la fonction setup().

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) {
    myServo.write(180);
  } else {
    myServo.write(0);
  }
}

La logique ici est maintenant inversée. Puisque l'appui sur le bouton entraîne un signal LOW, la condition if (buttonState == LOW) est utilisée pour déplacer le servo à 180 degrés.

Images

Câblage Arduino pour servomoteur avec un bouton poussoir
Câblage Arduino pour servomoteur avec un bouton poussoir
795-Ardunino code to control servo motor using a push button to move between 180 and zero degree
Langue: C++
#include <Servo.h>
/*
 * This is sketch for controlling servo motor. when push button is pressed, the servo moves to 180 degreees and stays there. when the push button is released, the servo motor returns back to 0 degree.
 */
 // Define the pin for the servo motor
const int servoPin = 3;
 // Define the pin for the push button
const int buttonPin = 2;

 // Create a Servo object
Servo myServo;

void setup() {
 // Attach the Servo object to the servo pin
  myServo.attach(servoPin);
 // Set the button pin as an input
  pinMode(buttonPin, INPUT);
 // Start the servo at 0 degrees
  myServo.write(0);
}

void loop() {
 // Read the state of the push button
  int buttonState = digitalRead(buttonPin);

 // If the button is pressed (HIGH)
  if (buttonState == HIGH) {
 // Move the servo to 180 degrees
    myServo.write(180);
  } else {
 // If the button is released (LOW), move the servo back to 0 degrees
    myServo.write(0);
  }
}

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.