1.はじめに
これまで交流電源の基準波形は,ROMとDAコンバータ(AD7523)を使ったGAIN(振幅)可変の正弦波生成回路を
用いて生成していた。
GAINを可変するのは,ソフトスタート機能や過負荷時の出力抑制,過電流の順次垂下を実現させるためである。
従来回路部品のROMやAD7523などの部品が入手困難となり高価格となっていることから,
安価で且つ簡単なGAIN可変の正弦波生成回路を製作したので紹介する。
2.PIC12F1840による正弦波生成回路
<出力ポート>
①RA2:PWM信号
フィルタを通し正弦波にする
②RA5:極性反転信号
片側PWM波形を極性反転し
SIN波を作る
<入力ポート>
③RA4:GAIN信号
AD入力しGAINを可変
(ボリューム可変)
<主な回路部品と価格>
①PIC12F1840 @150
②TC4053BP @40
③LM358 @30
価格は秋月電子通商の参考価格
製作実験基板写真を右に示す
3.出力波形
(1)正弦波波形(右図) (5msec/div , 2V/div)
①周波数は50Hz固定
②基準CLK=2MHz
③SIN波1波を2MH÷50Hz=40kパルスで生成
1波を200分割すると,PWM分解能200
(2)起動・停止:出力ONはアナログ信号を与えて実現
R=1MΩとC=0.1μFの時定数で,立上り,立下り (50msec/div , 2V/div)
(3)過負荷垂下状態を模擬 (AD入力端子をGNDにシュートして確認) (10msec/div , 2V/div)
①1msec程度で垂下可能 ②垂下・復帰
GAIN制御はプログラムが介在しているが, 垂下後,ソフトスタートで再起動
応答に問題ない
4.プログラム
(1)SINデータテーブル:200個(半波100個)のPWMデータと極性信号を2次元配列で用意しておく
(分解能が200なので,PWMデータ最大値は199である)
ExcelでSINデータ計算し,テーブルを作り,プログラムにコピー&ペーストで簡単に作成できる
(2)PWM機能(Timer2:周期設定)で10kHz割込(200個データ*50Hz=10kHz)
(3)10kHz割込毎にSIN波データを読込み,ADコンバータ(8bit)でGAIN計算し出力する
(4)ADコンバータはmainループ内で常時変換を繰り返し,8個の移動平均をする
サンプルプログラムはこちら