У меня есть серводвигатель SG90 (полностью функциональный и новый), который не поворачивается полностью на 180 ° (или 0 °). Он останавливается на полпути, когда я пытаюсь повернуть его вправо влево (против часовой стрелки). Я проверил 4 раза проводку и оборудование, поэтому проблема в коде , вероятно . Я пытаюсь контролировать сервомотр через малину pi3 с Pi4j.
Я уже пытался сменить проводку, но не думаю, что это проблема.
Код, который я пытался использовать, был моим, и он отправлял ШИМ 1 мс и 2 мс.
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
public class xd {
public static void main (String[] args) throws InterruptedException {
//creating the output
final GpioController gpio = GpioFactory.getInstance();
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.HIGH);
//making the 1ms PWM
//this makes the servo go left but it stops halfway to the end
for (int i=0; i<=100; i++){
pin.pulse(1,true);
Thread.sleep(19);
}
Теперь к 2 мс ШИМ
//the servo goes right (clockwise) and it works fine
for (int i=0; i<=100; i++){
pin.pulse(2,true);
Thread.sleep(18);
}
gpio.shutdown();
}
}