電気電子工学実験ⅢA コンピュータ応用 (2週目) 補足資料
3 通信機能(AD/DA) (その1) 例題(demo3_1) AD入力した値をLEDで2進表示し、反転した値をDA出力するプログラム 入力信号: WF : TRI(三角波) AMP : Vp-p=5.0V (振幅 2.5V) OFS : +2.5V (DCオフセット) オシロで確認する場合 (F)周波数 1KHz LEDで確認する場合 (T)周期 30s (周波数 0.033Hz)
3 通信機能(AD/DA) (その2) 例題(demo3_1) の main関数内 unsigned short ldata; // AD入力した値(10bits)を格納(2バイト) unsigned char bdata; // 8bitsに圧縮したAD入力データを格納(1バイト) init_LED (); // ポート1の初期設定 (P1DDR, P1DR) init_ADDA(); // AD/DAの初期設定 (ADCSR, DACR) while ( 1 ) { // ADDRA: ???? ???? ??-- ---- ldata = ADDRA >> 6; // ldata: 0000 00?? ???? ???? // ldata: 0x0000(0) ~ 0x03FF(1,023) bdata = (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(□□□□ □□□■) レベル0 LED(□□□□ □□■■) レベル1 LED(□□□□ □■■■) レベル2 LED(□□□□ ■■■■) レベル3 LED(□□□■ ■■■■) レベル4 LED(□□■■ ■■■■) レベル5 LED(□■■■ ■■■■) レベル6 LED(■■■■ ■■■■) レベル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に // (1バイト)SCI送信でそのまま送り返す P1DR = ~buff; // 受信した文字コードをLEDに出力(負論理) }
4 シリアル通信(SCI) (その2) 課題2(kadai2_2) PCからSCI通信で入力した(1桁同士の)整数の二項演算(2変数の演算)で四則演算を実行する簡易電卓を作成せよ。 黒字は、PCから入力した(マイコンからエコー・バックされた)文字 赤字は、マイコンで出力した文字 1+1=2↵ 5+9=14↵ 4-6=-2↵ 5*9=45↵ 7/3=2↵ ※ 改行↵は、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 総合 課題3(kadai2_3) A/D変換やSCI通信が終わったら、必ずPush-SWの動作待ちに戻る事 0↵ 10↵ 108↵ ※ 区切り文字は、改行(↵ ) 0↵ ・ 10↵ 108↵ 255↵ 164↵ 123 課題3(kadai2_3) Push-SWを押すと、miniDDSの信号(0~5V)をA/D変換を開始し、一定数(1,000程度)AD入力した値を、一つの数値を1行ずつPCに送信する データロガーを作成せよ。 A/D変換やSCI通信が終わったら、必ずPush-SWの動作待ちに戻る事 入力信号: (WF)三角波、(AMP)Vp-p=5V、(OFS)オフセット+2.5V、 (F)周波数1kHz程度に対応出来る事が望ましい パソコン側では、ターミナルソフト(TeraTerm)を開いておき、そこに表示された値をエクセルに貼り付け、グラフで表示して確認する事。
miniDDS 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)の設定方法 周期(Period)の設定方法 2の[F/T] キーを押し、13に F: を表示 3のデジタルキーで周波数を設定 4の[Hz]若しくは[kHz]キーを押す 2の[F/T] キーを押し、13に T: を表示 3のデジタルキーで周期を設定 4の[Sec] キーを押す
USB オシロスコープ (ハードウェア) CH A : Aチャンネル AD0の端子とグラウンド(GND)に接続 miniDDS と並列 CH B : Bチャンネル DA0の端子に接続 USB : USB接続用端子 USBケーブルでPCと接続
PicoScope 6 (アプリケーションソフト) 左のアイコンをクリックして、アプリを起動