2011/03/12

PICマイコン赤外線リモコン学習キット

PICマイコン赤外線リモコン学習キット

http://akizukidenshi.com/catalog/g/gK-04174/
http://akizukidenshi.com/download/k4174_manual.pdf
http://akizukidenshi.com/download/k4174_circuit.pdf

購入していないが、説明書が役立つ

2011/03/08

AV-R750 リモコンを購入、300円ジャンク品かな

とりあえず購入、テレビの操作ではなく、PIC受信機の送信に使用する予定
外見はこれだ
マニュアル
http://www.ohm-electric.co.jp/showcase/av-r750/AV-R750_02.pdf
















メーカーコードをNEC 025、026 に設定すると、前回の記事(12F629 赤外線リモコンの受信)プログラムを少し修正して、受信ができます。

025、026、キーコード
入力切換     18、E7、50、AF
電源        18、E7、10、EF
 ↑         18、E7、00、FF
消音        18、E7、90、6F
 +         18、E7、40、BF
 ↓         18、E7、80、7F
 -         18、E7、C0、3F
1         18、E7、08、F7
2         18、E7、88、77
3         18、E7、48、B7
4         18、E7、C8、37
5         18、E7、28、D7
6         18、E7、A8、57
7         18、E7、68、97
8         18、E7、E8、17
9         18、E7、18、E7
10         18、E7、98、67
11         18、E7、58、A7
12         18、E7、D8、27



27、キーコード
入力切換     02、FD、F0、0F
電源        02、FD、48、B7
 ↑         02、FD、D8、27
消音        02、FD、08、F7
 +         02、FD、58、A7
 ↓         02、FD、F8、07
 -         02、FD、78、87
1         02、FD、80、7F
2         02、FD、40、BF
3         02、FD、C0、3F
4         02、FD、20、DF
5         02、FD、A0、5F
6         02、FD、60、9F
7         02、FD、E0、1F
8         02、FD、10、EF
9         02、FD、90、6F
10         02、FD、50、AF
11         02、FD、D0、2F
12         02、FD、30、CF

2011/03/06

Nゲージの運転コントローラPWMを作りたい 完成

Nゲージの運転コントローラPWMを完成した、黒いケースに収め
レバーを引くと加速、前に押すと減速します。 ボタン二つ、機能
1、急停車 2、方向転換。LED 二つ、機能1、急停車するときに
同時に電灯、進行方向を示す。












動作はこれ


コスト
部品代
ケース             1個  100円
電源アタプタ          1個  200円
DCプラグ           1個  100円
12F629             1個   80円
リモコン・トグルスイッチ   1個  130円
モータドライバ TA726BP  1個  150円
基板              1個   60円
押しボタンスイッチ      2個  140円(合計)
LED               2個   20円(約)
他                    200円
-----------------------------------------
                                              1180 円

12F629 赤外線リモコンの受信

12F629 赤外線リモコンの受信、データコードをEEPROMに書き込み

回路図












http://akizukidenshi.com/download/PL-IRM2161-C438.pdf

受信データコードサンプル





MPLAB IDE v8.63











プログラム//////////////////////////
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
;-----------------------------------
TCON1 EQU H'20' ;TIMER用
TCON2 EQU H'21'
TCON3 EQU H'21'

CCON1 EQU H'22' ;カウント用
CCON2 EQU H'23'
CCON3 EQU H'24'
CCON4 EQU H'25'

DD1 EQU H'2A' ;データー用
DD2 EQU H'2B'
DD3 EQU H'2C'
DD4 EQU H'2D'
DD5 EQU H'2E'
DD6 EQU H'2F'

TEMPL EQU H'30' ;臨時アドレス
TEMPDD EQU H'31' ;書き込みデータ
TEMPDATA EQU H'32' ;リモコンデータ

;------------------------------------
ORG H'0'
GOTO INIT
ORG H'04'
GOTO INIT
;------------------------------------
INIT
BSF STATUS,RP0
MOVLW B'00001100'
MOVWF TRISIO
BCF STATUS,RP0
MOVLW B'00000111'
MOVWF CMCON
MOVLW B'00000000'
MOVWF GPIO
;------------------------------------
MAIN
CLRF DD1
CLRF DD2
CLRF DD3
CLRF DD4

IR ;信号待ち
BTFSS GPIO,2
GOTO IR
GOTO SS


;/////////////////////////////////////////
;リーダー部分の確認コート、ON8=9MS,OFF4=4.5MS
;/////////////////////////////////////////
SS
SIRON
;リーダーコード HIチェック
MOVLW D'95' ;9MS=100μSX90 OR 95
MOVWF CCON1
SIRONL ;
CALL TIMER1 ;
BTFSS GPIO,2 ;90回チェック
GOTO IR ;一致しない場合、
DECFSZ CCON1,F ;CCON1=0
GOTO SIRONL ;

SIROFF
;リーダーコード LOWチェック
BTFSC GPIO,2
GOTO SIROFF ;OFF待ち
MOVLW D'47' ;4.5MS=100μSX45 OR

MOVWF CCON1
SIROFFL
CALL TIMER1

BTFSC GPIO,2 ;47回チェック
GOTO IR ;一致しない場合
DECFSZ CCON1,F
GOTO SIROFFL

;////////////////////////////////////////
;データコードの読み込み
;////////////////////////////////////////
RDD1 ; 0ビットから8ビットまで
CLRF TEMPDATA ;データクリア

CALL REDATA ;データコード読み込み

MOVF TEMPDATA,W ;
MOVWF DD1 ;読み込んだデータコードを保存

