ЁЯФз рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ
- 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 рдкрд░ рдПрдирд╛рд▓реЙрдЧ рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ!
рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ! ЁЯШКЁЯСН