2011/11/29

多回転半固定ボリューム たて型 3296W(10kΩ)

多回転半固定ボリューム たて型 3296W(10kΩ)


A/D変換とマイク


A/D変換とマイク


PIC12F675 2CH AD変換を比較し、LEDを電灯する。
AN2に入力した電圧はAN3に設定した電圧より高く場合、LEDが
電灯します。


LIST P=12F675
INCLUDE P12F675.INC
CB = _CPD_OFF ;データ保護しない
CB &= _CP_OFF ;コード保護しない
CB &= _BODEN_ON ;ブラウンアウトリセット
CB &= _MCLRE_OFF ;GP3/MCLR デジタルI/O
CB &= _PWRTE_ON ;パワーアップタイマを使用する
CB &= _WDT_OFF ;ウォッチドッグタイマをOFF
CB &= _INTRC_OSC_NOCLKOUT ;内部クロックを利用、RA4ピンI/Oピン
__CONFIG CB ;設定

;--
CBLOCK H'20'
CONT1 ;LED点滅カウント
SCONT1 ;タイマカウント
SCONT2
HAN3
LAN3
HAN2
LAN2
EEA ;EEPROM書き込み時のアドレス
EED ;EEPROM書き込み時のデータ
ENDC

;--
ORG H'0'
GOTO INIT
;ORG H'04'
;GOTO H04

;--
INIT ;デバイス初期化
BCF STATUS,RP0 ;0バンク選択
MOVLW B'00000111' ;コンパレータOFF
MOVWF CMCON ;コンパレータOFF
BCF INTCON,PEIE ;周辺割り込みOFF

BSF STATUS,RP0 ;1バンク選択
CALL 0x3FF ;
MOVWF OSCCAL
MOVLW B'00010110' ;RP1,2,4入力用設定
MOVWF TRISIO ;RP1,2,4入力用設定
MOVLW B'00010100' ;Fosc/8,GP2,4アナログ
MOVWF ANSEL ;Fosc/8,GP2,4アナログ
BCF STATUS,RP0 ;0バンク戻る
CALL S1TIME

;-----------------------------------------------------------
MAIN ;
BTFSC GPIO,1
GOTO ADCL

;ADH---------------------------
MOVLW B'00001100' ;ADFM=0,VDD電圧,AN3-GP4
MOVWF ADCON0 ;
CALL ADCMAIN
MOVF ADRESH,W
MOVWF HAN3 ;
BSF STATUS,RP0
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF LAN3 ;

MOVLW B'00001000' ;ADFM=0,VDD電圧,AN2-GP2
MOVWF ADCON0
CALL ADCMAIN
MOVF ADRESH,W
MOVWF HAN2 ;
BSF STATUS,RP0
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF LAN2 ;
CALL EPCHK

MOVF HAN3,W ;A
SUBWF HAN2,W ;B
BTFSS STATUS,C ;IF BF-HAN3>AW-HAN2 C=1
GOTO HLEDON
BCF GPIO,5
GOTO MAIN

HLEDON
BSF GPIO,5
CALL S2TIME
GOTO MAIN

;ADL--------------------------
ADCL
MOVLW B'10001100' ;ADFM=1,VDD電圧,AN3-GP4
MOVWF ADCON0 ;
CALL ADCMAIN
BSF STATUS,RP0
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF LAN3 ;

MOVLW B'10001000' ;ADFM=1,VDD電圧,AN2-GP2
MOVWF ADCON0
CALL ADCMAIN
BSF STATUS,RP0
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF LAN2 ;
CALL EPCHK

MOVF LAN3,W ;A
SUBWF LAN2,W ;B
BTFSS STATUS,C ;IF BF-HAN3>AW-HAN2 C=1
GOTO LLEDON
BCF GPIO,5
GOTO MAIN

LLEDON
BSF GPIO,5
;CALL S2TIME
GOTO MAIN

;--------------------------------------------------------------
;EEPRO CHECK
EPCHK
MOVF HAN3,W
MOVWF EED
MOVLW 0X00
MOVWF EEA
CALL EEPROM

MOVF LAN3,W
MOVWF EED
MOVLW 0X01
MOVWF EEA
CALL EEPROM

MOVF HAN2,W
MOVWF EED
MOVLW 0X02
MOVWF EEA
CALL EEPROM

MOVF LAN2,W
MOVWF EED
MOVLW 0X03
MOVWF EEA
CALL EEPROM

RETURN

;------------------------------------------------------------
;AD開始
ADCMAIN
BSF ADCON0,ADON ;ADC変換ON
CALL ADCLK32 ;充電時間約30μs
BSF ADCON0,GO ;ADC変換
ENDAC
BTFSC ADCON0,GO ;ADC変換完了待ち
GOTO ENDAC ;ADC変換完了待ち
BCF ADCON0,ADON ;ADC変換OFF
RETURN