RDD2 ; 9ビットから16ビットまで
CLRF TEMPDATA

CALL REDATA

MOVF TEMPDATA,W
MOVWF DD2

RDD3 ; 16ビットから24ビットまで
CLRF TEMPDATA

CALL REDATA

MOVF TEMPDATA,W
MOVWF DD3

RDD4 ; 25ビットから32ビットまで
CLRF TEMPDATA

CALL REDATA

MOVF TEMPDATA,W
MOVWF DD4

; 読み込み完了、EEPROMに書き込み
CALL REWTOEEPROM

CALL TEST ;//////////////////

GOTO IR ;信号待ちへ

;//////////////////////////////////////
;データコード読み込みサブルーチン
;//////////////////////////////////////
REDATA
BTFSS GPIO,2 ;ON待ち
GOTO REDATA
MOVLW D'9' ;9設定、8回LOOP

MOVWF CCON2
RED1
DECF CCON2,F ;8回ビットのカウント

BTFSC STATUS,Z ;0の場合
RETURN ;8個のカウント終了、次の8ビットへ

CALL SASH ;600μS HIの後
RLF TEMPDATA ;シフト
BCF TEMPDATA,0 ;0ビット、0に設定
CALL TIMER7 ;700μS LOW 経過

BTFSC GPIO,2 ;700μS LOW 経過しても LOW の場合スキップ
GOTO RED1 ;700μS LOW 経過しても HI の場合

BSF TEMPDATA,0 ;0ビット、1に設定
CALL SASL ;残ったLOWをHIまで消耗する


GOTO RED1 ;次のビットへ

;RETURN

;//////////////////////////////////////////
;赤外線、HI時のチェックサブルーチン
;//////////////////////////////////////////
;HI
SASH
MOVLW D'4' ;4回チェック 約400μS

MOVWF CCON3

SASHL CALL TIMER1

BTFSS GPIO,2 ;4回チェック
GOTO IR ;一致しない場合、信号待ちへ
DECFSZ CCON3
GOTO SASHL

SASOK BTFSC GPIO,2 ;4回チェック後、残った HI を消耗する
GOTO SASOK
RETURN ;戻る
;-----------------------------
;LOW
SASL
BTFSS GPIO,2 ;残った LOW を消耗する
GOTO SASL
RETURN ;戻る



;///////////////////////////////////////////
;データEEPROMに書き込み
;///////////////////////////////////////////
REWTOEEPROM
; DD1の書き込み
MOVLW H'00' ;書き込みアドレス

MOVWF TEMPL ;サブルーチンへ
MOVF DD1,W ;書き込みデータ
MOVWF TEMPDD ;サブルーチンへ
CALL REW ;サブルーチン呼び出す


; DD2の書き込み
MOVLW H'01' ;書き込みアドレス
MOVWF TEMPL
MOVF DD2,W
MOVWF TEMPDD
CALL REW


; DD3の書き込み
MOVLW H'02' ;書き込みアドレス
MOVWF TEMPL
MOVF DD3,W
MOVWF TEMPDD
CALL REW


; DD4の書き込み
MOVLW H'03' ;書き込みアドレス

MOVWF TEMPL
MOVF DD4,W
MOVWF TEMPDD
CALL REW

; 書き込み完了、臨時ファイルをクリア
CLRF TEMPL

CLRF TEMPDD

RETURN


;///////////////////////////////////////////
;EEPROM 書き込みサブルーチン
;//////////////////////////////////////////
REW
BSF STATUS,RP0 ;1バンクへ
MOVF TEMPL,W ;書き込みアドレス
MOVWF EEADR ;
MOVF TEMPDD,W ;書き込みデータ
MOVWF EEDATA ;
BSF EECON1,WREN ;書き込み許可
MOVLW H'55' ;書き込み手順

MOVWF EECON2 ;
MOVLW H'AA' ;

MOVWF EECON2 ;
BSF EECON1,WR ;
RWC
BTFSC EECON1,WR ;書き込み終了待ち
GOTO RWC
BCF STATUS,RP0 ;0バンクに戻る
RETURN ;戻る

;//////////////////////////////////////////
;タイマー
;4Mhz 1クロック=0.00000025S = 0.25μS
;4Mhz 1サイクル=1μS
;//////////////////////////////////////////
TIMER1 ;100μS,100コマンド、24
MOVLW D'24' ;1;99
MOVWF TCON1 ;1
T1LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T1LOP ;2
RETURN ;2

;--------------------
TIMER2 ;200μS,200コマンド、49
MOVLW D'49' ;1;
MOVWF TCON1 ;1
T2LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T2LOP ;2
RETURN ;2

;--------------------
TIMER4 ;400μS,400コマンド、99
MOVLW D'99' ;1;99
MOVWF TCON1 ;1
T4LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T4LOP ;2
RETURN ;2

;--------------------
TIMER6 ;600μS,600コマンド、149
MOVLW D'149' ;1;149
MOVWF TCON1 ;1
T6LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T6LOP ;2
RETURN ;2

;--------------------
TIMER7 ;700μS,700コマンド、174
MOVLW D'174' ;1;174
MOVWF TCON1 ;1
T7LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T7LOP ;2
RETURN ;2

;--------------------
TEST ;DEBUG用
;TEST
MOVLW B'00010000'
MOVWF GPIO
CALL TIMER7

MOVLW B'00000000'
MOVWF GPIO
CALL TIMER7

RETURN
;TEST
;------------------------------------
END
;終了
;------------------------------------
プログラム画像