Search Code

Prosty projekt Arduino: Sterowanie serwem za pomocą przycisku 180 stopni do 0 i z powrotem

Prosty projekt Arduino: Sterowanie serwem za pomocą przycisku 180 stopni do 0 i z powrotem

Wprowadzenie

Ten artykuł wyjaśnia prosty projekt Arduino, który wykorzystuje przycisk do sterowania serwomotorem. Serwomotor to precyzyjny silnik, który może obracać się do określonej pozycji, co czyni go idealnym do zastosowań takich jak robotyka i automatyka. Ten projekt sprawi, że serwo przesunie się od 0 do 180 stopni po naciśnięciu przycisku i wróci do 0 po jego zwolnieniu.

Elementy projektu i podłączenie

Będziesz potrzebować płytki Arduino, serwomotoru oraz przycisku.

Instrukcje podłączenia:

  • Serwomotor: Podłącz przewód sygnałowy (zwykle żółty/pomarańczowy) do pinu 3 Arduino, przewód zasilający (czerwony) do 5V, a przewód masy (czarny/brązowy) do GND.
  • Przycisk: Podłącz jedną nóżkę do pinu cyfrowego 2, a drugą do pinu GND. To wszystko! Dzięki wewnętrznemu rezystorowi podciągającemu Arduino nie potrzebujesz zewnętrznego rezystora.

 

Wyjaśnienie kodu

Program jest podzielony na trzy główne części: definicje pinów, funkcję setup() oraz funkcję loop().

Definicje pinów

Ta sekcja konfiguruje wymagane biblioteki i przypisuje znaczące nazwy do używanych pinów.

#include <Servo.h>

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

Servo myServo;

Funkcja setup()

Funkcja setup() zawiera kod, który wykonuje się tylko raz po włączeniu lub zresetowaniu płytki Arduino. Służy do wstępnej konfiguracji.

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

Kluczową zmianą jest pinMode(buttonPin, INPUT_PULLUP);. Aktywuje to wewnętrzny rezystor, który podciąga napięcie pinu do stanu HIGH. Po naciśnięciu przycisku pin jest łączony z masą, a napięcie spada do stanu LOW.

Funkcja loop()

Funkcja loop() zawiera główną logikę programu i wykonuje się wielokrotnie w nieskończoność po zakończeniu funkcji setup().

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

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

Logika jest tutaj odwrócona. Ponieważ naciśnięcie przycisku powoduje sygnał LOW, warunek if (buttonState == LOW) jest używany do przesunięcia serwa o 180 stopni.

Obrazy

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
Język: 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);
  }
}

Rzeczy, których możesz potrzebować

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Brak dostępnych plików.