« まずはLチカ | トップページ | ブッフォンにハート »

2017年10月13日 (金)

続いてジョイスティック

昨日の続きである。STM32に秋月電子のジョイスティック(AE-JY-DIP)を接続したい。
AE-JY(搭載されているJT8P-3.2T-B10K-1-16Y)は、2軸のアナログジョイスティックで、X軸とY軸それぞれの電圧を入力する必要がある。
ジョイスティックはA0とA1に接続する。STM32でいうとPA0とPA1だ。CubeMXでPA0をADC_IN1、PA1をADC1_IN2に設定する。

STM32で複数のアナログ入力をするためには、どのピンをどの順番でADCに接続するかを設定し、DMAを使って順番にメモリに転送しなければならない。
CubeMXでその順番を設定できるのだが、吐き出されたコードが正しくない。(※1)
ネットでもその手の情報が多く見られる。

Talk Like Singing
Cresent

この部分だけは毎回、手作業で修正しなければならない。
main.cで、Rankという文字を検索すると、

    sConfig.Rank = ?;

こんな感じの行が見つかる。
その前後には以下のような行が必要だが、なければ追加する。

    sConfig.Channel = ?;

Rankで変換の順番を指定し、その度にどのチャネルを使うのか指定するはずだが、同じチャネルのまま連続で読むことになっている。おかしい。
※チャネルをauto incrementする設定もあるが、チャネルを連続で使うとは限らない。やはりバグだと思う。
これを追加すると、無事にADCが動いた。

そういえば、AE-AJは以下のように配線している。AE-AJのピン番号は、シルク印刷をガン無視する。モジュールを上から見て、左上(CN2の一番上)のピンから反時計周りである。たとえば、AJOY/12は右上ピン。

AJOY/12───R10K───VCC
AJOY/11────────A0
AJOY/10────────GND
AJOY/9───R10K───VCC
AJOY/8────────A1
AJOY/7────────GND

このモジュールは、使い方が簡単すぎるのか、ネットにあまり情報がない。少なくとも私には簡単と思えず、せめて結線図だけでも残しておく。
AJOY1-6はブレボに固定するためのピンで配線する必要はない。先日紹介したSTM32のテンプレボードでは、ジョイスティックモジュールの下にも配線が通っている。

Stm32template

今日はここまで。次はLCDをやっつけたい。

※1. STMCubeMX V1.0 Version 4.22.1で確認

« まずはLチカ | トップページ | ブッフォンにハート »

電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 続いてジョイスティック:

« まずはLチカ | トップページ | ブッフォンにハート »

最近のトラックバック