Easy MCUser : ADC(Analog to Digital Converter)機能の使い方

【お知らせ】
今回の Easy MCUser の使い方解説は、ADC(
Analog to Digital Converter)機能です。宜しくお願いします。

ADC の使い方】 ~~~~ 4 ~~~~

3-4. AVR
マイコンに入力されたアナログ電圧値を読み取る
AVR
マイコンには、アナログ電圧値をデジタルのコードに変換するADCAnalog to Digital Converter)機能が内蔵されています。ADC は、AVR マイコンの中で唯一アナログ信号を扱える機能で、マイコンと外部で接続されるセンサーや電源などの状態を知ることが出来る大変便利な機能です。

ADC の機能を使う前に、まず、MCU のピン機能の設定をしましょう。下図は、スレーブ MCU に対するピン機能設定が終わって、スレーブNo.7を選択した状態です。Slave MCU PinMap の状態が、Select Function のままになっています。これは、特に特定の機能をピンにアサインしていないという事を意味します。ADC 機能を使う上で、特に今回は特別な機能を設定する必要は無いので、この様にしています。

スクリーンショット 2016-06-11 18.50.23


ピン機能の設定が完了したら、ADC を実際に動かす事が出来ますので試してみましょう。
AVR
マイコンに対して入力されるアナログ電圧値を「Easy MCUser」で読み取るためには、「Analog」タブパネルを使用します。

スクリーンショット 2016-06-11 18.57.31


今回は、「3-3. LCD に文字を表示させてみる」の項目で使用した LCD シールドを使って、LCD シールドに搭載されたボタンと連動して AVR マイコンへ入力されるアナログ電圧値を AVR マイコンで読み取ってみましょう。
Analog」タブパネルを開くと、「Select ADC channel」,「Start IREG No.」,「DIV_NUM」という3つのポップアップメニューがあります。これらのポップアップメニューを順番に設定してゆきます。

Select ADC channel」ポップアップメニューには、今回 使用する Arduino R3 互換ボードと接続する LCD シールドの十字配列されたプッシュボタンに連動した抵抗が チャネル 0 につながっているので、「ADC channel 0」を選択します。

Start IREG No.」ポップアップメニューには、ADC から読み取った電圧の値を一時的に保存しておくための場所(IREG : Internal Register)の番号を設定します。ADC から読み取った電圧の値は、AVR マイコンの場合は10[bit]幅のため、必ずIREG 2つ使ってデータが格納されます。今回は、「IREG0」を選択しますが、この時、IREG0には上位2[bit]のデータが格納され、IREG1には下位の8[bit]のデータが格納されます。

DIV_NUM」ポップアップメニューには、「PWM」の制御で使用した「DIV_NUM」と同様に、マイコンの中で時間を計測する目的の機能として搭載されているタイマーという機能を、どの様なスピードで動かすかの定義に使います。ポップアップメニューを開くと、1/1 1/1024 までの値が選択可能になっている事がわかります。分母が大きい方がアナログ電圧値をサンプリングする周期が長くなります。今回は、1/8 を選択します。

それと、「Burst」ラジオボタンを ON します。このラジオボタンを ON する事で、指定の回数とサンプリング周期でアナログ電圧値を取得します。

その他の設定については、今回は特に変更する必要はありません。このままの設定で、「EXECUTE」ボタンを押して、まずはアナログ電圧値をデジタル値へ変換して IREG へ一時保管するところまでを実行してみます。

EXECUTE」ボタンを押して、 IREG へデジタル値を一時保管したら、次に、一時保管したその値を IREG から読み出してみましょう。IREG から一時保管したデータを読み出すには、「REGs」タブ・パネルを選択します。先ほど「Start IREG No.」ポップアップメニューで IREG0 を選択したので、IREG0 IREG1 からデータを読み出しましょう。

スクリーンショット 2016-06-11 18.31.54


ここで、IREG とのデータのやりとりの仕方について簡単に説明します。
まずは、アクセスしたい IREG の番号にあるチェック・ボックスへチェックを入れます。同時にチェックを入れられる数は16までとなりますが、今回は IREG0 IREG1 2つのみとなります。チェック・ボックスへチェックを入れた IREG の横にあるテキストボックスは、書き込み,又は表示が可能な状態になります。

チェック・ボックスへチェックを入れ終わったら、次に、「Select : W/R」ポップアップメニューから、「Read IREG」を選択します。この「Select : W/R」ポップアップメニューでは、IREG に対してデータの書き込み(Write : ライト動作)と、IREG からデータの読み出し(Read : リード動作)のどちらの動作を実行するのかを定義します。
Select : W/R」の設定をリードにしたら、次に、「EXECUTE」ボタンを押します。すると、ADC からデジタル値として AVR マイコンから読み出されたデータが IREG0 IREG1 のテキストボックスに表示されます。 IREG0 IREG1 のテキストボックスに表示された値は16進数です。

以下の図は、十字キーを順番に押してADC でアナログ電圧をデジタル値へ変換したものとなります。4種類のキーは、それぞれ異なった16進数の値になっています。この事を利用して、どのキーが押されているのかの判定に使う事が出来る様になります。
スクリーンショット 2016-06-14 20.41.50

スクリーンショット 2016-06-14 20.42.13

スクリーンショット 2016-06-14 20.42.32

スクリーンショット 2016-06-14 20.42.50

スクリーンショット 2016-06-14 20.43.06

スクリーンショット 2016-06-14 20.43.25


表示された値はどの様な値になっていたでしょうか?試しに、 LCD シールドのセレクト・ボタン及び十字配列されたプッシュボタンを押した状態で、ADC でアナログ電圧値をデジタル値へ変換したものを IREG へ一時保管して、そのデータを読み出してみましょう。値が変わっていると思います。

ここまでの操作で、ADC からアナログ電圧値をデジタル値に変換したデータを読み出す事が出来ました。

Analog」タブ・パネルと「REGs」タブ・パネルには他にも色々な機能がありますが、詳細についてはユーザーズ・マニュアルのこちらのページ(「Analog」,「REGs」)を参照して下さい。




【ちょっと広告】
Easy MCUser は、ユーザーがプログラミングをせずに、マイコンを使って自分のやりたい事を簡単に実現するためのソフトウェアです。以下に示す様な3つの特徴を持っています。

・GUIの操作によって、簡単にマイコンを直接動かせる
・GUIの操作を録画し、録画した操作を編集する事でマイコンのプログラムを生成出来る
・1つのマイコンでは難しい処理も、
複数のマイコンへ分散して処理させられる

現在、ベータ版
ダウンロード・ページからダウンロード可能です。ぜひ、この機会にお試しください。

​​Easy MCUser enables you easily that you want to do your own by using microcontrollers without do programming. Easy MCUser has three features such as shown below.

· By GUI of the operation, you can control easily the microcontroller directly.
· Record the operation of the GUI, you can generate the program of microcontroller by editing the recorded operation.
· If you have difficult process in one microcontroller, Easy MCUser can distributes to a plurality of microcontrollers.

You can try to use ももんが version. Please download form download page.

スクリーンショット 2016-02-15 21.09.37