Tôi đang cố gắng điều khiển hai động cơ cùng một lúc bằng Arduino UNO và Arduino Motor Shield. Các servo của tôi được sửa đổi, để chúng có thể hoạt động với chuyển động liên tục.
Khi tôi gửi đơn đặt hàng đầu tiên myservoP.write(180);
(tốc độ tối đa) nó hoạt động tốt; tuy nhiên, khi tôi cố gắng ra lệnh cho servo của mình thay đổi hướng ( myservoP.write(0);
), ngay lập tức Arduino của tôi gặp sự cố và đặt lại.
Lúc đầu tôi mặc dù có thể có vấn đề với nguồn điện, nhưng sau khi thử nghiệm nó với chương trình của tôi (được liệt kê bên dưới), tôi bắt đầu nghĩ rằng đó là vấn đề với bộ đệm hoặc bộ nhớ. Không chậm trễ, Arduino gặp sự cố sau khoảng 10 lần lặp. Với độ trễ (10), nó sẽ sập sau khoảng 90 lần lặp. Với độ trễ (20), Arduino có thể lặp lại toàn bộ chu kỳ 5 lần, từ đầu đến cuối. Trong lần thử thứ 6, nó lại bị rơi.
Đây là mã của tôi:
#include <Servo.h>
Servo myservoL;
Servo myservoP;
int i;
void setup()
{
delay(2000);
myservoL.attach(9); // attaches the servo on pin 9 to the servo object
myservoP.attach(10); // attaches the servo on pin 10 to the servo object
Serial.begin(9600);
}
void loop()
{
for(i=180; i>=0; i--)
{
delay(20);
Serial.println(i);
myservoP.write(i);
myservoL.write(i);
}
for(i=0; i<=190; i++)
{
delay(20);
Serial.println(i);
myservoP.write(i);
myservoL.write(i);
}