HomeArticlesProjectsBlogContact
Articles
4 Channel Remote Control
Colin Mitchell
Colin Mitchell
April 09, 2015
Make sure to subscribe to our newsletter and be the first to know the news.

Table Of Contents

01
Why re-invent the wheel?
02
TRANSMITTER / RECEIVER SPECIFICATIONS
03
The CIRCUIT
04
CONSTRUCTION
05
The PROGRAM
06
MORE
07
4 Channel Remote Control Parts List
08
JUST THE MICRO:

[Kits are available](mailto:colin@elechelp.com?Subject=Buying components for 4 Channel Remote Control &Body=Please e-mail the cost of 4 Channel Remote Control by air mail to my country:****___**** and send details of how I can pay for it. My name is:____) for this project from Talking Electronics for $15.00 for the PCB and components plus $5.00 for the transmitter/receiver modules plus $6.50 postage.

See more projects using micros: Elektor,EPE,Silicon Chip

Why re-invent the wheel?

Why design a project from the start when there are many modules available on the web that can get a project finished in half the time.
One such module is a 4-Channel remote control.

4ChannelTxRx
The Transmitter plus the Receiver costs $5.00

The Transmitter plus the Receiver costs $5.00 The range is about 30 metres.

TRANSMITTER / RECEIVER SPECIFICATIONS

Transmitter:

  1. Operating voltage: DC12v (27A/12v battery)
  2. Operating Current: 10mA @ 12v
  3. Radiated power: 10mw @ 12v
  4. Modulation mode: ASK (Amplitude Modulation)
  5. Transmitting frequency: 315MHz
  6. Transmission distance 50-100M (Open field, receiver sensitivity -100dbm)
  7. Encoder types: fixed code

Receiver Board
Operating voltage DC 5v, receiver sensitivity -98db. VT, D3, D2, D1, D0, +5v, GND.
VT is a valid signal high output pin. Upon receiving a valid signal, this pin goes HIGH. Can be used to drive a relay.
D3, D2, D1, D0 are the 4 outputs. One of the outputs goes HIGH when a valid signal is detected.

The transmitter is a fob-sized case with four buttons.
These buttons can be labelled A, B, C, D or D, C, B, A depending on the manufacturer and the software has to be written for each type of transmitter.
The receiver is a very small PC board with the output via a set of pins.
But the transmitter/receiver set-up needs additional circuitry to take the 4 outputs to control various devices.
It needs either a set of relays or buffer (DRIVER) transistors.

That’s what this project does.
It takes the 4 outputs and connects them to a set of 4 driver transistor.
But an additional feature is provided by the microcontroller.
It turns each of the outputs ON or OFF each time the button is pressed.
This project is ideal for so many applications.
You may have a large train layout and you will be able to control 4 items at a distance without the need for wiring.
Or you can open and close gates or animal feeders or watering devices.
You can turn on displays or alarms or anything that needs activation.
The transmitter will work up to about 30 metres and operates at 315MHz via a transmitting module contained in a 3-leaded metal can, soldered next to the transmitting coil.

The CIRCUIT


4 channel remote control circuit

CONSTRUCTION

The components fir on a small PC board and all parts are through-hole, except for the surface-mount LEDs.


4 CHANNEL REMOTE CONTROL PCB

The PROGRAM

The program only performs a very simple task but doing this with discrete devices will take at least 6 chips.
You need to detect a long or short tone from 4 channels and provide a latching circuit.
Rather than sit down and design the necessary circuit, you can use a microcontroller.
It’s just a very convenient way of solving your circuit-designing problems.
The outputs of the receiver are fed to a 100n capacitor via different-value resistors.
The diodes are needed because the outputs go low and the resistors not being used would be taken to 0v and have the effect of reducing the line that is HIGH.
If the 120k line is HIGH and all the others are LOW, a voltage-dividing situation would result in a very small voltage on the 100n.
With our arrangement, the voltage on the 100n will be 5v, but the time taken to reach 5v will be different for each line as the value of the charging resistor is different.
The micro discharges the 100n via the 220R and then waits to see how long it takes to charge the 100n.
It then discharges the 100n and waits again.
It keeps doing this to determine if a button has been pushed for a short period of time or long period of time.
This arrangement has been done because we only have 6 in-out lines on the PIC12F629 microcontroller chip and 4 lines have been allocated for the outputs.
The fifth line is INPUT ONLY and does not have the capability of discharging the 100n.
That means we only have one line available to detect the 4 input lines (as we need to have a line that can be configured as input and output).
Many of the sub-routines for this project have already been written and you can look through previous projects for the instructions.
The micro will be mainly looping around the input. This is called “polling” the input and it simply discharges the 100n and waits for a long period of time to see if it has charged. This period of time represent the time taken for the 120k to charge the 100n. It is only a few milliseconds, but in computer time this is considerable.
When the 100n is detected as being charged, the micro goes to a sub-routine to determine which line is HIGH.
The program then toggles the corresponding output.

