Tôi đang cố gắng để làm cho một lớp hoạt động với Arduino, tuy nhiên nó dường như không kích hoạt đúng. Các code được biên soạn một cách hoàn hảo, và đó là nghĩa vụ để kiểm soát chân của một hexapod . Ngoài ra, quét ví dụ hoạt động trên servo này, vì vậy không có vấn đề ở đây. Tuy nhiên, servo không thực sự di chuyển. Tôi nghĩ rằng nó có liên quan đến thứ tự khai báo các biến:
#include <Servo.h>
// Abstract each leg, so only those functions can be accessed
class Leg {
// Actions that can be triggered from outside
public:
Leg(int hipPin, int kneePin);
void up();
// These should be only available for the leg
private:
Servo hip;
Servo knee;
};
Leg::Leg(int hipPin, int kneePin) {
hip.attach(hipPin);
knee.attach(kneePin);
}
// Testing the leg: move it up
void Leg::up() {
for(int pos = 0; pos < 180; pos += 1) {
hip.write(pos);
delay(15);
}
}
// Initialize the leg
Leg topLeft(9, 10);
void setup() {
}
// Test the function up()
void loop() {
topLeft.up();
}
Tôi chỉ kiểm tra chân 9 (để trống 10). Có vẻ như đau đớn , có nghĩa là, bạn có thể thấy servo rung lắc nhưng không di chuyển thực sự ở 0 độ.