2025年1月21日(火) 20:28
低速回転では、ホールセンサーの値を見ない。
与える正弦波の位相を一方的に決めて垂れ流す。すると、十分な電圧で駆動するステッピングモーター同様に、位相変化に従って回転する。
送信機のスティック値を元にして、位相の進行の大きさを決定し、単純に加算を行って新しい位相を決めている。
送信機のスティック値を無視して位相の進行の大きさを決定(固定値)し、単純に加算を行って新しい位相を決めるとモーターはスムーズに低速回転する。つまり、おかしいのは移送進行度を引いているテーブルの部分しか考えられないのだ。処理が単純過ぎて、バグりようがないのだが・・・コンパイルエラーを疑い、固定値からテーブル引きに書き戻して実行。
やはり突然動作がおかしくなる。取得値が極めて不安定になっているかのような、不安定な回転になる。意味不明。
スティック取得値を表示させても正常だったが、テーブルで引いた値を表示させてみよう。ただ、どうも16ビット dsPIC 用のコンパイラーって sprintf がバグってるんだよな。32ビット値の表示がうまく出来ないのだ。過去それで散々デバッグに支障が出ている。
16ビットで切って表示させると、テーブル引きも問題なくできている。
でも、モーターは回らない。
written by higashino [エアガン機動戦闘車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4