MORE

For more details on modifying the program and burning the PIC chip, see Talking Electronics website and click on Elektor,EPE,Silicon Chip in the index.
You can find details of: PICkit-2 and Adapter connected for In-Circuit Programming at this link.

Here is the file you will need for “burning” your chip and/or modifying the program. It comes as .asm, .txt and .hex for using as a file to modify, or to read, or to burn a new chip:

The kit comes with a pre-programmed PIC chip, see parts list below.

;****************************************************************
;Started 18/4/2015
;**4-Channel 303MHz (313MHz)**- Press one of 4 buttons for
;a short time and the corresponding output will toggle.

;****************************************************************
    list    p=12F629
    radix   dec
    include "p12f629.inc"

    errorlevel -302 ; Don't complain about
                     BANK 1 Registers during assembly

    __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF
                   & _INTRC_OSC_NOCLKOUT  ;Internal osc.

;_MCLRE_OFF - master clear must be off for gp3 to work as input pin

;****************************************************************
; variables - names and files
;****************************************************************

temp1   equ 20h ;
temp2   equ 21h ;
temp3   equ 22h ;
temp4   equ 23h ;
_flash  equ 26h ;for flashing the LED


;****************************************************************
;Equates
;****************************************************************
status  equ 0x03
rp1 equ 0x06
rp0 equ 0x05
GPIO    equ     0x05


status  equ 03h
option_reg  equ 81h


    ; bits on GPIO

pin7    equ 0   ;GP0  Input from 303MHz module
pin6    equ 1   ;GP1  Output A
pin5    equ 2   ;GP2  Output B
pin4    equ 3   ;GP3  not used
pin3    equ 4   ;GP4  Output C
pin2    equ 5   ;GP5  Output D


    ;bits

rp0 equ 5   ;bit 5 of the status register

;****************************************************************
;Beginning of program
;****************************************************************
    org 0x00
    nop
    nop
    nop
    nop
    nop
SetUp   bsf status, rp0     ;Bank 1
        movlw   b'11001001' ;Set TRIS  GP1,2,4,5 out GP0,input
    movwf   TRISIO      ;
    bcf status, rp0 ;bank 0
    movlw   07h             ;turn off Comparator ports
        movwf   CMCON           ;must be placed in bank 0
        clrf    _flash
    clrf    GPIO        ;Clear GPIO of junk
    goto    Main

;*********************
;* delays           *
;*********************


    ;approx 16uS  delay

_10uS   goto    $+1
        goto    $+1
    goto    $+1
        goto    $+1
        goto    $+1
        goto    $+1
        goto    $+1
    retlw   00




_XuS    movlw   .100
    movwf   temp1
_2  nop
    decfsz  temp1,f
    goto    _2
    retlw   00



_1mS    movlw   .2
    movwf   temp2
_1  nop
    decfsz  temp1,f
    goto    _1
    decfsz  temp2,f
    goto    _1
    retlw   00


_100mS  movlw   .100
    movwf   temp2
_100    nop
    decfsz  temp1,f
    goto    _100
    decfsz  temp2,f
    goto    _100
    retlw   00


_500mS  movlw   0FFh
    movwf   temp2
_500    goto    $+1
    goto    $+1
    decfsz  temp1,f
    goto    _500
    decfsz  temp2,f
    goto    _500
    retlw   00



;****************************
;* Sub Routines             *
;****************************

LED     bsf      gpio,1
        call     _500mS
    bcf      gpio,1
        call     _100mS
        decfsz   _flash,1
        goto     LED
        call     _500mS
        call     _500mS
        call     _500mS
        call     _500mS
    goto     Main



