Как заставить сервопривод замедлить движение
Я хочу, чтобы мой сервопривод реагировал на данные, которые мой датчик освещенности сообщает ему по количеству улавливаемого им света. Я хочу, чтобы сервопривод быстро двигался влево, когда есть тень/тьма, а затем я хочу, чтобы он медленно двигался обратно вправо, когда свет возвращается.
Это код, который я сейчас использую для своего сервопривода на 180 градусов. Я также хочу, чтобы это работало на моем сервоприводе на 360 градусов, но поскольку я новичок, я не могу в этом разобраться...
#include <Servo.h>
Servo s;
void setup() {
// put your setup code here, to run once:
//pinMode(9,OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
s.attach(9);
}
void loop() {
float l = analogRead(A0);
Serial.print(l);
Serial.print(" ");
int v = map(l,0,1024,0,179);
s.write(v);
Serial.println(v);
}
@Iris, 👍-1
1 ответ
Скорость вращения сервопривода контролируется его внутренней схемой. Как только вы отправляете ему новое целевое положение, он движется к этому положению с максимальной скоростью и замедляется по мере приближения.
Лучшее, что вы можете сделать, чтобы замедлить его, — это менять его цель пошагово, пока не достигнете целевого положения, вместо того, чтобы устанавливать конечную цель сразу. Если вы перемещаете его несколькими большими шагами, движение будет прерывистым; если вы отправляете меньшие шаги с более короткими интервалами (чтобы общее время перемещения было таким же), движение станет более плавным.
Если вашему приложению необходимо максимально плавное движение, отправьте ему много маленьких шагов быстро, опять же, соблюдая требуемое общее время перемещения. Вы должны иметь возможность постоянно поддерживать сервопривод на скорости приближения (или близкой к ней).
- Как использовать фотодиод для arduino?
- Почему задержка более 64 миллисекунд останавливает вращение серводвигателя? Я не использую «Servo.h», вместо этого я просто управляю длиной импульса.
- Как запрограммировать 2 ультразвуковых датчика, один на серводвигателе и один прикрепленный на передней стороне автомобиля?
- Сделать систему с ультразвуковым датчиком и сервоприводом
- Светодиоды Arduino Nano TX и RX не загораются во время загрузки
- Почему я не могу контролировать скорость двигателя? (М1 и Е1)
- Запускаю робота с двумя передними датчиками, но он тормозит
- Может ли Arduino/Python получать данные датчика и управлять серводвигателем одновременно?