Simple remote for your preamp.

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
It's simple IR decoder based on PIC16F84A.
It uses RC5 commands for TV (system code = 0)
Commands 1,2,3,4,5,MUTE,VOL UP,VOL DOWN.
I use it to control 5 relays and ALPS Motor Pot in my preamp.
If you have question e-mail me boris_7@rambler.ru


rc5_dec.bmp rc5 decoder schematic
DISTAN.HEX codes for PIC16F84A , decoder section is based on rc5.txt
JDM84.GIF programmator

Programmator and soft from
http://www.ic-prog.com/index1.htm

rc5.txt from http://members.home.nl/baltusg/
 

Attachments

  • ir_dec.zip
    15.1 KB · Views: 175
If you guys want a simple vol remote for a preamp this is the cheapest and simplest idea:
Go to your nearest big toy store and find the cheapest remote controlled toy car with two buttons.They should be quite cheap costing something like 10 usd.Rip out the remote receiver module in the car which is a tiny pcb and keep the bright coloured handset.........
Much better than paying something like 50usd for ir modules plus extra for the handset,programming etc etc.
 
Using a TC4469 myself to drive the pot and ULN2004 to drive the relays (via i2c io extender).

Progress on the preamp is slow.... I just recently got some alu top cover with holes in it to finish it off. Nearly complete (someday). But i'm thinking of changing to relays instead of a pot, which would mean a new pcb..

For those who don't know what i'm talking about;

guido = g
b = baltus:D :D :D :D
 
One more funny thing i used in the program:

The codes are stored into the internal eprom of the pic in a table.
Table goes from 0 to 63 which is the number of codes for one address. If the location is filled with FF, the code is not used. If the location is filled with another value the code is used.

There is a 'jumptable' before the normal program which jumps to the different routines that handle the different codes. These goto commands are specifically located at a known address. Suppose the 'goto' command for cd-routine is at address '0F'. So in the eeprom we store 0F at a RC5 code. In my case the RC5 code '1' is used for cd. So we get:

- receive '1' from RC5 interrupt routine
- retreive the value at location 1 in the eeprom
- if value not FF, use it by poking it into the program-counter...:D

For changing codes you now only have to change the eeprom contents, you don't need to change the code or use a long routinge to check the received code with each possible value.

Not complete, but to get the idea (sorry for the dutch..)

ORG h'2100
DE h'FF' ;0 NUMBER 0
DE h'0F' ;1 NUMBER 1 cd
DE h'0A' ;2 NUMBER 2 tuner
DE h'0E' ;3 NUMBER 3 aux
DE h'11' ;4 NUMBER 4 phono
DE h'10' ;5 NUMBER 5 tape
DE h'FF' ;6 NUMBER 6
DE h'FF' ;7 NUMBER 7
DE h'FF' ;8 NUMBER 8
DE h'FF' ;9 NUMBER 9
DE h'FF' ;10 1/2 DIGITS
DE h'FF' ;11
DE h'0D' ;12 STAND-BY off
DE h'0C' ;13 MUTE mute
DE h'FF' ;14 PRESETS
DE h'FF' ;15 DISPLAY
DE h'09' ;16 VOLUME + volume up
DE h'08' ;17 VOLUME - volume down
DE h'FF' ;18 BRIGHTNESS +
DE h'FF' ;19 BRIGHTNESS -
DE h'FF' ;20 COLOUR SAT+
DE h'FF' ;21 COLOUR SAT-
DE h'FF' ;22 BASS+
DE h'FF' ;23 BASS-
DE h'FF' ;24 TREBLE+
DE h'FF' ;25 TREBLE-
DE h'FF' ;26 BALANCE RIGHT
DE h'FF' ;27 BALANCE LEFT
DE h'FF' ;28
DE h'FF' ;29
DE h'FF' ;30 SEARCH+
DE h'FF' ;31 SEARCH-
DE h'05' ;32 PRESET+ tuner up
DE h'06' ;33 PRESET- tuner down
DE h'FF' ;34
DE h'FF' ;35
DE h'FF' ;36
DE h'FF' ;37 MONO/STEREO
DE h'FF' ;38
DE h'FF' ;39
DE h'FF' ;40 RF SWITCH
DE h'FF' ;41 STORE EXECUTE
DE h'FF' ;42
DE h'07' ;43 SCAN FORW config
DE h'FF' ;44
DE h'FF' ;45 FM
DE h'FF' ;46 MW
DE h'FF' ;47 LW
DE h'FF' ;48 PAUSE
DE h'FF' ;49 ERASE
DE h'FF' ;50 REWIND
DE h'FF' ;51 GO TO
DE h'FF' ;52 WIND
DE h'FF' ;53 PLAY
DE h'FF' ;54 STOP
DE h'FF' ;55 RECORD
DE h'FF' ;56 EXT1
DE h'FF' ;57 EXT2
DE h'FF' ;58 CLEAR ALL MEM
DE h'FF' ;59
DE h'FF' ;60
DE h'FF' ;61 SYS STANDBY
DE h'FF' ;62
DE h'0B' ;63 SYS SELECT preset
; Maximum 63


