かずいの雑記帳4

趣味でいろいろ実験やってます。 2021年6月21日よりhttpsの利用が可能になりました。 当ブログも設定を変更しましたので、画面の乱れ等ありましたら教えて下さい。

2022年08月

カーオーディオを部屋で使ってみた(その3)

Carrozzeria DEH-580をDTMのアンプとして使って久しい。
当初、電源ON/OFF SWにロジックICで回路を作っていたが、その後PICに置き換えて現在に至る。
今回、押し釦を押す代わりに非接触センサでON/OFFする仕組みを作ってみた。
(リモコンで電源入/切出来るようにせぇよという話はさておく)
このご時世、非接触といってもいろいろな方法があるが、感度が高すぎると誤動作の元になるので、感度調整に幅をもたせやすい赤外線反射方式のスイッチを作るところから始めよう。
WS500171

赤外線反射式フォトセンサには秋月電子で販売されているLBR-127HLDを使用した。
赤外線LEDにボリュームで電流制限を設け、ある程度の感度調整が出来るようにした。
フォトトランジスタ単体だとアナログ出力になるので、デジタルトランジスタを入れてオープンコレクタのスイッチとして利用している。(なので、タイミングチャートの3.OUTはインピーダンスの変化を表している。)
アナログ出力のまんまPICのコンパレータを使ってもいいのだけれど、結果次第で他設備への転用がありえるので、単独の光電スイッチとして使用するつもりで作成した。
赤外線LEDが思いの外電流を食う(最大60mA!)ので、バッテリ駆動には向いてない。
熱の問題もあるし、パルス化するなどして、消費電力を抑える工夫が必要だと思う。

こちらが制御回路。
後にアナログ化することも考えてGP4をセンサ入力。
ICSPに干渉しないようGP2を出力に充てている。
(どのみちPICKITをつなぐ際はセンサを外さなければいけないのだけれど。)
WS500170


プログラムはこちら。
入力のモメンタリ信号をオルタネータ化して出力するというもの。
特にどうというものでもないけれど、オルタネータ化する際のチャタリング対策がシーケンサ風だろうか。

E348AudioPSW2.c
E348AudioPSW2.c
 1 /*
 2  * File:   E348AudioPSW2.c
 3  * Author: http://kazuikazui.dreamlog.jp/
 4  * Device: PIC12F683
 5  * Compiler: XC8 Ver2.36
 6  * IDE : MPLAB X IDE v6.00
 7  * Created on 2022/08/09, 12:09
 8  */
 9 
10 // PIC12F683 Configuration Bit Settings
11 
12 // 'C' source line config statements
13 
14 // CONFIG
15 #pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
16 #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
17 #pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
18 #pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
19 #pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
20 #pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
21 #pragma config BOREN = ON       // Brown Out Detect (BOR enabled)
22 #pragma config IESO = OFF       // Internal External Switchover bit (Internal External Switchover mode is disabled)
23 #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
24 
25 // #pragma config statements should precede project file includes.
26 // Use project enums instead of #define for ON and OFF.
27 
28 #include <xc.h>
29 
30 //****************** Global Variables *******************
31 #define _XTAL_FREQ 125000       //125kMHz Internal OSC
32 
33 __bit M0;                       //内部補助リレー
34 int D0;                         //内部カウンタ
35 
36 #include <xc.h>
37 
38 void main(void) {
39     //Special Function Resister(SFR) (See PIC12F683 DataSheet)
40     OSCCON = 0b0010000;             // OSCillator CONtrol register:Internal Fosc=125kHz=8usec
41     ANSEL  = 0b0100000;             // ANalog SELect register:Fosc/32=25.6msec@125kHz,AN* All disable
42     CMCON0 = 0b00000111;            // CoMparator CONfiguration register:All disable
43     TRISIO = 0b111011;              // GPIO TRI-STATE REGISTER:GP0,1,(3),4,5 as INPUT,GP2 as OUTPUT
44     WPU    = 0b011000;              // WakePullUpbit GP(3),4 ON
45     OPTION_REG = 0b00000000;        // OPTON REGister:GPPU=GPIO pull-ups are enabled,INTEDG=Interrupt on falling edge
46 
47     /* Global Variables initialize */
48     GPIO = 0b000000;            // GP2 default LOW
49     M0 = 0;
50     D0 = 0;
51     
52     __delay_ms(500);
53 
54     while(1) {
55         if (GP4 == 1){
56             __delay_ms(10);
57             D0++;
58             if (D0 == 25){
59                 M0 = ~M0;
60                 D0 = 999;
61             }
62         }
63         else {
64             D0 = 0;
65         }
66         GP2 = M0;
67     }
68 }
69 




続きを読む

555を使ったオンディレイタイマの制作

555 オンディレイタイマーでぐぐると沢山出てきます。

その中で参考にさせていただいたのが、次の二つ。
ワンショットタイマの応用ですね。

http://www.oct-net.ne.jp/~m-fuku/FFfolder/OnDelay/ONDelay.html

http://plaza.rakuten.co.jp/lovesun/diary/201403050000/

OUT(DCH)の電流値について、バイポーラの555の場合は200mAC-MOSの場合は100mAが最大定格なので、リレーの電流にあわせて選べばよい。(リレーのデータシートのコイル欄には必ず書いてある)
目安としては定格の1/2くらいのリレーなら大丈夫。
ee1509ac.jpg
WS200108


大きく分けて二つの流儀があるようで、555のOutputを使うかDischargeを使うというもの。
前者はトーテムポール出力、後者はオープンコレクタなので、実はどっちでもいい。
171ab5a7.jpg


タイマーの係数はCRの積なので、精度はそれなり。
大雑把な時間計測ならこれでも問題ないだろう。
もっと大雑把な計測でよいなら、C2は不要。
D1は放電用なので、ON/OFF頻度が低ければ不要。

5Vで動作確認の様子。
電圧印加時にチャタリングが発生する。


チャタリングがまずい場合や、より正確な時間設定が必要なら、マイコンを使用したほうが確実なので、次回は 大量に余ってる PIC12F683で検討してみよう。

↓アマゾンではこんなものも売られてます。
電源が安定していないと(特に交流成分が混ざってたりすると)使い物にならない回路ですが。
どうやらマイコン内蔵で、そこそこ正確らしいです。ごめんなさい。


↓実験に使用したリレーモジュールは販売終了で、アマゾン的には今はこちらがオススメだそうです。
続きを読む
記事検索
月別アーカイブ
プロフィール

かずい

QRコード
QRコード
  • ライブドアブログ