ЁЯЪАрдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рдФрд░ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Arduino рдХреЗ рд╕рд╛рде SG90 рд╕рд░реНрд╡реЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛


ЁЯФз рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ

  • Arduino (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдКрдиреЛ)
  • рдПрд╕рдЬреА90 рд╕рд░реНрд╡реЛ рдореЛрдЯрд░
  • рддрдирд╛рд╡ рдирд╛рдкрдиреЗ рдХрд╛ рдпрдВрддреНрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10k╬й)
  • рджреЛ рдкреБрд╢ рдмрдЯрди
  • рдЬрдореНрдкрд░ рддрд╛рд░ рдФрд░ рдмреНрд░реЗрдбрдмреЛрд░реНрдб

ЁЯУМ рд╡рд╛рдпрд░рд┐рдВрдЧ рдЖрд░реЗрдЦ

1. рд╕рд░реНрд╡реЛ рдХрдиреЗрдХреНрд╢рди (рдПрд╕рдЬреА90)

  • VCC (рд▓рд╛рд▓): тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ 5V
  • GND (рднреВрд░рд╛ рдХрд╛рд▓рд╛): тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ GND
  • рд╕рд┐рдЧреНрдирд▓ (рдирд╛рд░рдВрдЧреА): тЖТ рдбрд┐рдЬрд┐рдЯрд▓ Pin 9

2. рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рдХрдиреЗрдХреНрд╢рди

  • рдПрдХ рдмрд╛рд╣рд░реА Pin: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ 5V
  • рдЕрдиреНрдп рдмрд╛рд╣рд░реА Pin: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ GND
  • рдордзреНрдпрдо Pin (рд╡рд╛рдЗрдкрд░): тЖТ рдПрдирд╛рд▓реЙрдЧ Pin A0

3. рдмрдЯрди рдХрдиреЗрдХреНрд╢рди

  • рдмрдЯрди 1 (рдХреЛрдг рдмрдврд╝рд╛рдПрдБ):
    • рдПрдХ рдЯрд░реНрдорд┐рдирд▓ тЖТ рдбрд┐рдЬрд┐рдЯрд▓ Pin 2
    • рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ тЖТ GND
  • рдмрдЯрди 2 (рдХреЛрдг рдШрдЯрд╛рдПрдБ):
    • рдПрдХ рдЯрд░реНрдорд┐рдирд▓ тЖТ рдбрд┐рдЬрд┐рдЯрд▓ Pin 3
    • рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ тЖТ GND

рд╕реБрдЭрд╛рд╡: рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП Arduino рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреБрд▓-рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ рдХрд░реЗрдВ рдЗрдирдкреБрдЯ_рдкреБрд▓рдЕрдк.


ЁЯТ╗ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб

рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рдХреЛ рдЖрдзрд╛рд░ рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддрдерд╛ рджреЛ рдмрдЯрдиреЛрдВ рд╕реЗ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

#include <Servo.h>

Servo myServo;  // Create a servo object

// Pin Definitions
const int servoPin = 9;        // Servo signal pin
const int potPin = A0;         // Potentiometer analog input
const int buttonUpPin = 2;     // Button to increase angle
const int buttonDownPin = 3;   // Button to decrease angle

int servoAngle = 90;  // Starting at the middle position (90┬░)

void setup() {
  Serial.begin(9600);
  myServo.attach(servoPin);  // Attach the servo to the defined pin

  // Set pin modes for the potentiometer (default INPUT) and buttons
  pinMode(potPin, INPUT);
  pinMode(buttonUpPin, INPUT_PULLUP);    // Enable internal pull-up resistor
  pinMode(buttonDownPin, INPUT_PULLUP);

  myServo.write(servoAngle);  // Set initial servo position
}

void loop() {
  // 1я╕ПтГг Read the potentiometer value and map it to a 0-180┬░ range
  int potValue = analogRead(potPin);
  int mappedAngle = map(potValue, 0, 1023, 0, 180);

  // Use the potentiometer value as the base servo angle
  servoAngle = mappedAngle;
  
  // 2я╕ПтГг If the "increase" button is pressed, add 90┬░ to the angle
  if (digitalRead(buttonUpPin) == LOW) {
    servoAngle += 90;
    if (servoAngle > 180) servoAngle = 180;
    delay(200);  // Debounce delay
  }
  
  // 3я╕ПтГг If the "decrease" button is pressed, subtract 90┬░ from the angle
  if (digitalRead(buttonDownPin) == LOW) {
    servoAngle -= 90;
    if (servoAngle < 0) servoAngle = 0;
    delay(200);  // Debounce delay
  }
  
  // 4я╕ПтГг Update the servo with the new angle
  myServo.write(servoAngle);
  
  // Debug: Print the current angle to the Serial Monitor
  Serial.print("Angle: ");
  Serial.println(servoAngle);
  
  delay(20);  // Small delay for smooth operation
}

ЁЯУЛ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

  • рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░:
    рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдорд╛рди (0тАУ1023) рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡реЛ рдХреЛрдг (0┬░тАУ180┬░) рдкрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИред
  • рдмрдЯрди:
    • рдЬрдм рдмрдврд╝рд╛рдПрдБ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдг 90┬░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
    • рдЬрдм рдХрдореА рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдг 90┬░ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
      (рдЖрдВрддрд░рд┐рдХ рдкреБрд▓-рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзрдХ рдФрд░ рдбреЗрдмрд╛рдЙрдВрд╕ рд╡рд┐рд▓рдВрдм рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдЯрди рдкреНрд░реЗрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред)
  • рд╕рд░реНрд╡реЛ рдирд┐рдпрдВрддреНрд░рдг:
    рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рд░реАрдбрд┐рдВрдЧ рдФрд░ рдмрдЯрди рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд░реНрд╡реЛ рдХреА рд╕реНрдерд┐рддрд┐ рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рд╣реЛрддреА рд░рд╣рддреА рд╣реИред
  • рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░:
    рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡реЛ рдХреЛрдг рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ЁЯОп рд╕рдорд╛рдкрди

рдпрд╣ рд╕реЗрдЯрдЕрдк рдЖрдкрдХреЛ рдПрдХ рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ (рд╕реБрдЪрд╛рд░реВ, рдирд┐рд░рдВрддрд░ рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП) рдФрд░ рджреЛ рдмрдЯрди (рддреНрд╡рд░рд┐рдд, рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SG90 рд╕рд░реНрд╡реЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред Arduino рдкрд░ рдПрдирд╛рд▓реЙрдЧ рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ!


рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ! ЁЯШКЁЯСН

ЁЯУб рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдВ - рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдврд╝рд╛рдПрдБред

рдПрдХ рдЬрд╡рд╛рдм рд▓рд┐рдЦреЗрдВ