;充電時間
ADCLK32
MOVLW D'17' ;1 7x4+4=32μs
MOVWF SCONT1 ;
ADCLK32LOOP
NOP ;1
DECFSZ SCONT1,F ;1
GOTO ADCLK32LOOP ;2
RETURN ;2
;充電時間完了
;AD完了


;--------------------------------------------------
;時間タイマ
S2TIME
MOVLW D'11'
MOVWF SCONT2
S2LOP
CALL S1TIME
DECFSZ SCONT2,F
GOTO S2LOP
RETURN

S1TIME     ;1000μS、1mS
  MOVLW   D'249'   ;1 249X4+4=1000
  MOVWF   SCONT1 ;1
S1LOP
  NOP     ;1
  DECFSZ  SCONT1,F ;1
  GOTO   S1LOP ;2
  RETURN     ;2

;--------------------------------------------------------
;EEPROM書き込み
EEPROM
BSF STATUS,RP0
MOVF EEA,W ;書き込みアドレス
  MOVWF EEADR
MOVF EED,W ;書き込みデータ
  MOVWF EEDATA
BSF EECON1,WREN ;書き込み許可
MOVLW 0X55 ;書き込み手順
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR ;書き込み
RWC
  BTFSC EECON1,WR
GOTO RWC
BCF STATUS,RP0 ;書き込み完了後、バイク0に戻る
RETURN ;戻る
;---
EEND


END


2011/11/26

ステッピングモータSPG20-1362

ステッピングモータSPG20-1362
http://akizukidenshi.com/catalog/g/gP-04241/

;-----------------------------------------------------------
MAIN
                MOVLW     D'90'
                MOVWF     DO
L
                MOVLW     B'00010001'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00000011'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00000110'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00010100'
                MOVWF     GPIO
                CALL         S2TIME
                DECFSZ     DO,F
                GOTO        L
                CALL          S3TIME

                MOVLW     D'90'
                MOVWF     DO
R
                MOVLW     B'00010100'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00000110'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00000011'
                MOVWF     GPIO
                CALL         S2TIME
                MOVLW     B'00010001'
                MOVWF     GPIO
                CALL         S2TIME
                DECFSZ     DO,F
                GOTO        R
                CALL          S3TIME
                GOTO        MAIN
;--------------------------------------------------------------








end

2011/11/20

大小比較 SUBWF SUBLW

大小比較 1(W>F)
      MOVF      W,0
      SUBWF    F,0         ;F-W
            W <F     C=1
            W =F     C=1
            W >F     C=0

大小比較 2(W≦F)
      MOVF       W,0
      SUBWF     B,0        ;F-W
            W <F     C=1
            W =F     C=1
            W >F     C=0

大小比較 3(W≦数値)
      MOVF       W,0
      SUBLW     D'128'     ;K-W
            W <D'128'    C=1
            W =D'128'    C=1
            W >D'128'    C=0

高輝度赤外線LED OSI5FU5111C-40

高輝度赤外線LED OSI5FU5111C-40

http://akizukidenshi.com/download/OSI5FU5111C-40.pdf
順電圧:1.35V typ @100mA
電圧5V、36.5Ω抵抗を追加

赤外線リモコン受信モジュール PL-IRM2161-C438

赤外線リモコン受信モジュール PL-IRM2161-C438

http://akizukidenshi.com/catalog/g/gI-03292/
http://akizukidenshi.com/download/PL-IRM2161-C438.pdf


実際の動作確認
VDD → 5.15V
H → =VDD
L → 5.0mV



2011/11/19

赤外線リモコン送信 キャリア波(38kHzか40kHz)の作成

;赤外線リモコン送信 キャリア波(38kHzか40kHz)の作成
;1秒間4万回点滅させる方法

;1. PIC12F629
;2. ロック 4MHz
;      4Mhz 1クロック=0.00000025S = 0.25μS
;      4Mhz 1サイクル=1μS
;3.  40kHz 1秒/40000回=0.000025S=0.025mS=25μS
;       38kHz 1秒/38000回=0.000026S=0.026mS=26μS
;4. 40kHz 方形波=12.5μS ON + 12.5μS OFF
;       38kHz 方形波=13  μS  ON  +   13  μS  OFF
;5.    600μs事にHiかLowを出力します。
;   600μS/25=24回
;       600μS/26=23回
;
;--
  LIST P=12F629
  INCLUDE P12F629.INC
  CB = _CPD_OFF
  CB &= _CP_OFF
  CB &= _BODEN_ON
  CB &= _MCLRE_OFF
  CB &= _PWRTE_ON
  CB &= _WDT_OFF
  CB &= _INTRC_OSC_NOCLKOUT ;_HS_OSC
  __CONFIG CB

