第11回 入出力インターフェイス

■11.1 入力電圧範囲の拡大
  通常,マイコンの入力端子には負電圧を印加できないが,オペアンプ等を追加することで,両極性の信号を単極性に変換してマイコンに入力することも可能である.
 
 右図の作動増幅回路の入出力特性を示す式は下式となる.
 

 例えば,Vdd = 5 V,R1 = 56 kΩ,R2 = 24 kΩとすると,Vout = 3 - Vinとなる.
 したがって,-1.5〜+1.5 VのVinに対して,Voutは+1.5〜4.5 Vとなる.
 ただし,位相が逆転することに注意が必要である.

 
■11.2 出力電圧・電流の拡大
 マイコンの出力端子からは電源電圧以上の電圧を供給できない. また,出力電流は最大で20 mA 程度である.

 そこで,出力にトランジスタやオペアンプ等を追加することで,最大出力電圧・電流を拡大できる.

 トランジスタ(FET)によるオープンドレイン回路を利用すると,出力電圧と電流は外部電源とトランジスタの性能によって自由に設定できるようになる.
 例えば,H7N0307AB の場合,最大印加電圧は 30 V であり,最大電流は 60 A である.
 このような回路により,マイコンで照明用 LED やモータ等のような大電流負荷も動作させることがきるようになる.
 
■11.3 PWM出力インターフェイス
 PWM(Pulse Width Modulation:パルス幅変調)は,周期方形波(矩形波)パルスのデューティ比を変化させて変調する変調方式.
 デューティ比:  τ:パルス幅,T:周期
   Duty 75%
 Duty 50%
Duty 25%

●主な応用例
 ・情報を Duty比に変換して伝送する.
 ・平均電力(電圧/電流)を制御する(擬似的なアナログ出力).

◆PWM出力インターフェイスのアルゴリズム
 PWM出力を制御するためには,少なくとも2つのカウンタ(変数)が必要.

 ・周期T を制御するための変数を period,デューティ比を制御するための変数を duty (初期値:0)として設計する.

 ・一定間隔で実行されるインターバルタイマルーチンで実行することで,比較的容易に実行できる.

インターバルタイマルーチンのアルゴリズム
 
■period はインターバル毎にインクリメントされる.

period が上限(周期:T)に達した場合.【edge_up操作
 .period は 0 にリセットされる.
 ・PWM出力端子を「1(edge_up)」にする.
  ただし,duty = 0 の場合は edge_up しない.

period が上限(周期:T)に達しない場合.【edge_down操作
 ・period が duty と一致した場合に,PWM出力端子を「0(edge_down)」にする.
 ・ただし,duty ≦ period.

【例】T = 10,duty = 5 の場合のPWM出力.

■課題
 以下に示す内容のプログラムを作成し,その「フローチャート」と「ソースコード」を示しなさい.
 ただし,LCD制御ライブラリの「フローチャート」と「ソースコード」は示さなくてよい.

プロジェクト名 step11
内容 PWMによるLED点灯制御
 ・ハードウェア:XH-00026C
 ・入力(SW1,SW2)
   SW1: 1回押す毎にDuty比を10%アップする(上限100%).
   SW2: 1回押す毎にDuty比を10%ダウンする(下限0%).
 ・出力(LED1およびLCD)
   LED: Duty比に従って点滅する(0〜100%まで10%刻みで11段階).
   LCD 1行目: “step11”+名前
         2行目: Duty比表示(“Duty= 00%”〜“Duty=100%”)
正解例オブジェクトコード step11.hex

 レポートは,下記のWordファイルを使用して作成すること.なるべく簡潔にまとめることが望ましい.
 Form11.docx

 WebClassより期限内に提出すること.