RM-S1AM互換リモートケーブル購入& sony α33 インターバルタイマー接続 [電子工作]
RM-S1AM互換リモートケーブル購入
sony α33対応のリモートレリーズケーブルRM-S1AM換品(ケンコー リモートコード ソニー S1)を安価に購入した。
分解してみると、オリンパス互換のリモートケーブルと同じ3枚の板バネから構成されていた。ただ結線は異なり、中の板バネが0V、短板バネが2.95Vでfocus、長板バネが2.95Vでshutterに接続されていた。接続間違いか
接点には60uA流れた。ケーブルの色が違っていたが0vの位置が分かったので、昔作ったオリンパスペンE-PL5向けのインターバルタイマーと同じ回路でユニバーサル基板に組み上げた。
α33と接続しインターバル撮影が出来る事を確認。SiriusCompを使って動画作成。タイムラプス動画もできる。
シャッタースピード:10s(カメラ)
インターバル :25s
サイクル :150
家の前は視界よくなく電線が大きく入っている。
再生できない場合、ダウンロードは🎥こちら
ISO上げすぎて全体に白くなってしまった。
最近のカメラはタイムラプス機能を持っているのが多いので、リモートタイマーは不要。便利になったものだ。
オリンパスE-PL5向けタイマーと同じ回路、FW
https://nakjack.blog.so-net.ne.jp/2016-07-07
回路図
18F14K50 HEX
sony α33対応のリモートレリーズケーブルRM-S1AM換品(ケンコー リモートコード ソニー S1)を安価に購入した。
分解してみると、オリンパス互換のリモートケーブルと同じ3枚の板バネから構成されていた。ただ結線は異なり、中の板バネが0V、短板バネが2.95Vでfocus、長板バネが2.95Vでshutterに接続されていた。接続間違いか
接点には60uA流れた。ケーブルの色が違っていたが0vの位置が分かったので、昔作ったオリンパスペンE-PL5向けのインターバルタイマーと同じ回路でユニバーサル基板に組み上げた。
α33と接続しインターバル撮影が出来る事を確認。SiriusCompを使って動画作成。タイムラプス動画もできる。
シャッタースピード:10s(カメラ)
インターバル :25s
サイクル :150
家の前は視界よくなく電線が大きく入っている。
再生できない場合、ダウンロードは🎥こちら
ISO上げすぎて全体に白くなってしまった。
最近のカメラはタイムラプス機能を持っているのが多いので、リモートタイマーは不要。便利になったものだ。
オリンパスE-PL5向けタイマーと同じ回路、FW
https://nakjack.blog.so-net.ne.jp/2016-07-07
回路図
18F14K50 HEX
PIC16F18325による周波数カウンタ [電子工作]
PIC16F18325による周波数カウンタ 2種
秋月で、PIC16F18325が100円で売られていたので、事例を参考に安価な周波数カウンタを作った。
mcc(MPLAB Code Configurator)を使ってCLCやタイマーの設定を行った
構成
TMR2:基準時間発生に使用。mccで作られた"tmr2.c"の割り込み処理にユーザ処理を記述する。
TMR3,TMR5:2個の16ビットカウンタをCLCを使って連結し32ビットカウンタとする。
TMR3がオーバフローするとTMR5をカウントアップする。オーバフローで割り込みは使わない。TMR3,TMR5のon/off機能を使って基準時間だけT3CKI(RC5)のパルスをカウントする。計数が終わるとTMR3とTMR5を読み出して表示する。
CLCの設定:TMR3のオーバフローをピンに出す。
ブロッグ図的イメージ
TMR3オーバーフロー信号。T3CKIの1サイクル分出る様だ。
MPLABX,コンパイラは以下を使った。
MPLABX v3.51
xc8 v1.44
カウンタ入力:T3CKI(RC5)
OVFL:CLC1(RC1)
2段目カウンタ入力:T5CKI(RC0)
RC1とRC0をピンで接続する。LCDはどちらか一方を接続し、LCDに対応したHEXを書き込む。
カウンタ1:外部発振器、シリアル化したLCD1602、8桁表示
カウンタ2:水晶発信器、TS174 6桁表示 0.1k単位
カウンタ2は組み込みとして使う為、基板カットしてTS174のサイズに近づけた
LCDを外した所
LCD1602SPI回路図再掲。E信号を遅らせるために1G32の出力に220Pを接続した。効果は未評価。
16F18325は14ピンなので使えるピンが少ない。LCDにはシリアル化したLCD1602をを使った。
カウンタ2のLCDにはAitendoのTS174を使った。TS119、TS174、TS5173は同じライブラリで使える。こちらも3ピンで制御できる。単位がKHz表示で無いのが残念。小数点表示はKの位置表示として使った。
水晶には手持ちの12.8MHzを使ったが精度がイマイチ信用できない。カウンタ1は、将来高精度発振器を入手したときの為に外部入力モードにしている。カウンタ2は安価にするため、12.8MHz水晶をPICで発信させた(HSモード)。
LCDのライブラリ内で、制御に使うピンを定義する。当初LCDの書き込み信号をWRとしていたが、EEPROMの処理の中のWRと競合していたのでLCDライブラリ側の信号名をWRTとした。
lcd_SPIlib2.h
#define RCK LATAbits.LATA0
#define WRT LATAbits.LATA1
#define DT LATAbits.LATA2
TS174
HTLCD_lib2.h
#define CS LATAbits.LATA2
#define WRT LATAbits.LATA1
#define DT LATAbits.LATA0
高精度の発振器を持っていないので、校正出来ていない。
PIC16F18325 カウンタ ソース&HEX。mccで生成したファイルを後から修正したので、コメントは違っているかも。試行錯誤した痕跡が残っているが公開。
回路図
-------------------------------------------------------------------
参考
はじめてのPIC
18f14K50カウンタ
http://sky.geocities.jp/home_iwamoto/page/P14K50/P14_B03.htm
電子工作のための PIC16F1ファミリ活用ガイドブック 技術評論社
--------------------------------------------------------------------
秋月で、PIC16F18325が100円で売られていたので、事例を参考に安価な周波数カウンタを作った。
mcc(MPLAB Code Configurator)を使ってCLCやタイマーの設定を行った
構成
TMR2:基準時間発生に使用。mccで作られた"tmr2.c"の割り込み処理にユーザ処理を記述する。
TMR3,TMR5:2個の16ビットカウンタをCLCを使って連結し32ビットカウンタとする。
TMR3がオーバフローするとTMR5をカウントアップする。オーバフローで割り込みは使わない。TMR3,TMR5のon/off機能を使って基準時間だけT3CKI(RC5)のパルスをカウントする。計数が終わるとTMR3とTMR5を読み出して表示する。
CLCの設定:TMR3のオーバフローをピンに出す。
ブロッグ図的イメージ
TMR3オーバーフロー信号。T3CKIの1サイクル分出る様だ。
MPLABX,コンパイラは以下を使った。
MPLABX v3.51
xc8 v1.44
カウンタ入力:T3CKI(RC5)
OVFL:CLC1(RC1)
2段目カウンタ入力:T5CKI(RC0)
RC1とRC0をピンで接続する。LCDはどちらか一方を接続し、LCDに対応したHEXを書き込む。
カウンタ1:外部発振器、シリアル化したLCD1602、8桁表示
カウンタ2:水晶発信器、TS174 6桁表示 0.1k単位
カウンタ2は組み込みとして使う為、基板カットしてTS174のサイズに近づけた
LCDを外した所
LCD1602SPI回路図再掲。E信号を遅らせるために1G32の出力に220Pを接続した。効果は未評価。
16F18325は14ピンなので使えるピンが少ない。LCDにはシリアル化したLCD1602をを使った。
カウンタ2のLCDにはAitendoのTS174を使った。TS119、TS174、TS5173は同じライブラリで使える。こちらも3ピンで制御できる。単位がKHz表示で無いのが残念。小数点表示はKの位置表示として使った。
水晶には手持ちの12.8MHzを使ったが精度がイマイチ信用できない。カウンタ1は、将来高精度発振器を入手したときの為に外部入力モードにしている。カウンタ2は安価にするため、12.8MHz水晶をPICで発信させた(HSモード)。
LCDのライブラリ内で、制御に使うピンを定義する。当初LCDの書き込み信号をWRとしていたが、EEPROMの処理の中のWRと競合していたのでLCDライブラリ側の信号名をWRTとした。
lcd_SPIlib2.h
#define RCK LATAbits.LATA0
#define WRT LATAbits.LATA1
#define DT LATAbits.LATA2
TS174
HTLCD_lib2.h
#define CS LATAbits.LATA2
#define WRT LATAbits.LATA1
#define DT LATAbits.LATA0
高精度の発振器を持っていないので、校正出来ていない。
PIC16F18325 カウンタ ソース&HEX。mccで生成したファイルを後から修正したので、コメントは違っているかも。試行錯誤した痕跡が残っているが公開。
回路図
-------------------------------------------------------------------
参考
はじめてのPIC
18f14K50カウンタ
http://sky.geocities.jp/home_iwamoto/page/P14K50/P14_B03.htm
電子工作のための PIC16F1ファミリ活用ガイドブック 技術評論社
--------------------------------------------------------------------
PIC16F18325によるPWM 簡易パルス発生器 [電子工作]
PIC16F18325によるPWM 簡易パルス発生器
素性不明なパルストランスの特性を調べる為、PWM パルス発生器を作った。
ジャンク基板に乗っていたトランス。巻線は髪の毛より細い。インダクタンスは30uHと120uHであったので巻線比は1:2らしい。巻線は2組ある。ので1:4の構成にできる。
パルス発生器と接続した。無負荷でも2Khzあたりでは1A以上の入力電流であったが、200KHzでは10mA程度に減少。供給電源の保護回路により1A以上流れないので助かった。スイッチングFETはパルス発生器に実装したのを使ったが、配線長を考えトランスの近傍にあるのが望ましい。このトランスは負荷電流はほとんど取れない。1k抵抗を負荷に接続ですぐに電圧ドロップする。
PIC16F18325が安価であったので試しに使う。2k~500khzの間をscanし、出力電圧の最大値を記録できるようにした。scan時はduty50%固定であるが、PR2の値が小さいときのduty値は概算値になる。
2khzから周波数x1.15で決定
1ステップ約90msとし、42ステップ終了後、電圧最大の周波数を設定し、43から64ステップまで同一周波数を出した後に最初のステップに戻る。最初の4ステップは120msで切り替えている。周波数切り替え時、波形が乱れる事があるが、まだ対応できていない。
電圧安定まで4ms程度かかっている
手動で周波数とdutyが設定出来るようにした。周波数は高い(PR2の値が小さい時)は分解能に制限あり。手動だと0.5k~600k程度まで可能。AD変換を2チャンネル使い、電圧、電流を表示する。Vrefは1.024Vに設定した。AN4は1/20に分圧するつもりで電圧表示をmax20Vにした。
表示には、買い貯めしていたAitendoのETM11256(112x56)を使ったが、立ち上げ時の設定でC12864やJCG12864も使える。(コントラストの調整が必要だが)表示範囲は112x56内に抑えている。
コントラスト調整後
反転表示
RUN/STOPスイッチを押下したまま電源投入するか、RC4を10Kでプルアップすることで、C12864spi、F12864、JCG12864モードになる。LCDを切り替えた時は、保存した設定は初期化されるので、電圧補正を含め再設定が必要。切り替えないときは保持される。
JCG12864の時は、最初は逆文字になっているので、設定モードからJCGモードにする。
JCG1264正常表示
aitendoのF12864だと思う。液晶固定していたので型名確認できず
とりあえず2枚の基板を作ってみたが、いくつか問題点が判明している
・タクトスイッチのチャッタ除去が十分でない。外部キー接続で回避
・PIC内部クロックを使ったため周波数精度が不明
・スイッチングFETの耐圧が30Vしかないので、高圧評価は出来ない
・FETの電流は片側しか測定していないが、同一チップのFETなので、差は5%以下であった
・スタート時、0~41ステップのどの周波数から開始するかは不明
・周波数切り替え時に波形乱れあり。
仕様
scan 2k~500k 自動42step繰り返し
step 2k~500khz
PR2 255~4
scale x1 x4 x16 x64 TMR2のprescale設定
duty 5%ステップ 5-90% 周波数で制限あり
PICのAD変換機能を使って電圧、電流を表示。レンジは固定
-------------
モード設定 設定変更はEEPROMに格納
電圧表示調整
コントラスト
表示反転
JCGモード
------------------------------------
PIC16f18325PWMのhex
-----------------------------------
素性不明なパルストランスの特性を調べる為、PWM パルス発生器を作った。
ジャンク基板に乗っていたトランス。巻線は髪の毛より細い。インダクタンスは30uHと120uHであったので巻線比は1:2らしい。巻線は2組ある。ので1:4の構成にできる。
パルス発生器と接続した。無負荷でも2Khzあたりでは1A以上の入力電流であったが、200KHzでは10mA程度に減少。供給電源の保護回路により1A以上流れないので助かった。スイッチングFETはパルス発生器に実装したのを使ったが、配線長を考えトランスの近傍にあるのが望ましい。このトランスは負荷電流はほとんど取れない。1k抵抗を負荷に接続ですぐに電圧ドロップする。
PIC16F18325が安価であったので試しに使う。2k~500khzの間をscanし、出力電圧の最大値を記録できるようにした。scan時はduty50%固定であるが、PR2の値が小さいときのduty値は概算値になる。
2khzから周波数x1.15で決定
1ステップ約90msとし、42ステップ終了後、電圧最大の周波数を設定し、43から64ステップまで同一周波数を出した後に最初のステップに戻る。最初の4ステップは120msで切り替えている。周波数切り替え時、波形が乱れる事があるが、まだ対応できていない。
電圧安定まで4ms程度かかっている
手動で周波数とdutyが設定出来るようにした。周波数は高い(PR2の値が小さい時)は分解能に制限あり。手動だと0.5k~600k程度まで可能。AD変換を2チャンネル使い、電圧、電流を表示する。Vrefは1.024Vに設定した。AN4は1/20に分圧するつもりで電圧表示をmax20Vにした。
表示には、買い貯めしていたAitendoのETM11256(112x56)を使ったが、立ち上げ時の設定でC12864やJCG12864も使える。(コントラストの調整が必要だが)表示範囲は112x56内に抑えている。
コントラスト調整後
反転表示
RUN/STOPスイッチを押下したまま電源投入するか、RC4を10Kでプルアップすることで、C12864spi、F12864、JCG12864モードになる。LCDを切り替えた時は、保存した設定は初期化されるので、電圧補正を含め再設定が必要。切り替えないときは保持される。
JCG12864の時は、最初は逆文字になっているので、設定モードからJCGモードにする。
JCG1264正常表示
aitendoのF12864だと思う。液晶固定していたので型名確認できず
とりあえず2枚の基板を作ってみたが、いくつか問題点が判明している
・タクトスイッチのチャッタ除去が十分でない。外部キー接続で回避
・PIC内部クロックを使ったため周波数精度が不明
・スイッチングFETの耐圧が30Vしかないので、高圧評価は出来ない
・FETの電流は片側しか測定していないが、同一チップのFETなので、差は5%以下であった
・スタート時、0~41ステップのどの周波数から開始するかは不明
・周波数切り替え時に波形乱れあり。
仕様
scan 2k~500k 自動42step繰り返し
step 2k~500khz
PR2 255~4
scale x1 x4 x16 x64 TMR2のprescale設定
duty 5%ステップ 5-90% 周波数で制限あり
PICのAD変換機能を使って電圧、電流を表示。レンジは固定
-------------
モード設定 設定変更はEEPROMに格納
電圧表示調整
コントラスト
表示反転
JCGモード
------------------------------------
PIC16f18325PWMのhex
-----------------------------------
FusionPCBにプリント基板を注文した [電子工作]
FusionPCBに初めてプリント基板を注文した
20年前のAMDのCPLD MACH465が出てきた(PQFP208p)。
実装前の写真は撮り忘れたので基板実装後
丁度208PINの変換基板(当時の1000円の値札付き)もあったので、評価してみようと思った。
しかしMACH465はGND32ピン、Vcc24本もあるので、ユニバーサル基板での手配線がきつい。今まで、回路図はEagleで書いていたが、brdは扱ったことが無かったので、しばらくネットでEagleのbrd作成について練習した。Egleのライブラリをみているとamd-mach.libの中にM4-256P208とM4-128P100があり、それぞれMACH465とMACH445のピンに一致している様であったので、MACH465とMACH445にrenameして使った。
MACH465の評価ボードにするため、電源、グランド、パスコン、JTAGコネクタ、SMDランドを幾つか実装した。ピン配置が悪いのか自動配線では20%程度しかパターンが引けなかったので、手動で引くことになった。DRCをかけるとStopMaskが一杯でたが、シルク位置をずらしてOKとなる。Fusionから2層のCAMprosessを持ってきてgerberを作成。Fusionの日本語のページにガーバーファイルを出力する方法というのがあり、これに従う。
http://support.seeedstudio.com/knowledgebase/articles/1176223-%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
後にSWITCHSCIENCEにEagleのバージョンに対応したCAMがあることが分かったので、こちらを使った。CAMprosessの結果出来たファイル8種をZIPで圧縮して、Fusionのページからgerberファイルを登録。
gerberviewerで見える様になるので、確認する。基板サイズが反映されない時はもう一度Add your gerber fileをクリックして登録する。
あとはCartにいれて、発送方法を選択してPayPalで決算。発送はFedexを使ってみた。初めてであったが、先人の事例が参考に出来たので、それほど迷わなかった。注文前にユーザー登録しておくとスムーズ。
8月16日 注文
9月 1日 完了
9月 5日 fedex受付
9月 7日 商品受領
MACH465基板と同時にMACH445評価基板も注文し、9月7日に両基板を受領。Fusion工場の更新の影響か、製造に2週間かかった。履歴によると9月1日には製造完了しているが、Fedexは5日に集荷した様だ。それでも3千円程度で20枚の評価基板が3週間で出来るのはうれしい。同じ中国でもPCBGOGOは24H稼働なので納期は早そう(価格は少し高い様だ)。緊急時に試してみたい。
変換基板より少し大きい
MACH445評価基板。秋月のBタイプユニバーサル基板にサイズを合わせた。95x72mm
基板をチェックすると、JTAGコネクタが逆になっている、MACH445基板の電源コネクタのスルーホールが細すぎ,水晶OSCのピン不足、シルクの重なり発見。いずれも設計ミス。JTAGコネクタのミスは、変換コネクタを作って回避し、サンプルプログラムがMACH465に書けることを確認。またSIGNATUREで設定したUserCode(32bit)が読める事を確認した。 当面この基板で評価はできるが、機会あれば修正したい。
評価環境はできたが、アイデア無く作るものがない。MACH465の消費電流が5Vで、270mAも流れるのは、ちょっと使いづらい。20年前のCPLDなので仕方ないが。少し時間が掛かったが、PCB 10枚で4.9$はかなり助かる。少し前に基板を自作しようと思い、塩化第二鉄を購入したが、基板を注文した方が安価であった。これで送料が安ければユニバーサル基板の出番は無いかもしれない。
macrocell
MACH465 256 208PQFP(0.5mmピッチ)
MACH445 128 100PQFP(0.65mmピッチ
参考
SWITCHSCIENCE
https://www.switch-science.com/pcborder/techguide/
Seed FusionPCB
https://www.seeedstudio.com/fusion_pcb.html
https://fusionpcb.jp/fusion_pcb.html
http://support.seeedstudio.com/knowledgebase/articles/1176223-%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
PCBGOGO
https://www.pcbgogo.jp/orderonline.aspx
-----------------------------------------------------------
20年前のAMDのCPLD MACH465が出てきた(PQFP208p)。
実装前の写真は撮り忘れたので基板実装後
丁度208PINの変換基板(当時の1000円の値札付き)もあったので、評価してみようと思った。
しかしMACH465はGND32ピン、Vcc24本もあるので、ユニバーサル基板での手配線がきつい。今まで、回路図はEagleで書いていたが、brdは扱ったことが無かったので、しばらくネットでEagleのbrd作成について練習した。Egleのライブラリをみているとamd-mach.libの中にM4-256P208とM4-128P100があり、それぞれMACH465とMACH445のピンに一致している様であったので、MACH465とMACH445にrenameして使った。
MACH465の評価ボードにするため、電源、グランド、パスコン、JTAGコネクタ、SMDランドを幾つか実装した。ピン配置が悪いのか自動配線では20%程度しかパターンが引けなかったので、手動で引くことになった。DRCをかけるとStopMaskが一杯でたが、シルク位置をずらしてOKとなる。Fusionから2層のCAMprosessを持ってきてgerberを作成。Fusionの日本語のページにガーバーファイルを出力する方法というのがあり、これに従う。
http://support.seeedstudio.com/knowledgebase/articles/1176223-%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
後にSWITCHSCIENCEにEagleのバージョンに対応したCAMがあることが分かったので、こちらを使った。CAMprosessの結果出来たファイル8種をZIPで圧縮して、Fusionのページからgerberファイルを登録。
gerberviewerで見える様になるので、確認する。基板サイズが反映されない時はもう一度Add your gerber fileをクリックして登録する。
あとはCartにいれて、発送方法を選択してPayPalで決算。発送はFedexを使ってみた。初めてであったが、先人の事例が参考に出来たので、それほど迷わなかった。注文前にユーザー登録しておくとスムーズ。
8月16日 注文
9月 1日 完了
9月 5日 fedex受付
9月 7日 商品受領
MACH465基板と同時にMACH445評価基板も注文し、9月7日に両基板を受領。Fusion工場の更新の影響か、製造に2週間かかった。履歴によると9月1日には製造完了しているが、Fedexは5日に集荷した様だ。それでも3千円程度で20枚の評価基板が3週間で出来るのはうれしい。同じ中国でもPCBGOGOは24H稼働なので納期は早そう(価格は少し高い様だ)。緊急時に試してみたい。
変換基板より少し大きい
MACH445評価基板。秋月のBタイプユニバーサル基板にサイズを合わせた。95x72mm
基板をチェックすると、JTAGコネクタが逆になっている、MACH445基板の電源コネクタのスルーホールが細すぎ,水晶OSCのピン不足、シルクの重なり発見。いずれも設計ミス。JTAGコネクタのミスは、変換コネクタを作って回避し、サンプルプログラムがMACH465に書けることを確認。またSIGNATUREで設定したUserCode(32bit)が読める事を確認した。 当面この基板で評価はできるが、機会あれば修正したい。
評価環境はできたが、アイデア無く作るものがない。MACH465の消費電流が5Vで、270mAも流れるのは、ちょっと使いづらい。20年前のCPLDなので仕方ないが。少し時間が掛かったが、PCB 10枚で4.9$はかなり助かる。少し前に基板を自作しようと思い、塩化第二鉄を購入したが、基板を注文した方が安価であった。これで送料が安ければユニバーサル基板の出番は無いかもしれない。
macrocell
MACH465 256 208PQFP(0.5mmピッチ)
MACH445 128 100PQFP(0.65mmピッチ
参考
SWITCHSCIENCE
https://www.switch-science.com/pcborder/techguide/
Seed FusionPCB
https://www.seeedstudio.com/fusion_pcb.html
https://fusionpcb.jp/fusion_pcb.html
http://support.seeedstudio.com/knowledgebase/articles/1176223-%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
PCBGOGO
https://www.pcbgogo.jp/orderonline.aspx
-----------------------------------------------------------
RTC タイマー付き 学習リモコン(PIC16F1827) [電子工作]
タイマー機能付き 学習リモコン
冬の間、ばあちゃんはエアコンを付けたままにしている。寝室は仕方ないが、無人の居間も夜間はエアコンを付けたままにしているので、とても電気代が高い。エアコンには、タイマーが付いているが、毎日セットする必要がある。タイマーの設定方法を教えてもすぐに忘れるので、ばあちゃんには無理であった。
そこで、学習リモコンとTinyRTC(DS1307+EEPROM)を組み合わせて、設定時刻になったらリモコンのコードを発光させることにした。 同様なのが市販品にあるが、手持ちの部品+αで作ってみた。
学習リモコンのプログラムは、鈴木哲哉著者の『ボクの電子工作ノート』から流用、変更した。
エアコンのコードは18バイトあったので、格納できるコードをmax24バイトに拡張した。
RTCはI2CインタフェースのTinyRTC(DS1307+4KEEPROM)を使用。これはリチウム充電池 [LIR2032] を使う様になっているが、充電回路のR5(200Ω)を削除して充電不可のCR2032を使った。
7セグLCDはAitendoのTS174とTS119を使用。いずれも視野角が狭いので、ダイオードで電圧を調整している。左上の小文字が0-19まで表示できるので、機能表示とした。
赤外線の放射範囲を広げるため、赤外線LEDを2個使ったが、電流制限抵抗を33Ω(2.3V/33=70mA)としたので、到達距離はやや短い。
概略仕様
指定した時刻(分単位)に予め学習したリモコンコードを赤外線発光する
・学習コード:max24byte、4種
・プログラムタイマー:14個
・PIC16f1827
・RTC TinyRTC(DS1307+EEPROM)
・表示:7セグLCD TS119/TS174
・操作しない時は16秒でスリープ
操作方法
1.RTCの設定
OKを押して機能番号を0にする
SEL長押しして、入力モード
UPを押して時刻設定、SELでHH/MMを切り替える
OKを押して終了
2.リモコンコードの記録
OKを押して機能番号を1~4のいずれかに合わせる
SELを長押しして入力モード
リモコン発光部を受光器に向け、リモコンのキーを押す
認識すると、テータ数を表示。
16秒以内に認識出来ないと、自動リセット
3.タイマー設定
OKを押して機能番号を5~18に合わせる
SELを長押しして入力モード
HH/MM、コード番号を UPとSELで合わせる
OKを押して終了
4.その他のキー操作
・OK と UP 同時押し:機能0 RTC表示
・機能19にてSEL と UP 同時長押し:5-18のプログラムクリア
・表示モード で機能1~18にて UP :当該リモコンコードを赤外線発光(動作確認の為)
使用例
学習リモコンメモリ
1.エアコン1 ON
2.エアコン1 OFF
3.エアコン2 ON
4.エアコン2 OFF
タイマーメモリ
5 06:30 エアコン1ON
6 06:35 エアコン1ON
7 07:00 エアコン2ON
8 12:00 エアコン2OFF
9 23:00 エアコン1OFF
10 23:30 エアコン1OFF
寝室と居間用に学習リモコンを2台作って、エアコンの真下に設置した。
試したエアコンは古いものなので、最近は違っているかもしれない。リモコンコードバイト数 三菱霧ヶ峰:14byte、シャープ:18byte
朝は、目覚める前にエアコンが入って、就寝後に切れる様に設定した。 PICはスリープする様にしたが、動作時:3.8mA、スリープ時0.6mAと以外と電流が流れ、500mAHの電池で、10日ほどしか持たなかった。動作確認用のLEDは削除した方が良さそう。改善の余地がある。学習コードを増やすこともできるが、7セグ表示ではリモコンキーの対応が分かりにくいので、4コードとした。 時計の精度はあまり良くなかった。1ケ月で数分違っていた。
HDDがクラッシュしてソース不明になったので、現物から回収したHexのみ公開。2つのファイルの内容が少し違うが、変更内容は不明。いずれも基本機能は動作するので、マイナーな差分と思う。いい加減な管理で、ごめんなさい。
なお本リモコンは、無人の状態でも動作します。動作成功、失敗に関わらず結果につきましては自己責任でお願いいたします。また使えない機器があると思います。
回路図
Hex
説明書
---------------------------------------------------------------------------
冬の間、ばあちゃんはエアコンを付けたままにしている。寝室は仕方ないが、無人の居間も夜間はエアコンを付けたままにしているので、とても電気代が高い。エアコンには、タイマーが付いているが、毎日セットする必要がある。タイマーの設定方法を教えてもすぐに忘れるので、ばあちゃんには無理であった。
そこで、学習リモコンとTinyRTC(DS1307+EEPROM)を組み合わせて、設定時刻になったらリモコンのコードを発光させることにした。 同様なのが市販品にあるが、手持ちの部品+αで作ってみた。
学習リモコンのプログラムは、鈴木哲哉著者の『ボクの電子工作ノート』から流用、変更した。
エアコンのコードは18バイトあったので、格納できるコードをmax24バイトに拡張した。
RTCはI2CインタフェースのTinyRTC(DS1307+4KEEPROM)を使用。これはリチウム充電池 [LIR2032] を使う様になっているが、充電回路のR5(200Ω)を削除して充電不可のCR2032を使った。
7セグLCDはAitendoのTS174とTS119を使用。いずれも視野角が狭いので、ダイオードで電圧を調整している。左上の小文字が0-19まで表示できるので、機能表示とした。
赤外線の放射範囲を広げるため、赤外線LEDを2個使ったが、電流制限抵抗を33Ω(2.3V/33=70mA)としたので、到達距離はやや短い。
概略仕様
指定した時刻(分単位)に予め学習したリモコンコードを赤外線発光する
・学習コード:max24byte、4種
・プログラムタイマー:14個
・PIC16f1827
・RTC TinyRTC(DS1307+EEPROM)
・表示:7セグLCD TS119/TS174
・操作しない時は16秒でスリープ
操作方法
1.RTCの設定
OKを押して機能番号を0にする
SEL長押しして、入力モード
UPを押して時刻設定、SELでHH/MMを切り替える
OKを押して終了
2.リモコンコードの記録
OKを押して機能番号を1~4のいずれかに合わせる
SELを長押しして入力モード
リモコン発光部を受光器に向け、リモコンのキーを押す
認識すると、テータ数を表示。
16秒以内に認識出来ないと、自動リセット
3.タイマー設定
OKを押して機能番号を5~18に合わせる
SELを長押しして入力モード
HH/MM、コード番号を UPとSELで合わせる
OKを押して終了
4.その他のキー操作
・OK と UP 同時押し:機能0 RTC表示
・機能19にてSEL と UP 同時長押し:5-18のプログラムクリア
・表示モード で機能1~18にて UP :当該リモコンコードを赤外線発光(動作確認の為)
使用例
学習リモコンメモリ
1.エアコン1 ON
2.エアコン1 OFF
3.エアコン2 ON
4.エアコン2 OFF
タイマーメモリ
5 06:30 エアコン1ON
6 06:35 エアコン1ON
7 07:00 エアコン2ON
8 12:00 エアコン2OFF
9 23:00 エアコン1OFF
10 23:30 エアコン1OFF
寝室と居間用に学習リモコンを2台作って、エアコンの真下に設置した。
試したエアコンは古いものなので、最近は違っているかもしれない。リモコンコードバイト数 三菱霧ヶ峰:14byte、シャープ:18byte
朝は、目覚める前にエアコンが入って、就寝後に切れる様に設定した。 PICはスリープする様にしたが、動作時:3.8mA、スリープ時0.6mAと以外と電流が流れ、500mAHの電池で、10日ほどしか持たなかった。動作確認用のLEDは削除した方が良さそう。改善の余地がある。学習コードを増やすこともできるが、7セグ表示ではリモコンキーの対応が分かりにくいので、4コードとした。 時計の精度はあまり良くなかった。1ケ月で数分違っていた。
HDDがクラッシュしてソース不明になったので、現物から回収したHexのみ公開。2つのファイルの内容が少し違うが、変更内容は不明。いずれも基本機能は動作するので、マイナーな差分と思う。いい加減な管理で、ごめんなさい。
なお本リモコンは、無人の状態でも動作します。動作成功、失敗に関わらず結果につきましては自己責任でお願いいたします。また使えない機器があると思います。
回路図
Hex
説明書
---------------------------------------------------------------------------
ソニー SONY 学習機能付きリモコン RM-PLZ530D : テレビ/レコーダーなど最大8台操作可能 ブルー RM-PLZ530D L
- 出版社/メーカー: ソニー
- メディア: エレクトロニクス
ELPA タイマー付エアコンリモコン RC-32AC RC-32AC
- 出版社/メーカー: ELPA
- メディア: ホーム&キッチン
テレビ、チューナー、デッキ、3つの機器を操作できるリモコン ELPA(エルパ) マルチリモコンプラス 学習機能付 RC-TV007UDL 1746900 [簡易パッケージ品]
- 出版社/メーカー: TOS
- メディア: その他
キャラクタLCDの シリアルインタフェース化 [電子工作]
キャラクタLCDのシリアルインタフェース化
LCD8812Kのシリアル化を真似して、以前購入していたAitendoのキャラクタLCD DV16284をシリアルインタフェース化した。
電源以外の信号は、データ、クロック、ラッチの3本。LCD8812KのHC595によるシリアル化と同じ方法をとった。
改造方法
・DV16284のプラスチックハウジングをニッパーで適度に切り取る。
・ユニバーサル基板を40mmx23mmにカットする。(LCD裏に貼り付け出来るサイズ)
・SOPタイプのHC595をシール基板に半田付けしユニバーサル基板に両面テープで取り付ける
・1mm_14Pのフラットケーブルコネクタを基板に取り付ける。この時、端子がランドに当たるので、 絶縁シートを挟んでコネクタを基板に取り付ける
・LCDのコントラスト端子Voの最適値電圧を事前に求めて、固定抵抗値を決定。可変抵抗のままでも良い。
・回路図に従い結線。
・部品とFCケーブルが当たるので念のためケーブルをカプトンテープで補強
HC595のQBをRS信号としたので、HC595の遅延時間だけ、LCDのE信号を遅らせるつもりで、1素子ゲートHC1G32を2段使った。しかしこのゲートによる遅れは20ns程度でほとんど遅延対策にならなかった。規格外で動作したのか、このLCDにマージンがあるのか?。E信号直結でも使えるかもしれないが試していない。
バックライト無しでも十分見える。
SPI規格ではないが、HC595によるシリアル化したLCDライブラリを公開。
lcd_SPIlib.c
lcd_SPIlib.h
LCD8812Ktest.zipに含まれる
----------------------------------
LCD8812Kのシリアル化を真似して、以前購入していたAitendoのキャラクタLCD DV16284をシリアルインタフェース化した。
電源以外の信号は、データ、クロック、ラッチの3本。LCD8812KのHC595によるシリアル化と同じ方法をとった。
改造方法
・DV16284のプラスチックハウジングをニッパーで適度に切り取る。
・ユニバーサル基板を40mmx23mmにカットする。(LCD裏に貼り付け出来るサイズ)
・SOPタイプのHC595をシール基板に半田付けしユニバーサル基板に両面テープで取り付ける
・1mm_14Pのフラットケーブルコネクタを基板に取り付ける。この時、端子がランドに当たるので、 絶縁シートを挟んでコネクタを基板に取り付ける
・LCDのコントラスト端子Voの最適値電圧を事前に求めて、固定抵抗値を決定。可変抵抗のままでも良い。
・回路図に従い結線。
・部品とFCケーブルが当たるので念のためケーブルをカプトンテープで補強
HC595のQBをRS信号としたので、HC595の遅延時間だけ、LCDのE信号を遅らせるつもりで、1素子ゲートHC1G32を2段使った。しかしこのゲートによる遅れは20ns程度でほとんど遅延対策にならなかった。規格外で動作したのか、このLCDにマージンがあるのか?。E信号直結でも使えるかもしれないが試していない。
バックライト無しでも十分見える。
SPI規格ではないが、HC595によるシリアル化したLCDライブラリを公開。
lcd_SPIlib.c
lcd_SPIlib.h
LCD8812Ktest.zipに含まれる
----------------------------------
FT231XS USB-シリアル変換ボード 工作 [電子工作]
FT231XS USB-シリアル変換ボード 工作
以前 FT231SXを秋月の28PSSOP変換基板に実装してUSB-シリアル変換基板を作っていた。
しかしこの時使った変換基板は、推奨IC幅7mmである為、FT231XSでは片側ピンにジャンパを這わせる必要があった。(FT232RLには良いサイズの変換基板であった)
目が悪くなった今では0.65mmピッチの半田付けは、かなりつらい。資金ある人は完成品を購入シた方がキレイで早い。最近、秋月の広告を見ていると、FT231XSが使えるSSOP22ピン(0.635mm)変換基板が出ていたので、USB-シリアル変換ボードを追加で自作した。新規に部品調達するとあまり安く無い。
工作手順
1.SSOP22P変換基板の11ピン側にminiUSBコネクタの取り付け穴を開ける。 100均の0.5mmのドリルで下穴を開け、0.8mmドリルで穴を広げる。多少穴位置がズレたが、 USBコネクタのピンを曲げて入ればOKとする。(いい加減だ)
2.USBコネクタとVCC,VDDがショートしないように変換基板の11P,12Pのパターンをカットし、USBP,USBMに抵抗入れるために、13P,14Pのパターンをカットする。
3.FT231XSを半田付け
4.miniUSBコネクタのハウジングは空きランドに半田付けする。
5.分割ソケットピンから7ピン分を切り出し、USBコネクタとは反対側のランドに半田付けする。
6.必要な信号を結線する。(我ながら半田がきたない)
回路図は28P基板の時。22P基板の時は、空きランドと基板のパターンをカットしてランドとして利用。
FT231XSと変換基板の位置関係を利用したので、コネクタのピン配列は独自の配列になってしまった。
Tx、GND、Rx、-、+5V、-、DTR
予備のUSBシリアル変換基板を作成。変換基板を使ってESP8266の実験中。これは別の機会に紹介予定。
---------------------------------------------------------------------------------
以前 FT231SXを秋月の28PSSOP変換基板に実装してUSB-シリアル変換基板を作っていた。
しかしこの時使った変換基板は、推奨IC幅7mmである為、FT231XSでは片側ピンにジャンパを這わせる必要があった。(FT232RLには良いサイズの変換基板であった)
目が悪くなった今では0.65mmピッチの半田付けは、かなりつらい。資金ある人は完成品を購入シた方がキレイで早い。最近、秋月の広告を見ていると、FT231XSが使えるSSOP22ピン(0.635mm)変換基板が出ていたので、USB-シリアル変換ボードを追加で自作した。新規に部品調達するとあまり安く無い。
工作手順
1.SSOP22P変換基板の11ピン側にminiUSBコネクタの取り付け穴を開ける。 100均の0.5mmのドリルで下穴を開け、0.8mmドリルで穴を広げる。多少穴位置がズレたが、 USBコネクタのピンを曲げて入ればOKとする。(いい加減だ)
2.USBコネクタとVCC,VDDがショートしないように変換基板の11P,12Pのパターンをカットし、USBP,USBMに抵抗入れるために、13P,14Pのパターンをカットする。
3.FT231XSを半田付け
4.miniUSBコネクタのハウジングは空きランドに半田付けする。
5.分割ソケットピンから7ピン分を切り出し、USBコネクタとは反対側のランドに半田付けする。
6.必要な信号を結線する。(我ながら半田がきたない)
回路図は28P基板の時。22P基板の時は、空きランドと基板のパターンをカットしてランドとして利用。
FT231XSと変換基板の位置関係を利用したので、コネクタのピン配列は独自の配列になってしまった。
Tx、GND、Rx、-、+5V、-、DTR
予備のUSBシリアル変換基板を作成。変換基板を使ってESP8266の実験中。これは別の機会に紹介予定。
---------------------------------------------------------------------------------
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
SODIAL(R)FT232RLモジュール5V 3.3V FTDI USB TTL変換アダプタレッド
- 出版社/メーカー: SODIAL(R)
- メディア: エレクトロニクス
HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター アダプター モジュール for Arduino [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
Olympus Pen E-PL5向けインターバルタイマー PIC F/Wの更新(v06) [電子工作]
昔、Olympus E-PL5向けにPIC18F14k50でインターバルタイマーを作った。
http://nakjack.blog.so-net.ne.jp/2014-11-08
しかし昔使ったAitendoのLCD(C128X64SPI-12P)が欠品になりそうなので、LCDのコントラストを調整出来る様にして使用可能なLCDを拡大した。他にも、恥ずかしながら、タイマー設定に間違いがあったので合わせて訂正。
V06:主な変更点
・LCDのコントラスト調整(NEXT/PREV/OK)のメニューを追加し、電源を落としても設定値を引き継ぐ
・LCDメニュー:OK長押しでコントラストを初期値に戻す
・インターバル1回めの時間が0.4秒短いのを修正
・BULBの時間が0.4秒短いのを修正
・250ms、busyのテストポイント追加
・LCDコントラストメニューにビルド日を表示
・ETM-11256(112x56)に対応
登録FWの違い
LCD Hex ratio contra 表示 controller
-----------------------------------------------------------------------
C128x64SPI Timer_C128x6_v06.hex 3 51 128x64 ST7567
F128x64B11 Timer_F128x6_v06.hex 4 51 128x64 ST7567
ETM-11256 Timer_ETM11256_v06.hex 3 20 112x56 NT7502(ST7565)
比較表崩れたので、下記にJPGで再掲。
拡張メニュー
>MEM: M1 W メモリ NEXTでM2~M5を選定
BULB Y DELAY N BULB、DELAY 有効/無効設定
BL Y INV N SLP Y バックライト、インバート、スリープ 有効/無効設定
SHOT 1shot
REF xxxx SLP xxxx リフレッシュタイマー表示
EE デバッグ用EEPROM表示
LCD20 07.05/2016E コントラスト調整 <<<<<<追加メニュー
確認したLCD
・C128X64SPI
・F128x64B11、F12864G7567
・ETM-11256、 JCG12864A37(コントラストを62に調整)4ドットくらい画面ずれる
画面が見えない時の設定(例JCG12864A37)
・LEDの点滅が無くなるのを待つ。 コントラスト20では全く見えない
・UP1回の後、NEXTを長押しして画面が表示されるまで待つ。 ダメな時は、逆にPRVを長押しする。
・画面見えたらOKを押下(EEPROMに設定値を記憶する)コントラスト62で見える。JCG12864G37は画面が4ドットくらいズレるている。
ETM-11256の表示例
F128x64の表示例
F12864B11
F12864G7567
C128x64の表示例
前回のFWでは、1回めのインターバル時間が0.4秒短いのを修正
修正前
修正後のインターバル
修正後BULB
回路図
PICソースは、あまりに汚いので、HEXのみ公開,
LCDに対応した3つのPIC18f14K50のHEXファイルの比較
18F14K50 HEX
--------------------------------
http://nakjack.blog.so-net.ne.jp/2014-11-08
しかし昔使ったAitendoのLCD(C128X64SPI-12P)が欠品になりそうなので、LCDのコントラストを調整出来る様にして使用可能なLCDを拡大した。他にも、恥ずかしながら、タイマー設定に間違いがあったので合わせて訂正。
V06:主な変更点
・LCDのコントラスト調整(NEXT/PREV/OK)のメニューを追加し、電源を落としても設定値を引き継ぐ
・LCDメニュー:OK長押しでコントラストを初期値に戻す
・インターバル1回めの時間が0.4秒短いのを修正
・BULBの時間が0.4秒短いのを修正
・250ms、busyのテストポイント追加
・LCDコントラストメニューにビルド日を表示
・ETM-11256(112x56)に対応
登録FWの違い
LCD Hex ratio contra 表示 controller
-----------------------------------------------------------------------
C128x64SPI Timer_C128x6_v06.hex 3 51 128x64 ST7567
F128x64B11 Timer_F128x6_v06.hex 4 51 128x64 ST7567
ETM-11256 Timer_ETM11256_v06.hex 3 20 112x56 NT7502(ST7565)
比較表崩れたので、下記にJPGで再掲。
拡張メニュー
>MEM: M1 W メモリ NEXTでM2~M5を選定
BULB Y DELAY N BULB、DELAY 有効/無効設定
BL Y INV N SLP Y バックライト、インバート、スリープ 有効/無効設定
SHOT 1shot
REF xxxx SLP xxxx リフレッシュタイマー表示
EE デバッグ用EEPROM表示
LCD20 07.05/2016E コントラスト調整 <<<<<<追加メニュー
確認したLCD
・C128X64SPI
・F128x64B11、F12864G7567
・ETM-11256、 JCG12864A37(コントラストを62に調整)4ドットくらい画面ずれる
画面が見えない時の設定(例JCG12864A37)
・LEDの点滅が無くなるのを待つ。 コントラスト20では全く見えない
・UP1回の後、NEXTを長押しして画面が表示されるまで待つ。 ダメな時は、逆にPRVを長押しする。
・画面見えたらOKを押下(EEPROMに設定値を記憶する)コントラスト62で見える。JCG12864G37は画面が4ドットくらいズレるている。
ETM-11256の表示例
F128x64の表示例
F12864B11
F12864G7567
C128x64の表示例
前回のFWでは、1回めのインターバル時間が0.4秒短いのを修正
修正前
修正後のインターバル
修正後BULB
回路図
PICソースは、あまりに汚いので、HEXのみ公開,
LCDに対応した3つのPIC18f14K50のHEXファイルの比較
18F14K50 HEX
--------------------------------
【T7】 タイマー 機能付き オリンパス Olympus リモート スイッチ RM-UC1 対応 互換品 リモコン
- 出版社/メーカー: フォーチュン
- メディア: エレクトロニクス
PIC12F1822 温度アラーム装置 [電子工作]
ばあちゃんちの台所は、2ハンドル混合水栓を使っていて、水側と湯側のハンドルを個別に回して水温を調整している。しかし台所作業を中断する時、水側のみを止めて、湯側を止め忘れている事が時々ある。 シングルレバーの混合水栓に交換するように勧めているが、配管工事の変更が大変なので、そのままになっている様だ。
100円ショップの警報ブザーが手元にあったので、注意喚起に利用できないかと思い、分解してみた。空間がかなりあるので、何か出来そう。
目的:高温の湯が出たままになっている事を検出して警報を鳴らす。
構造:温度センサーMCP9700で温度を電圧に変換。(Vout=10mV * Tc + 500mV)
PIC12F1822にて水栓の金属部分の温度を判定して、規定温度、温度上昇のいずれかで警報を出す。 PIC12F1822参考ソースは最後に記載。消費電流低減のためクロックは1MHz、2400bpsとした。
シール基板を警報ブザー基板の空きエリアに両面テープで貼り付け、部品をランドに半田付けする。 プログラム用コネクタは、接着剤で補強する。写真には無いが、半田面に於いて、スライドSWから出ているパターンをミニルータでカットしてFETを半田付けする。半田位置のレジストは剥がす。
配線きたないね。
監視中であることが目視で分かるように、約8秒毎にLEDを点灯。 温度センサーの熱伝導を良くするためにMCP9700の周りを0.2mmの銅板を巻いたが、効果は未評価で不明。防水の為、温度センサーをチューブに入れて防水シール(バスコーク)を充填した。 加工した温度センサーを防水シールで水栓の金属部分に貼り付けた。センサー交換時は、無理やり剥がすことになる。センサーと並列に接続されたダイオードは、MCP9700逆接続保護用。100円ショップのイヤホン延長コードをカットして、プラグ側にセンサー、ジャック側を本体に接続した。センサーは、複数作って温度誤差を確認し良さそうなのを採用。あまり違いは無かったが。
基板上のLED光をケース表面に伝えるため、2mmのチューブに透明接着剤を入れて導光管にしたが、気泡が入ってかなり減衰してしまった。一応LED光は見える。
デバックのため、AD変換した測定電圧,規定値、MAX値を2400bpsで出力しているので、FT232RLなどでUSB変換してTeraTermなどで表示できる。
温度変化=18℃/50s=0.36℃/s 、 4サイクルチェック=1.44℃/4s
温度検出結果により警報ブザーの電源をPMOSでON/OFFしたが、警報ブザーにリードSWがあるので、これを使った方が制御電流が少ないので良いかも。 本体ケースをファスナーテープで、水に濡れない所に貼り付けた。
結果:水栓とセンサーとの温度結合が悪いので、規定温度検知するまで20秒程必要だった。逆に温度が下がるまでも時間がかかり、湯を止めても暫く鳴動したままになるが、対象者の動作もゆっくりなので当初の目的は達成。 消費電流を減らす為に、鳴動音は断続にした。季節要因による温度変化は考慮していないので、夏季に再調整必要かもしれない。
消費電流:0.7mA、鳴動時60mA。
PICコンパイル環境
* MPLAB X IDE 3.26
* XC8 Ver1.36
* Writer:PICerFT15-10-6.8
PICerFTにて書き込み中、ブザー鳴動によるVdd変動で、書込みエラーになる事がある。書込みエラーする時は6ピン(RA1)-FETを一時的にカットする。
MPLAB X XC8 コンパイル時、警告が一杯出るが、conversionに関するものなのでとりあえず無視。
温度設定は以下の定義文を変更して行う。
#define LMT 440 //440:38℃ 470:44℃ 480:46℃ 490:48℃ 500:50℃
//Vout=10mV*Tc + 500mV step:2mV
#define DIF 5 //difference 5x2mV=10mV 1.0℃ up
PICソース&HEX
参考サイト
http://sky.geocities.jp/home_iwamoto/page/P14K50/P14_A17.htm
http://micom.hamazo.tv/e3140018.html
http://www.geocities.jp/zattouka/GarageHouse/
100円ショップの警報ブザーが手元にあったので、注意喚起に利用できないかと思い、分解してみた。空間がかなりあるので、何か出来そう。
目的:高温の湯が出たままになっている事を検出して警報を鳴らす。
構造:温度センサーMCP9700で温度を電圧に変換。(Vout=10mV * Tc + 500mV)
PIC12F1822にて水栓の金属部分の温度を判定して、規定温度、温度上昇のいずれかで警報を出す。 PIC12F1822参考ソースは最後に記載。消費電流低減のためクロックは1MHz、2400bpsとした。
シール基板を警報ブザー基板の空きエリアに両面テープで貼り付け、部品をランドに半田付けする。 プログラム用コネクタは、接着剤で補強する。写真には無いが、半田面に於いて、スライドSWから出ているパターンをミニルータでカットしてFETを半田付けする。半田位置のレジストは剥がす。
配線きたないね。
監視中であることが目視で分かるように、約8秒毎にLEDを点灯。 温度センサーの熱伝導を良くするためにMCP9700の周りを0.2mmの銅板を巻いたが、効果は未評価で不明。防水の為、温度センサーをチューブに入れて防水シール(バスコーク)を充填した。 加工した温度センサーを防水シールで水栓の金属部分に貼り付けた。センサー交換時は、無理やり剥がすことになる。センサーと並列に接続されたダイオードは、MCP9700逆接続保護用。100円ショップのイヤホン延長コードをカットして、プラグ側にセンサー、ジャック側を本体に接続した。センサーは、複数作って温度誤差を確認し良さそうなのを採用。あまり違いは無かったが。
基板上のLED光をケース表面に伝えるため、2mmのチューブに透明接着剤を入れて導光管にしたが、気泡が入ってかなり減衰してしまった。一応LED光は見える。
デバックのため、AD変換した測定電圧,規定値、MAX値を2400bpsで出力しているので、FT232RLなどでUSB変換してTeraTermなどで表示できる。
温度変化=18℃/50s=0.36℃/s 、 4サイクルチェック=1.44℃/4s
温度検出結果により警報ブザーの電源をPMOSでON/OFFしたが、警報ブザーにリードSWがあるので、これを使った方が制御電流が少ないので良いかも。 本体ケースをファスナーテープで、水に濡れない所に貼り付けた。
結果:水栓とセンサーとの温度結合が悪いので、規定温度検知するまで20秒程必要だった。逆に温度が下がるまでも時間がかかり、湯を止めても暫く鳴動したままになるが、対象者の動作もゆっくりなので当初の目的は達成。 消費電流を減らす為に、鳴動音は断続にした。季節要因による温度変化は考慮していないので、夏季に再調整必要かもしれない。
消費電流:0.7mA、鳴動時60mA。
PICコンパイル環境
* MPLAB X IDE 3.26
* XC8 Ver1.36
* Writer:PICerFT15-10-6.8
PICerFTにて書き込み中、ブザー鳴動によるVdd変動で、書込みエラーになる事がある。書込みエラーする時は6ピン(RA1)-FETを一時的にカットする。
MPLAB X XC8 コンパイル時、警告が一杯出るが、conversionに関するものなのでとりあえず無視。
温度設定は以下の定義文を変更して行う。
#define LMT 440 //440:38℃ 470:44℃ 480:46℃ 490:48℃ 500:50℃
//Vout=10mV*Tc + 500mV step:2mV
#define DIF 5 //difference 5x2mV=10mV 1.0℃ up
PICソース&HEX
参考サイト
http://sky.geocities.jp/home_iwamoto/page/P14K50/P14_A17.htm
http://micom.hamazo.tv/e3140018.html
http://www.geocities.jp/zattouka/GarageHouse/
定電流源と低抵抗測定メータ(失敗) [電子工作]
定電流源と低抵抗測定メータ(分解能不足で失敗)
Tektronix 2440のショート部品検出には間に合わなかったが、定電流回路と電圧計を組み合わせたショートチェッカーを作った。手持ち部品を使ったので電流値は適当、抵抗の絶対値は分からない。ショート位置の検出には抵抗の大小関係が分かれば良いので、ある程度使えると考えた。
電圧表示にPIC16F1827を使ったが、AD変換の分解能が10bitしか無かったので、有効数字は10進3桁。被測定部が4層基板の時は、抵抗値の変化が少なく、ショート位置がはっきりとは判定出来なかった。両面ユニバーサル基板では、ある程度判明できた。後継機は12bitか14bitのAD変換を使いたい。
基本回路:可変三端子レギュレーター AZ1117を使って120mA,12mAの定電流源を作り、抵抗による電圧降下を4端子法により測定する。(Ic=(1.25-0.65)/5Ω=120mA)
PICによる電圧計を追加
<基本回路>
主な仕様:
電流源:120mA、12mA スイッチ切り替え
測定範囲:800mΩ~20mΩ(絶対値不明)
電池駆動:単4ニッケル水素 x3(3.6V)
SW押下で定電流駆動、リトリガ40s間
LCD:Aitendo TS119 バックライト on/off
PIC:PIC16F1827
自動パワーオフタイマー約10分(スイッチ押下でリトリガ)
バックライト:CCPによる3段階切り替え
印加電圧0.8V以下
(被測定部品保護のため、ダイオードクランプで印加電圧0.8V以下とする)
<PICにより電圧測定>
定電流源は当初、AZ1117に10Ωを直接接続していたが、電池電圧低下時に電流不足になった。AZ1117にはDCDC出力の5Vを印加し、出力にトランジスタを追加した。
測定SWを押下すると40秒間電流源をON にする(リトリガ)。何もせずに約10分間に放置するとパワーoffする。電源投入時LCD全表示しLCDの動作確認。PICのAD変換器の分解能が10ビットしか無いので、入力1V以下の時はAN1、3V以下の時はAN2を使い、入力電圧によって切り替えて使った。
パワーON中にON SWを押下するとLCDのバックライト切り替える。ON SW押下ごとにRB0のPWMを使ってoff->中輝度(40%)->高輝度(90%)を切り替える。バックライトは高輝度時75mA流れるのであまり使いたくない。バックライト無しの時の電池電流は6mA、測定中は約110mA、バックライト時約190mA流れる。表示部にバッテリ電圧、定電流源の電流を簡易的に2桁表示する。測定電圧はオペアンプLM358で13倍(1+120k/10k)している。LM358は、安価ではあるがオフセット電圧や低電圧入力時の直線性がやや悪い。
配線ルートが悪いのか、電流源と測定側のマイナスを接続しただけで22(約2mV)表示される。表示が10ビット分しかないので、被測定部の電源、グランドパターンがベタパターンのときは、抵抗変化がわかりにくい。2層ユニバーサルであれば電源/グランドパターンが細いので、何とか使える。通電直後は表示にドリフトがあるので、数秒待つ必要がある。Trの温度上昇によるVbeの影響かも。要改善。表示についてはそのうち12bitか14bitADに置き換え予定。
<0.1Ω測定> 9の下セグメントが消えていた
<0.39Ω測定>
<ユニバーサル基板でのショートチェック>
基本回路図PDF:
Tektronix 2440のショート部品検出には間に合わなかったが、定電流回路と電圧計を組み合わせたショートチェッカーを作った。手持ち部品を使ったので電流値は適当、抵抗の絶対値は分からない。ショート位置の検出には抵抗の大小関係が分かれば良いので、ある程度使えると考えた。
電圧表示にPIC16F1827を使ったが、AD変換の分解能が10bitしか無かったので、有効数字は10進3桁。被測定部が4層基板の時は、抵抗値の変化が少なく、ショート位置がはっきりとは判定出来なかった。両面ユニバーサル基板では、ある程度判明できた。後継機は12bitか14bitのAD変換を使いたい。
基本回路:可変三端子レギュレーター AZ1117を使って120mA,12mAの定電流源を作り、抵抗による電圧降下を4端子法により測定する。(Ic=(1.25-0.65)/5Ω=120mA)
PICによる電圧計を追加
<基本回路>
主な仕様:
電流源:120mA、12mA スイッチ切り替え
測定範囲:800mΩ~20mΩ(絶対値不明)
電池駆動:単4ニッケル水素 x3(3.6V)
SW押下で定電流駆動、リトリガ40s間
LCD:Aitendo TS119 バックライト on/off
PIC:PIC16F1827
自動パワーオフタイマー約10分(スイッチ押下でリトリガ)
バックライト:CCPによる3段階切り替え
印加電圧0.8V以下
(被測定部品保護のため、ダイオードクランプで印加電圧0.8V以下とする)
<PICにより電圧測定>
定電流源は当初、AZ1117に10Ωを直接接続していたが、電池電圧低下時に電流不足になった。AZ1117にはDCDC出力の5Vを印加し、出力にトランジスタを追加した。
測定SWを押下すると40秒間電流源をON にする(リトリガ)。何もせずに約10分間に放置するとパワーoffする。電源投入時LCD全表示しLCDの動作確認。PICのAD変換器の分解能が10ビットしか無いので、入力1V以下の時はAN1、3V以下の時はAN2を使い、入力電圧によって切り替えて使った。
パワーON中にON SWを押下するとLCDのバックライト切り替える。ON SW押下ごとにRB0のPWMを使ってoff->中輝度(40%)->高輝度(90%)を切り替える。バックライトは高輝度時75mA流れるのであまり使いたくない。バックライト無しの時の電池電流は6mA、測定中は約110mA、バックライト時約190mA流れる。表示部にバッテリ電圧、定電流源の電流を簡易的に2桁表示する。測定電圧はオペアンプLM358で13倍(1+120k/10k)している。LM358は、安価ではあるがオフセット電圧や低電圧入力時の直線性がやや悪い。
配線ルートが悪いのか、電流源と測定側のマイナスを接続しただけで22(約2mV)表示される。表示が10ビット分しかないので、被測定部の電源、グランドパターンがベタパターンのときは、抵抗変化がわかりにくい。2層ユニバーサルであれば電源/グランドパターンが細いので、何とか使える。通電直後は表示にドリフトがあるので、数秒待つ必要がある。Trの温度上昇によるVbeの影響かも。要改善。表示についてはそのうち12bitか14bitADに置き換え予定。
<0.1Ω測定> 9の下セグメントが消えていた
<0.39Ω測定>
<ユニバーサル基板でのショートチェック>
基本回路図PDF: