ロータリーエンコーダ HW-040

製作中のリモコンで数値設定に使おうと思い購入しました。

Amazon.com ロータリーエンコーダ HW-040



簡単にプログラム作ってカウントさせてみたところ次のような問題が発生。

・A相の立上り割込みでカウントさせたら、1クリックで3、4カウントしてしまう。

・割り込みを使用せずカウントさせたら、2クリックで1カウントになる。

なんだこれ?思いのほか手こずりました。



最終的にできた、割込みを使わない1クリックで1カウントのプログラムがこれです。


#define ENC_A 2    // CLK pin --- Arduino nano D2
#define ENC_B 3    // DT  pin --- Arduino nano D3

void setup(){
    Serial.begin(115200);
    pinMode(ENC_A,INPUT);
    pinMode(ENC_B,INPUT);
}

void loop(){
static int count = 0;
static bool LastENC_A = digitalRead(ENC_A);
bool NowENC_A = digitalRead(ENC_A);

    if(NowENC_A != LastENC_A){
        if(NowENC_A){
            if(digitalRead(ENC_B))
                count --;
            else
                count ++;
        }else{
            if(digitalRead(ENC_B))
                count ++;
            else
                count --;
        }
        Serial.println(count);
    }
    LastENC_A = NowENC_A;

    delay(1);
}


A相の立上りと立ち下がりのときに、B相の状態をみてカウントさせています。


では!(^-^)/


スポンサーリンク

2020.01.20 | コメント(0) | トラックバック(0) | Arduino

音声合成LSI ATP3012R5-PU が故障した?

ロボットへリモコンで指令を送ったら、確認のため受け取った指令をロボットにしゃべらせています。

ですが、突然無口になりました。

リモコン操作の通りに歩行は正常に動作しているので音声合成LSIを調べてみることにしました・・・。

IMG_1294.jpg




結論を先に書いておきます。

原因:音声合成LSIの通信ボーレート設定が0bpsになっており通信不能だった。
対策:専用の設定ツールで9600bpsに再設定。
結果:OK!





以下に修復までの手順を書いておきます。

0) Arduino UNOを評価ボードとして使用します。
以下を準備してください。

PC(Windows7)1
Arduino UNO1
通信ケーブル1
ジャンパー線2
サウンダ1


1) Arduino UNO のLSIを外して音声合成LSIに挿し替えます。

IMG_ATP-0.jpg


2) デモモードで起動し、プリセットメッセージを発声するか確認します。
  a)Arduino UNOの電源はOFF (PCとArduino間の通信ケーブルは外しておく)
  b)ジャンパー線で6番と8番をGNDに接続
  c)サウンダを9番とGNDに接続
  d)Arduino UNOの電源をON (PCとArduino間の通信ケーブルを接続する)
以上で発声したらここまでの機能はOKです。

IMG_ATP-1.jpg


3) セーフモードを利用して通信ボーレート9600bpsで起動させます。
  a)Arduino UNOの電源はOFF (PCとArduino間の通信ケーブルは外しておく)
  b)ジャンパー線で8番をGNDに接続
  c)Arduino UNOの電源をON (PCとArduino間の通信ケーブルを接続する)

IMG_ATP-2.jpg

 
4) デバイスマネージャで通信ポートを設定します。
ATP-DEV通信設定

 

5) 設定ツールを入手します。
  アクエスト社のHPから設定ツール(download Ver.1.1)をダウンロードします。 
  https://www.a-quest.com/products/pico_rom_writer.html
ATP-設定ツール


6) 設定ツールを起動し「Read」を実行します。
ATP-設定ツールRead


7) 通信ボーレートがおかしくなっていたら、正しい値を設定して「Write」を実行します。
ATP-設定ツールWrite


8) 設定ツールは終了し、Arduino IDE を起動してシリアルモニタツールを開きます。


9) メッセージコマンドを入力し、発声を確認できたら作業完了です。
ATP-発声 

以上

スポンサーリンク

2017.10.05 | コメント(0) | トラックバック(0) | Arduino

«  | ホーム |  »

最新記事

再挑戦! 2輪2脚ロボット Oct 01, 2020
自作の回路とソフトで一輪車を倒立させることはできるのか? Jun 16, 2020
2輪ロボット May 03, 2020
自作3Dプリンタ メモ Apr 07, 2020
ロータリーエンコーダ HW-040 Jan 20, 2020

スポンサーリンク

counter