Simple SONY type IR receiver.

Easily adds IR control to any audio projects.

Shown above in volume / mute configuration with pre-programmed remote and 5Vdc power supply.

Uses codes: Power (2069), Volume Up (2066), Volume Down (2067), Volume Mute (2068).

All quality parts including gold jacks, Mircochip PIC16F18323 micro-controller, Vishay TSOP34440 IR receiver, Texas Instruments SN754410 motor driver and Bourns 100k motorized pot.

Completely passive audio path with non shorting mute circuit.

Dry contact outputs follow power status. Ideal for triggering external devices/amps. Contacts rated 1A @ 12Vdc.

Precise 2 speed motor control step rate. Click – Hold – Release will increment / decrement volume in small steps.  Rapidly clicking and releasing will increment / decrement volume at a high rate.

Intelligent features include instruction received feedback via power led and return to low volume on shutdown.

Long range reliability of +30ft.

Compatible with any remote that supports Sony codes. (DAV10)


Add to Cart     Volume +mute receiver with remote $119.00        


Available as volume only or volume, mute and up to 4 sources.

Uses just 6 codes: Power (2069), Volume Up (2066), Volume Down (2067), Volume Mute (2068), Source UP (2173), and Source Down (2158).

Schematic and code for full version shown below.

Simple SONY IR schematic
Simple SONY IR hook-up

Simple SONY IR receiver (DAV10)  beta V1 :

'EULA: Licensed under the MIT License agreement.

'Copyright (2020) PJL Electronics LLC

'Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal
'in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
'of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

'The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
'FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
'IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


'Simple IR receiver (SONY DAV10 beta 1):

' PICBASIC PRO

; V1.0 BETA


define OSC 32



 

 
' SETUP I/O IN ASEMBLY 
asm  

;The A port
BANKSEL PORTA ;
CLRF PORTA ;Clear PORTA
BANKSEL LATA ;Data Latch for A
CLRF LATA ;
BANKSEL ANSELA ;
CLRF ANSELA ; select digital I/O
BANKSEL TRISA ;
MOVLW B'00000000' ;Set all to out
MOVWF TRISA
     
;The C port
BANKSEL PORTC ;
CLRF PORTC ;Clear PORTC
BANKSEL LATC ;Data Latch for C
CLRF LATC ;
BANKSEL ANSELC ;
CLRF ANSELC ;select digital I/O
BANKSEL TRISC ;
MOVLW B'00000001' ;Set RC<0 AND 1> as inputs, remaining will be out
MOVWF TRISC 
endasm 

       
low portc
low porta.4
low porta.5
'high porta.5
'pause 9000
'low porta.5




 ''''''''''''''''''''''''''''''''''' inits





initIR:
define PULSEIN_MAX 2600
IR_Sense var portc.0
ST var word
IR_Word var word
bits var byte
ID var word



power var bit
source var byte
temp var byte
power = 0

read 0, source
if source = 0 or source > 4 then source = 1



''''''''''''''''''''''''''''''''''''''Main Program


top:
ir_word = 0
ID = 0 
    gosub irin 
    If ir_word > 0 then
        if  ir_word = 2069 then gosub powerset
        if power = 0 then  goto top
        if  ir_word = 2173 then gosub sourceup
        if  ir_word = 2158 then gosub sourcedown 
        if  ir_word = 2066 then gosub volup    
        if  ir_word = 2067 then gosub voldown  
        if  ir_word = 2068 then gosub volmute 
    endif
goto top



powerset:
if power = 1 then 
    power = 0
    low portc.1
    low portc.2
    low portc.3
    low portc.4
    low portc.5
    high porta.5
    gosub longpause
    low porta.5
    write 0, source 
    else 
    power = 1
    high porta.4
    gosub shortpause
    low porta.4 
    high portc.5
    gosub setsource
endif    
gosub debouncelong
return

sourceup:
source = source + 1
if source = 5 then source = 1
gosub setsource
gosub debounce
return

sourcedown:
source = source - 1
if source = 0 then source = 4 
gosub setsource
gosub debounce 
return

setsource:
low portc.1
low portc.2
low portc.3
low portc.4
if source = 1 then high portc.1
if source = 2 then high portc.2
if source = 3 then high portc.3
if source = 4 then high portc.4
pause 100
return
 
volup:
high porta.4
gosub debouncelong
low porta.4
return
    
voldown:
high porta.5
gosub debouncelong
low porta.5
return
  
volmute:
low portc.5
pause 2000
high portc.5
return 

longpause:
for temp = 1 to 18
    high portc.5 
    pause 250
    low portc.5
    pause 250   
next
return

shortpause:
for temp = 1 to 3
    high portc.5 
    pause 250
    low portc.5
    pause 250   
next
return


irin:
pulsin portc.0, 0, st
    IF ST < 1200 or st >2500 Then Return' If not valid then exit
For bits=0 to 11
    Pulsin portc.0,0,Id ' Receive the IR bit pulse 
    ir_word.0[bits] = 0
    If id >=600 then ir_word.0[bits] = 1 ' If its >= 600 then we've received a 1
Next
return

debounce:
pulsin portc.0, 1, st
'LCDOUT $FE, $C0, #st
 IF  (st  >560) or (ST = 0) Then Return
goto debounce 
    
debouncelong:
ir_word = 0
pulsin portc.0, 1, st
'LCDOUT $FE, $C0, #st
    IF   (ST = 0) Then Return
    goto debouncelong