Toggle  decfsz  _flash,1
        goto    $+4
        movlw   02
    xorwf   gpio,1  ;pin6 button A (1)
    goto    M2
    decfsz  _flash,1
        goto    $+4
        movlw   02
    xorwf   gpio,1  ;pin6 button A (2)
    goto    M2
    decfsz  _flash,1
        goto    $+4
        movlw   04
    xorwf   gpio,1  ;pin5 button B (3)
        goto    M2
    decfsz  _flash,1
        goto    $+4
        movlw   04
        xorwf   gpio,1  ;pin5 button B (4)
        goto    M2
        decfsz  _flash,1
        goto    $+4
        movlw   04
    xorwf   gpio,1  ;pin5 button B (5)
        goto    M2
        decfsz  _flash,1
        goto    $+4
        movlw   10h
    xorwf   gpio,1  ;pin3 button C (6)
    goto    M2
    decfsz  _flash,1
        goto    $+4
        movlw   10h
    xorwf   gpio,1  ;pin3 button C (7)
    goto    M2
        decfsz  _flash,1
        goto    $+4
        movlw   10h
    xorwf   gpio,1  ;pin3 button C (8)
    goto    M2

        decfsz  _flash,1
    goto    $+4
    movlw   20h
    xorwf   gpio,1  ;pin2 button D (9)
        goto    M2
    decfsz  _flash,1
        goto    $+4
        movlw   20h
    xorwf   gpio,1  ;pin2 button D (10)
    goto    M2

    decfsz  _flash,1
        goto    M2
        movlw   20h
    xorwf   gpio,1  ;pin2 button D (11)
    goto    M2



;****************************************************************
;* Main                             *
;****************************************************************

Main    bsf status, rp0     ;Bank 1
        bcf     TRISIO,0        ;make pin7 output
    bcf status, rp0 ;bank 0

    bcf gpio,0      ;make pin7 low to discharge 100n
        call    _1mS        ;discharge 100n

        bsf status, rp0     ;Bank 1
        bsf     TRISIO,0        ;make pin7 input
    bcf status, rp0 ;bank 0
    nop
    btfss   gpio,0
    goto    $-2
    bsf status, rp0     ;Bank 1
        bcf     TRISIO,0        ;make pin7 output
    bcf status, rp0 ;bank 0

    bcf gpio,0      ;make pin7 low to discharge 100n
        call    _1mS        ;discharge 100n
        clrf    _flash
        bsf status, rp0     ;Bank 1
        bsf     TRISIO,0        ;make pin7 input
    bcf status, rp0 ;bank 0

    btfsc   gpio,0
    goto    Toggle
    incf    _flash,1
    call    _XuS
    goto    $-4

    ;switch debounce:

M2      bsf status, rp0     ;Bank 1
        bcf     TRISIO,0        ;make pin7 output
    bcf status, rp0 ;bank 0

    bcf gpio,0      ;make pin7 low to discharge 100n
        call    _1mS        ;discharge 100n

        bsf status, rp0     ;Bank 1
        bsf     TRISIO,0        ;make pin7 input
    bcf status, rp0 ;bank 0
    call    _1mS
    call    _1mS
    btfsc   gpio,0
    goto    M2
        goto    Main

    END

4 Channel Remote Control Parts List

Cost: $15.00 for the PCB and components plus $5.00 for the transmitter/receiver modules plus $6.50 postage.

[Kits are available](mailto:colin@elechelp.com?Subject=Buying components for 4 Channel Remote Control &Body=Please e-mail the cost of 4 Channel Remote Control by air mail to my country:****___**** and send details of how I can pay for it. My name is:____)**

  • 4 - 220R resistor
  • 1 - 22k resistor1 - 47k resistor
  • 1 - 82k resistor
  • 1 - 120k resistor
  • 2 - 100n monoblock capacitors
  • 1 - 10u 16v electrolytic
  • 1 - 100u 16v electrolytic
  • 4 - 1N4148 diode
  • 4 - SM red LEDs
  • 1 - 78L05 regulator
  • 4 - BD679 transistors
  • 1 - SPDT mini slide switch
  • 1 - 8 pin IC socket
  • 1 - 7-pin socket for receiver module
  • 5 - 2-pin screw terminals
  • 1 - PIC12F629 chip (with 4Ch routine)
  • 2 - machine pins for logic probe
  • 1 - 20cm 0.5mm enamelled wire for antenna
  • 20cm - very fine solder
  • 1 - 4 button remote control
  • 1 - SC2272 Receiver module
  • 1 - 4 Channel PC board

JUST THE MICRO:

Pre-programmed PIC16F629 micro with 4 Channel routine $5.00 plus $4.50 post


Colin Mitchell

Colin Mitchell

Expertise

electronics
writing
PIC-Chips

Social Media

instagramtwitterwebsite

Related Posts

TODO
Transistor Test
© 2021, All Rights Reserved.

Quick Links

Advertise with usAbout UsContact Us

Social Media