2017年4月23日日曜日

AC調光機(PIC16f819)(位相制御ともいうらしい)



忘れないうちに、、ソースはこれ。(たぶん少しおかしい、、)

2017/5/9 LCD表示に関する型変換ミスのバグを修正(ソース分割は面倒なのでしない、、

作ったは良いが、電球がちらつく。基板でちゃんと作れば安定するかもしれないという代物。ゼロクロスを計測するところ(ハード)、トライアックを制御するところ(ハード)にハマりました。、、

ゼロクロス計測のはまったところ、定数決めるのが難しかった、、
※他の方法も試してみます、、またいつの日か新しく、投稿します。

結果的に上のようにすると、ふらつきはあるもののゼロクロス信号が読めるようになりました。フォトトライアックによるので、定数とかは「ACゼロクロスの検出試験(ソフトPIC16F819)」で確認しながら進めるのがいいかな?


PIC16F1705って、ZCD(ZeroCrossDitect)機能がついてる、、そっちのがいいけどpickit3持ってないからなぁ、、、ま、いいか


トライアック制御ではまったのは、2か所

知っている人は知っている、秋月電子のSSRキット、これに信号を送ってみたんですが、、これは位相制御用には使えないのかもしれない、回路図違うし、SSRと名打ってるし、、
(今回の位相制御テストでは機能しなかった)


あきらめて作ったのがこれ、 トライアックにスナバーレストライアックBTA24-600CW
とフォトトライアック(LP560G)[何かばらしたときに取っておいたもの]を使用しトライアック制御用のパーツを作りました。結線図はここには載せませんがいろんなとこで公開しているようなので、そちらをどうぞ。


これをドライブしようとしたのですが、うまくいかない(フォトトライアックのデータシート読んでないしな、、)、、、


ドライブ用回路(トランジスタ2SC1815で増強)をかます
(ベースに抵抗も入っていない全くまねできない結線だ、、と自分で思う)


これで、AC調光は一応動いた(ボリュームを動かすと、調光ができる)、、


しかし問題が、、
つまみを動かすと、ちらついたり、強弱が変になったりします。
ソフトのバグ取りが必須です。

ワットチェッカーで電球直結だと35Wの消費電力なのですが、調光器を接続すると22Wまでしか消費電力があがらない、、(見た目、光量は変わらないのですが、、)


また、更新するかもしれない、、とりあえずEND

2017年4月21日金曜日

PICのADコンバータ(PIC16F819)


この写真は頂き物です。
ADコンバータの写真は絵的に変化がないのでこれにしてみました。
PICのソースコードはこれ

2017/5/9 LCD表示に関する型変換ミスのバグを修正済。(ソース分割は面倒なのでしない、、)

あまりに不親切なのので、図を載せておきます。


追記:AD converterで読み込んだ値を前述のLCDに表示させているだけのプログラムです。

2017年4月18日火曜日

ACゼロクロスの検出試験(ソフトPIC16F819)


ACからのセンシングした情報(この写真は失敗情報)です。PICのソースコードはこれ

2017/5/9 LCD表示に関する型変換ミスのバグを修正済。(ソース分割は面倒なのでしない、、)

内部クロック2MHzを使用、FOSCで1/4,さらにプリスケーラで1/8にしたタイマを使用し、0Vを10回拾った時のタイマ値を表示していますが、、想定の倍の値になっている。
何か間違っているのだろうか、、

2M/(4*8)*1/120=520.83 x10なのに、倍だ、、、、

もしかして、ACフォトトランジスタのLED1個壊れてる、、、、壊れてました、、、
入力側、一方向でしか、出力側が反応しなかった、、、、、、


気を取り直して、センサ部を作り直し(前の記事見てください。)

結果を確認したのですが値が正しく出ない。
プログラム側の検証、プログラム一番下のcount値の値を1に変更した結果がこれ

検出1個目のカウント数、期待する520の半分でした、、


プログラム側の検証、プログラム一番下のcount値の値を2に変更した結果がこれ

検出2個分のカウント数
760-247=513

想定に近い値が出た!!

ということで、ACのゼロクロスの検出は成功としよう!
次は、AC調光器につかう「つまみ」、ADコンバータだな、



2017年4月17日月曜日

AC100Vで遊ぼう!ゼロクロス検出(ハード)(危険だから自己責任で)


※また、ゼロクロスの実験記事書きます(たぶん17年の6月くらいには、、)、、100Vは怖いですが、ほかの方法もやってみる


PICを使ったAC調光器を作ろうと思い立ちフォトトランジスタを買ってきた。入力(センサ側)がAC対応のやつ(TLP520らしい)です。これを使って正弦波(ACね)との同期信号を得ます。


フォトトランジスタの入力にACを入れるわけですが商用電源に直でつなげると、たやすくぶっ壊れるわけです。トランスを入れると安全な気がするのですが大きく、重く、値も張るのでそれ以外の方法で、、、ということで下の写真のようにしました。

AC100-コンデンサ(473)→100MΩ→フォトトランジスタ(LED)→AC100




片方のLEDがぶっ壊れました。
ACで使えるフォトトランジスタだったのですが、一方の機能が死にましたorz
そらそうか、片方からは容赦なく電流が流れるからね、、



で次の方法に変えたら壊れずに動作しました♪
AC100V-コンデンサ(473)→フォトトランジスタ(LED)→コンデンサ(473)→AC100V



商用電源(100V60Hz)にコンデンサ473を繋げています。リアクタンスがあるので1.772mAだけ通されるはずですが、両方に繋げてるので2倍かな?このフォトトランジスタには1.1Vかかっています。

動作確認については次の記事に書いてます。






2017年4月15日土曜日

今更、、IM50175H(PIC16F819)

2008年6月2日にこのブログで書いた100円LCD(死蔵)を掘り出して動かしてみました。「あしたなにしよぉぅ」さんのページに詳細が載ってたのでそれを頼りにXC8で書いています。詳細はソースを載せます。もう買えないけどシリアルレジスタの液晶になら応用が利くのではないかと思います。PICとの接続線は3本です。

プログラムは0x0000~0xffffまでをカウントし10進数表示するものです。バグというか、、2599以降、百の桁の値がおかしくなります。XC8の問題なんだけどね

※LCD表示へ表示する際の型変換の使い方がおかしかったみたい、ソース修正しました。2017/5/9

ソースにインラインアセンブラでアセンブラのswapコマンドを使用しています。いろんなとこでシフト演算子(<<)を使えばいいとありますが、インラインアセンブラのほうがマシンコードが少なかったです。無償XC8の素のコンパイル(最適化)って無いに等しいのかもしれない、、

IM50175Hの使用したピンを記載しておきます。pic側はソース見てください。

1 電源 +5V
2 未使用
3 未使用
4 LATCH (立ち上がりで出力)
5 DATA
6 CLK (立ち上がりでDATA取り込み)
7 GND





修正したついでに、、
表示用関数と、ヘッダファイルと、main部分(表示関数を呼び出して使っている箇所)にソースを分割しておいた。