Cerca codice

Progetto Arduino Facile: Controlla un Servo con un Pulsante da 180 gradi a 0 e ritorno

Progetto Arduino Facile: Controlla un Servo con un Pulsante da 180 gradi a 0 e ritorno

Introduzione

Questo articolo spiega un semplice progetto Arduino che utilizza un pulsante per controllare un servomotore. Un servomotore è un motore di precisione che può ruotare in una posizione specifica, rendendolo ideale per applicazioni come robotica e automazione. Questo progetto farà muovere un servo da 0 a 180 gradi quando viene premuto un pulsante e tornerà a 0 quando viene rilasciato.

Componenti del Progetto e Cablaggio

Avrai bisogno di una scheda Arduino, un servomotore e un pulsante.

Istruzioni di Cablaggio:

  • Servomotore: Collega il cavo del segnale (solitamente giallo/arancio) al pin 3 di Arduino, il cavo di alimentazione (rosso) a 5V e il cavo di terra (nero/marrone) a GND.
  • Pulsante: Collega un terminale al pin digitale 2 e l'altro terminale a un pin GND. Tutto qui! Utilizzando la resistenza di pull-up interna di Arduino, non hai bisogno di una resistenza esterna.

 

Il Codice Spiegato

Il programma è suddiviso in tre parti principali: le definizioni dei pin, la funzione setup() e la funzione loop().

Definizioni dei Pin

Questa sezione configura le librerie richieste e assegna nomi significativi ai pin che stai utilizzando.

#include <Servo.h>

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

Servo myServo;

La Funzione setup()

La funzione setup() contiene codice che viene eseguito solo una volta quando la scheda Arduino viene accesa o resettata. Viene utilizzata per la configurazione iniziale.

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

Il cambiamento cruciale è pinMode(buttonPin, INPUT_PULLUP);. Questo attiva una resistenza interna che porta la tensione del pin a HIGH. Quando premi il pulsante, questo collega il pin a terra e la tensione scende a LOW.

La Funzione loop()

La funzione loop() contiene la logica principale del programma e viene eseguita ripetutamente per sempre dopo che la funzione setup() è terminata.

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

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

La logica qui è ora invertita. Poiché la pressione del pulsante produce un segnale LOW, la condizione if (buttonState == LOW) viene utilizzata per muovere il servo a 180 gradi.

Immagini

Arduino wiring for Servo motor with a push button
Arduino wiring for Servo motor with a push button
795-Ardunino code to control servo motor using a push button to move between 180 and zero degree
Lingua: 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);
  }
}

Cose di cui potresti avere bisogno

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Nessun file disponibile.