Darkside(https対応しました)

名前

URL

タイトル

コメント

2025年1月22日(水) 21:38

謎過ぎる現象

 相変わらず、謎過ぎる現象が直らない。
 正弦波駆動の位相加算値を

target_slow = 60000;

という感じに定数で代入すると何の問題もなくモーターはスムーズに回転する。同じ場所を

target_slow = table_slowh[cnt_pwm];

とテーブル引きにすると、まるで回らない。10回に1回ぐらいは値が取得できているがそれ以外は0になっているかのような挙動になる。そしてそれも、規則的な動きではない。
 60000 という定数値は、暫定的にフルスロットル位置で取得できる値になっている。
 液晶ディスプレイで cnt_pwm を表示させると、送信機のスティック位置に応じて想定通りに値が得られる。フルスロットルだと安定して255が得られるので動作試験に使っている。
 次に液晶ディスプレイで table_slowh[cnt_pwm] の取得値を表示させると、これも問題なく 60000 が表示される。値が不安定になることもない。

 それなのに、モーターはうまく回転しないのだ。どういう手品なんだよ?

 もう少し分かり易いコードを試してみる。

if (cnt_pwm > 128) {
    target_slow = 60000;
}
else if (target_slow < 128) {
   target_slow = (-60000);
}
else {
   target_slow = 0;
}

 送信機スティック値の符号だけを見て、前進ニュートラル後退の3通りだけモーター動作させてみる。すると、これまた回転不安定。やはり、スティック値 cnt_pwm が安定取得できていない疑いが強い。既に確認済みではあるが、また液晶ディスプレイに cnt_pwm の値を直接表示させてみる。

 ところが、プログラムを書き込めない。もともと PICkit 4 はUSB抜き差ししないと認識されないことがしばしば発生していたが、どうやっても認識されなくなった。

written by higashino [エアガン機動戦闘車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4