Нужен совет по поводу сервы
- Войдите на сайт для отправки комментариев
Чт, 17/02/2022 - 16:14
Всем привет. У меня такой вопрос: есть снова на 360 градусов, можно ли управлять вращением сервы с помощью потенциометра?
Всем привет. У меня такой вопрос: есть снова на 360 градусов, можно ли управлять вращением сервы с помощью потенциометра?
можно!
Можно даже с помощью волшебной палочки.
Или крепкого слова.
#include <Servo.h> Servo servo1; void setup() { servo1.attach(5); } void loop() { int potent = analogRead(A0); potent = map(potent,0,1023,0,90); servo1.write(potent); }Каким образом усовершенствовать код, чтобы когда потенциометр стоял в среднем положении серва не крутиласть, когда повернут в лево или право то серва крутится по часовой или против? Подскажите пожайлуста
в момент, когда резистор посредине, сказать ему "Стой!!! Раз-два."
То есть написать условие? Через if?
Так не работает?
potent = map(potent,0,1023,-90,90);
Так на сколько должна крутиться серва?
На 90?
На 180?
На 360?
360
Нужно определить угол при котором вал неподвижен.
#include <Servo.h> Servo servo1; void setup() { Serial.begin(9600); servo1.attach(6); } void loop() { int potent = analogRead(A0); potent = map(potent,0,1024,0,90); servo1.write(potent);При этом коде серва вообще не крутится
#include <Servo.h> // подключение библиотеки Servo Servo servo1; const int pinServo=8; // Пин для подключения сервопривода const int POT=0; // Аналоговый вход A0 для подключения потенциометра int valpot = 0; // переменная для хранения значения потенциометра int angleServo = 0; // переменная для хранения угла поворота сервы void setup() { Serial.begin(9600); // подключаем последовательный порт servo1.attach(pinServo);// подключить переменную servo к выводу pinServo } void loop() { valpot = analogRead(POT); // чтение данных потенциометра delay(50); // пауза для ожидания if(abs(valpot - analogRead(POT))>5){ valpot = analogRead(POT); // повторное чтение данных потенциометра Serial.print("ДАННЫЕ С ПОТЕНЦИОМЕТРА ");Serial.print(valpot);Serial.println(); angleServo=map(valpot,0,1023,0,180);// масштабируем значение к интервалу 0-180 ;Serial.print("УГОЛ ПОВОРОТА СЕРВОПРИВОДА ");Serial.print(angleServo);Serial.println(); servo1.write(angleServo);// поворот сервопривода на полученный угол } }Недели 3 назад на кружке с детьми баловались вот этим скетчем.