Código de Pesquisa

Projeto Arduino Fácil: Controle um Servo com um Botão de 180 graus a 0 e de volta

Projeto Arduino Fácil: Controle um Servo com um Botão de 180 graus a 0 e de volta

Introdução

Este artigo explica um projeto simples com Arduino que usa um botão de pressão para controlar um servomotor. Um servomotor é um motor preciso que pode girar para uma posição específica, sendo ideal para aplicações como robótica e automação. Este projeto fará um servo mover de 0 a 180 graus quando um botão for pressionado e retornar a 0 quando solto.

Componentes do Projeto e Conexões

Você precisará de uma placa Arduino, um servomotor e um botão de pressão.

Instruções de Conexão:

  • Servomotor: Conecte o fio de sinal (geralmente amarelo/laranja) ao pino 3 do Arduino, o fio de alimentação (vermelho) ao 5V e o fio terra (preto/marrom) ao GND.
  • Botão de pressão: Conecte uma perna ao pino digital 2 e a outra perna a um pino GND. Isso é tudo! Usando o resistor interno de pull-up do Arduino, você não precisa de um resistor externo.

 

O Código Explicado

O programa é dividido em três partes principais: as definições de pinos, a função setup() e a função loop().

Definições de Pinos

Esta seção configura as bibliotecas necessárias e atribui nomes significativos aos pinos que você está usando.

#include <Servo.h>

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

Servo myServo;

A Função setup()

A função setup() contém código que é executado apenas uma vez quando a placa Arduino é ligada ou reiniciada. É usada para configuração inicial.

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

A mudança crucial é pinMode(buttonPin, INPUT_PULLUP);. Isso ativa um resistor interno que puxa a tensão do pino para HIGH. Quando você pressiona o botão, ele conecta o pino ao terra, e a tensão cai para LOW.

A Função loop()

A função loop() contém a lógica principal do programa e é executada repetidamente para sempre após a função setup() ser concluída.

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

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

A lógica aqui agora está invertida. Como o pressionamento do botão resulta em um sinal LOW, a condição if (buttonState == LOW) é usada para mover o servo para 180 graus.

Imagens

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

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.