電気電子工学実験ⅢA

電気電子工学実験ⅢA
コンピュータ応用
(2週目)
補足資料
3 通信機能(AD/DA) (その1)
• 例題(demo3_1)
AD入力した値をLEDで2進表示し、反転した値
をDA出力するプログラム
入力信号:
WF
AMP
OFS
: TRI(三角波)
: Vp-p=5.0V (振幅 2.5V)
: +2.5V (DCオフセット)
オシロで確認する場合 (F)周波数 1KHz
LEDで確認する場合
(T)周期 30s (周波数 0.033Hz)
3 通信機能(AD/DA) (その2)
• 例題(demo3_1) の main関数内
unsigned short
unsigned char
ldata;
bdata;
init_LED ();
init_ADDA();
// ポート1の初期設定 (P1DDR, P1DR)
// AD/DAの初期設定 (ADCSR, DACR)
// AD入力した値(10bits)を格納(2バイト)
// 8bitsに圧縮したAD入力データを格納(1バイト)
while ( 1 ) {
ldata
bdata
// ADDRA: ???? ???? ??-- ---= ADDRA >> 6; // ldata: 0000 00?? ???? ????
// ldata: 0x0000(0) ~ 0x03FF(1,023)
= (unsigned char)( ldata >> 2); // bdata: 0x00(0) ~ 0xFF(255)
DADR0 = ~bdata; // AD入力した値を、反転してDA出力
P1DR
= ~bdata; // AD入力した値を、LEDに2進数で表示(負論理)
}
3 通信機能(AD/DA) (その4)
• 課題1(kadai2_1)
miniDDS の信号(0~5V)をA/D変換し、8つのLEDを用いたレ
ベルメータを表示せよ
入力信号: (T) 周期10s(周波数0.1Hz)
例(8段階の場合)
LED(□□□□ □□□■)
LED(□□□□ □□■■)
LED(□□□□ □■■■)
LED(□□□□ ■■■■)
LED(□□□■ ■■■■)
LED(□□■■ ■■■■)
LED(□■■■ ■■■■)
LED(■■■■ ■■■■)
レベル0
レベル1
レベル2
レベル3
レベル4
レベル5
レベル6
レベル7
□: 消灯(1)
■: 点灯(0)
4 シリアル通信(SCI) (その1)
• 例題(demo4_1)
PCからSCI通信で入力した1文字を、そのままSCI
通信でPCに送り返す(エコーバックする)プログラム
unsigned char
buff;
// 受信バッファ用変数 (1 byte)
init_LED ();
init_SCI ();
while ( 1 ) {
PC_byte_receive ( &buff ); // SCI受信した文字コード(1バイト) を 変数buffに格納
PC_byte_send ( buff );
// エコーバックの為、受信した文字コードを、PCに
}
P1DR
= ~buff;
// (1バイト)SCI送信でそのまま送り返す
// 受信した文字コードをLEDに出力(負論理)
4 シリアル通信(SCI) (その2)
• 課題2(kadai2_2)
PCからSCI通信で入力した(1桁同士の)整数の
二項演算(2変数の演算)で四則演算を実行す
る簡易電卓を作成せよ。
1+1=2↵
5+9=14↵
4-6=-2↵
5*9=45↵
7/3=2↵
黒字は、PCから入力した(マイコンからエコー・バックされた)文字
赤字は、マイコンで出力した文字
※ 改行↵は、CR + LF
4 シリアル通信(SCI) (その4)
• 課題2(kadai2_2)
補足
以下の手順でプログラムを作ると、比較的早く作ることが出来る
1) 先ずは 加算の結果が1桁となる2つの数字のみ入力すると、計算結果を出力する
プログラムを作成。 ※ この時点では数字(0~9 ) 以外が入力されないと仮定して良い
例. 112 235 549
2) 加算の結果が2桁にも対応するように改良する。(計算結果の十の位も考慮する)
例. 5611 6310 9817
3) 数値の間に+を入力すると加算するように改良(結果を出力する時に=も表示)
例. 1+2=3 6+8=14 ※ この時点で、数字(0~9)と + を区別する必要あり
4) 減算にも対応出来るように改良 (計算結果がマイナスの場合も考慮)
例. 2-5=-3 4-9=-5
5) 四則演算に対応出来るよう改良 ( +, -, *, / )
+:加算(足し算)、-:減算(引き算)、*:乗算(掛け算)、/:徐算(割り算) ※商のみで可
例. 5+8=14 4-9=-5 6*3=18 7/3=2
5 総合
※ 区切り文字は、改行(↵ )
0↵
・
• 課題3(kadai2_3)
10↵
Push-SWを押すと、miniDDSの信号(0~5V)を
A/D変換を開始し、一定数(1,000程度)AD入力し
た値を、一つの数値を1行ずつPCに送信する
データロガーを作成せよ。
108↵
A/D変換やSCI通信が終わったら、必ず
Push-SWの動作待ちに戻る事
・
・
・
・
255↵
・
・
164↵
・
・
入力信号: (WF)三角波、(AMP)Vp-p=5V、(OFS)オフセット+2.5V、 123
・
・
(F)周波数1kHz程度に対応出来る事が望ましい
パソコン側では、ターミナルソフト(TeraTerm)を開いておき、そ
こに表示された値をエクセルに貼り付け、グラフで表示して確
認する事。
miniDDS
1.
2.
3.
4.
5.
6.
7.
Power Switch
Parameter Keys
Digit Keys
Unit Keys
Waveform Key
ESC Key
ADJ Dial
8. MODE Key
9. Frequency (Period)
10. Waveform
11. DC Offset
12. Amplitude
13. Cursor
14 Function Output(J4)
mini DDS (Direct Digital Synthesizer)
単一で固定の発振源から、任意の波形や周波数をデジタル的に生成するための電子回路
周波数(Frequency)の設定方法
1) 2の[F/T] キーを押し、13に F: を表示
2) 3のデジタルキーで周波数を設定
3) 4の[Hz]若しくは[kHz]キーを押す
周期(Period)の設定方法
1) 2の[F/T] キーを押し、13に T: を表示
2) 3のデジタルキーで周期を設定
3) 4の[Sec] キーを押す
USB オシロスコープ (ハードウェア)
CH A : Aチャンネル
AD0の端子とグラウンド(GND)に接続
miniDDS と並列
CH B : Bチャンネル
DA0の端子に接続
USB : USB接続用端子
USBケーブルでPCと接続
PicoScope 6 (アプリケーションソフト)
左のアイコンをクリックして、アプリを起動