;--
   ORG H'0'
   GOTO INIT

;--
INIT
   BSF  STATUS,RP0 ;1BANK
   CALL  0x3FF
   MOVWF  OSCCAL
   MOVLW B'00010000'
   MOVWF TRISIO ;
   BCF STATUS,RP0 ;
   MOVLW B'00000111'
   MOVWF CMCON ;
   BCF STATUS,RP0
   CLRF GPIO

;--
MAIN
   BTFSS  GPIO,4 ;1
   GOTO  MAIN ;2
   BSF  GPIO,2 ;3
   NOP ;1
   NOP ;2
   NOP ;3
   NOP ;4
   NOP ;5
   NOP ;6
   NOP ;7
   NOP ;8
   NOP ;9
   NOP ;10
   NOP ;11
   NOP ;12
   NOP ;13
   BCF    GPIO,2 ;4
   NOP ;5
   NOP ;6
   NOP ;7
   NOP ;8
   NOP ;9
   NOP ;10
   NOP ;11
   NOP ;12
   NOP ;13
   GOTO   MAIN ;14

END




2011/11/13

DM-106B 磁気抵抗素子

DM-106B 磁気抵抗素子


http://12f629.blogspot.com/2011/11/12f675ad.html
「12F675 A/D変換」で紹介したプログラムの少し変更して
テストします。回路は10Kのボリューム可変抵抗を入れ替え。

DM-106Bの仕様
    入力電圧 → 5.15V
    出力 →最大 2.580V
    出力 →最小 2.532V
    出力の差はわずか0.048V

電圧の変動が小さい、A/D変換の場合、次のように計算した結果、
プログラム内、A/D変換した結果を右揃え、ADRESLレジスタに保存
した結果を利用します。この確認はADRESHファイルレジスタに影響
しません、常に1(16進)になります。

5.15(参考電圧)/1024(段階)≒0.00503V(一段階)
2.580/0.00503≒513=02 01(16進) 
    実際プログラムに記録したのは
    ADRESH 01(16進)、1(2進)
    ADRESL FF(16進)、11111111(2進)

2.532/0.00503≒503=01 F7(16進)
    実際プログラムに記録したのは
    ADRESH 01(16進)、1(2進)
    ADRESL F9(16進)、11111001(2進)


実作の結果はこちらの動画、電圧が下がると逆にLEDの点滅が
遅くなる結果から見ると、ADRESHも変化されたようで、回路を
修正するか、プログラムを修正が必要になります。
もしかして最初から間違えているかもしれません。




12F675 A/D変換

12F629のお兄さん12F675はA/D変換が出来ます。

電圧の変化の範囲が多き場合、ADCON0,;ADFM=0:左詰め、
ADRESHのレジスタを利用します、電圧の変化の範囲が小さい
場合、ADCON0,;ADFM=1:右詰め、ADRESLのレジスタを利用します。


そのために練習
プログラム


;PIC12F675 A/D変換,EEPROM書き込み
;VER 1.0

LIST P=12F675
INCLUDE P12F675.INC
CB = _CPD_OFF ;データ保護しない
CB &= _CP_OFF ;コード保護しない
CB &= _BODEN_ON ;ブラウンアウトリセット
CB &= _MCLRE_OFF ;GP3/MCLR デジタルI/O
CB &= _PWRTE_ON ;パワーアップタイマを使用する
CB &= _WDT_OFF ;ウォッチドッグタイマをOFF
CB &= _INTRC_OSC_NOCLKOUT ;内部クロックを利用、RA4ピンI/Oピン
__CONFIG CB ;設定

;--
CBLOCK H'20'
CONT1 ;LED点滅カウント
SCONT1 ;タイマカウント
ADH ;ADCのADRESHのデータ
ADL ;ADCのADRESLのデータ
EEA ;EEPROM書き込み時のアドレス
EED ;EEPROM書き込み時のデータ
ENDC

;--
ORG H'0'
GOTO INIT
;ORG H'04'
;GOTO H04

;--
INIT ;デバイス初期化
BCF STATUS,RP0 ;0バンク選択
BSF CMCON,CM0 ;コンパレータOFF
BSF CMCON,CM1 ;コンパレータOFF
BSF CMCON,CM2 ;コンパレータOFF
BCF INTCON,PEIE ;周辺割り込みOFF

