Código de búsqueda

Proyecto fácil de Arduino: Controla un servo con un pulsador de 180 grados a 0 y de vuelta

Proyecto fácil de Arduino: Controla un servo con un pulsador de 180 grados a 0 y de vuelta

Introducción

Este artículo explica un proyecto sencillo de Arduino que utiliza un pulsador para controlar un servomotor. Un servomotor es un motor preciso que puede girar a una posición específica, lo que lo hace ideal para aplicaciones como robótica y automatización. Este proyecto hará que un servo se mueva de 0 a 180 grados cuando se presione un botón y regrese a 0 cuando se suelte.

Componentes del Proyecto y Conexiones

Necesitarás una placa Arduino, un servomotor y un pulsador.

Instrucciones de Conexión:

  • Servomotor: Conecta el cable de señal (generalmente amarillo/naranja) al pin 3 de Arduino, el cable de alimentación (rojo) a 5V y el cable de tierra (negro/marrón) a GND.
  • Pulsador: Conecta una pata al pin digital 2 y la otra pata a un pin de GND. ¡Eso es todo! Al usar la resistencia pull-up interna de Arduino, no necesitas una resistencia externa.

 

El Código Explicado

El programa se divide en tres partes principales: las definiciones de pines, la función setup() y la función loop().

Definiciones de Pines

Esta sección configura las bibliotecas necesarias y asigna nombres significativos a los pines que estás utilizando.

#include <Servo.h>

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

Servo myServo;

La Función setup()

La función setup() contiene código que se ejecuta solo una vez cuando la placa Arduino se enciende o se reinicia. Se utiliza para la configuración inicial.

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

El cambio crucial es pinMode(buttonPin, INPUT_PULLUP);. Esto activa una resistencia interna que eleva el voltaje del pin a HIGH. Cuando presionas el botón, este conecta el pin a tierra y el voltaje baja a LOW.

La Función loop()

La función loop() contiene la lógica principal del programa y se ejecuta repetidamente para siempre después de que la función setup() haya terminado.

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

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

La lógica aquí ahora está invertida. Dado que la presión del botón resulta en una señal LOW, la condición if (buttonState == LOW) se utiliza para mover el servo a 180 grados.

Imágenes

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
Idioma: 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);
  }
}

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.