前回、うまくいかなかった、Arduinoでダイセンモータードライバーを動かす実験ですが、少しゴール(スタート?)が見えてきました。
まず、先日の生AVRブレッドボードで動かしてみます。
前回のコメントでぽよこまだんなさんからアドバイスいただいて、SCLとSDAはモータードライバー側でプルアップされているので、直結すれば良く、配線はすっきりです。
プログラムはI2Cのところから作らないといけないので、ここを参考にしました。
最初は一応動くものの、すぐに止まってしまう状態でしたが、以下の2点でだいぶ改善できました。
- WinAVRのコンパイルの最適化を-Osから-O0または-O1にする。
- データ送信後の終了処理の前に少しWAITを入れる。
これで5分ぐらい持つようになりました。
Arduino上での動作は次回へつづく。