BSF STATUS,RP0 ;1バンク選択
;CALL 0x3FF ;
;MOVWF OSCCAL
MOVLW B'00000100' ;RP2入力用設定
MOVWF TRISIO ;RP2入力用設定
BSF ANSEL,ADCS0 ;ADCA/D変換のクロック選択Fosc/8
BCF ANSEL,ADCS1 ;ADCA/D変換のクロック選択Fosc/8
BCF ANSEL,ADCS2 ;ADCA/D変換のクロック選択Fosc/8
BSF ANSEL,ANS2 ;アナログ入力設定
BCF STATUS,RP0 ;0バンク戻る

;-----------------------------------------------------------
MAIN ;その1、ADC変換したしてデータをEEPROに書き込み


CALL ADCMAIN
MOVLW H'0' ;書き込みアドレス
MOVWF EEA ;書き込みアドレス
MOVF ADH,W ;書き込みデータ
MOVWF EED ;書き込みデータ
CALL EEPROM ;CALL EEPROM書き込み

MOVLW H'1'
MOVWF EEA
MOVF ADL,W
MOVWF EED
CALL EEPROM

;その2、ADC変換したデータを利用してLED点滅
BCF GPIO,GPIO4
MOVF ADH,W ;AEDデータを読み
MOVWF CONT1 ;カウント値

LEDOFF
NOP
CALL S1TIME
CALL S1TIME
CALL S1TIME
DECFSZ CONT1,F
GOTO LEDOFF

BSF GPIO,GPIO4
MOVF ADH,W
MOVWF CONT1

LEDON
NOP
CALL S1TIME
CALL S1TIME
CALL S1TIME
DECFSZ CONT1,F
GOTO LEDON

GOTO MAIN

;------------------------------------------------------------

;---
ADCMAIN
BCF ADCON0,ADFM ;ADFM=0:左詰め
BCF ADCON0,VCFG ;基準電圧VDD電源電圧
BSF ADCON0,CHS1 ;ADC対象ANポート,AN2
BCF ADCON0,CHS0 ;ADC対象ANポート,AN2
BSF ADCON0,ADON ;ADC変換ON
CALL ADCLK32 ;充電時間約30μs
BSF ADCON0,GO ;ADC変換

ENDAC
BTFSC ADCON0,GO ;ADC変換完了待ち
GOTO ENDAC ;ADC変換完了待ち
BCF ADCON0,ADON ;ADC変換OFF

MOVF ADRESH,W ;ADC変換後、ADRESHをWレジスタに
MOVWF ADH ;ADC変換後、ADHファイルレジスタに保存
MOVF ADH,F
BTFSC STATUS,Z ;変換したデータが0の場合、ADCMAINへ
GOTO ADCMAIN ;変換したデータが0の場合、ADCMAINへ

BSF STATUS,RP0 ;1バンク選択
MOVF ADRESL,W ;ADC変換後、ADRESLをWレジスタに
BCF STATUS,RP0 ;0バング戻る
MOVWF ADL ;ADC変換後、ADLファイルレジスタに保存
MOVF ADL,F
BTFSC STATUS,Z ;変換したデータが0の場合、ADCMAINへ
GOTO ADCMAIN ;変換したデータが0の場合、ADCMAINへ

RETURN

ADCLK32
MOVLW D'7' ;1 7x4+4=32μs
MOVWF SCONT1 ;
ADCLK32LOOP
NOP ;1
DECFSZ SCONT1,F ;1
GOTO ADCLK32LOOP ;2
RETURN ;2

;---
S1TIME     ;1000μS、1mS
  MOVLW   D'249'   ;1 249X4+4=1000
  MOVWF   SCONT1 ;1
S1LOP
  NOP     ;1
  DECFSZ  SCONT1,F ;1
  GOTO   S1LOP ;2
  RETURN     ;2



;---
EEPROM
BSF STATUS,RP0
MOVF EEA,W ;書き込みアドレス
  MOVWF EEADR
MOVF EED,W ;書き込みデータ
  MOVWF EEDATA
BSF EECON1,WREN ;書き込み許可
MOVLW 0X55 ;書き込み手順
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR ;書き込み
RWC
  BTFSC EECON1,WR
GOTO RWC
BCF STATUS,RP0 ;書き込み完了後、バイク0に戻る

RETURN ;戻る
;---

EEND


END






2011/11/05

ソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ

秋月電子で「ソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ」を購入
http://akizukidenshi.com/catalog/g/gK-00203/

トライアックってなに
http://documentation.renesas.com/jpn/products/transistor/rjj27g0022_thyristors.pdf

フォトトライアックってなに
http://www.piclist.com/images/www/hobby_elec/pic6_c3.htm



2020/07/14

100均のタイマーライトとSSRリレーのコラボレーション



end