ORG h'0000'
goto START ; RESETVECTOR

ORG h'0004'
goto IntServ ; Interrupt service routine

ORG h'0005'
goto TunerUpRoutine ; add h'05': code pr tuner up
goto TunerDownRoutine ; add h'06': code pr tuner do
goto ConfigRoutine ; address h'07': code conf amp
goto VolumeDownRoutine ; address h'08': code vol do
goto VolumeUpRoutine ; address h'09': code vol up
goto TunerRoutine ; address h'0A': code tuner
goto PresetRoutine ; address h'0B': code play key
goto MuteRoutine ; address h'0C': code muting
goto OffRoutine ; address h'0D': code off
goto AuxRoutine ; address h'0E': code aux
goto CdRoutine ; address h'0F': code cd
goto TapeRoutine ; address h'10': code tape
goto PhonoRoutine ; address h'11': code phono

START ...
sleep

; >>>>> INTERRUPT SERVICE ROUTINE, FETCH RC5

NewCode
movlw d'12'
subwf RC5_Bit_Count,W
btfss STATUS,Z
goto SELECT ; number of bits not 12, error

movlw RC5_Adr1 ; test first address
subwf RC5_Address,W
btfss STATUS,Z
goto NextTry ; not my address
goto FoundIt ; my address

NextTry movlw RC5_Adr2 ; test second address
subwf RC5_Address,W
btfss STATUS,Z
goto SELECT ; not my address

FoundIt
movf RC5_Command,W ; RC5 commando naar W
movwf EEADR ; adres in EEprom PIC
call ReadEE ; Vraag vector op, komt in W
movwf RC5_Command ; RC5 vector opslaan

movlw h'FF'
subwf RC5_Command,W ; vergelijk vector met FF
btfsc STATUS,Z
goto SELECT ; Vector = FF = geen commando

clrf PCLATH ; clear high bits programmcounter
movf RC5_Command,W ; vector -> W
movwf PCL ; W naar programmcounter
 
Boris_7 said:
It's simple IR decoder based on PIC16F84A.
It uses RC5 commands for TV (system code = 0)
Commands 1,2,3,4,5,MUTE,VOL UP,VOL DOWN.
I use it to control 5 relays and ALPS Motor Pot in my preamp.
If you have question e-mail me boris_7@rambler.ru


rc5_dec.bmp rc5 decoder schematic
DISTAN.HEX codes for PIC16F84A , decoder section is based on rc5.txt
JDM84.GIF programmator

Programmator and soft from
http://www.ic-prog.com/index1.htm

rc5.txt from http://members.home.nl/baltusg/

Hi,

Connect some unused ports to some dip-switches to gnd and a pull-up resistor (cant remember if it is already there internally).

You can then set the switches to form a code resembling the rc5 address which can be read from the pins. People then have a choice of the address.

I would not like it to be TV ;)
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.