私はいまArduinoを用いてDynamixcel のMX64ARサーボモータを動かそうとしているのですが,簡単な往復運動のプログラムを実行すると一秒間隔で動くはずが数秒に一度,しかも3秒だったり10秒だったりと不規則に動いてしまいます.
これはどのような問題が発生しているのでしょうか.また,解決方法を教えてください.
以下コードです.これは次のサイトのものを張り付けたものです
http://www.besttechnology.co.jp/modules/d3blog/details.php?bid=201
#include <SoftwareSerial.h> SoftwareSerial dxif(8, 9); // pin8 is RX, pin9 is TX void setup() { // put your setup code here, to run once: dxif.begin (57143); dxif.setTimeout (50); } bool sendpos(uint8_t id, uint16_t pos) { uint8_t buf[9] = { 0xff, 0xff, // header id, // id 5, // inst 3, // size 30, // address (uint8_t)(pos & 0xff), (uint8_t)(pos >> 8), 0 }; for (int i = 2; i < 8; i++) buf[8] += buf[i]; // calc sum buf[8] = ~buf[8]; while (dxif.available ()) dxif.read (); // clear buffer dxif.write (buf, 9); // send inst packet if (dxif.readBytes (buf, 6) == 6) // read stat packet return (buf[2] == id) && (buf[3] == 2) &&(buf[4] == 0); return false; } void loop() { sendpos (1, 0); // Set Goal Position to 0 delay (1000); // Delay 1 sec sendpos (1, 1023); // Set Goal Position to 1023 delay (1000); // Delay 1 sec }
環境
Arduino Mega 2560
Dynamixcel MX-64AR
あなたの回答
tips
プレビュー