You are on page 1of 10

GOAI TECK LIANG HK2006-3572

Application Note for Speed control using RF


(Transmitter/Receiver)
Abstract
This document is mainly about how to use universal synchronous asynchronous receiver
transmitter (usart) to control the speed of stepper motor. The document includes hardware and
software testing.
The first testing part connects the transmitter and a switch into microcontroller, once
the switch is pressed the transmitter will transmit the signal to receiver and Led at receiver will
start to blink. The second testing part connects a potentiometer to analog pin of microcontroller
and transmitter to the microcontroller. The speed can be varying by controlling the
potentiometer.

Introduction

Figure 1 : RF Transmitter

These RF Transmitter/Receiver Modules are very small in dimension and have a wide
operating voltage range (3V-12V). The low cost RF Transmitter/Receiver can be used to
transmit signal up to 100 meters (the antenna design, working environment and supply voltage
will seriously impact the effective distance). It is good for short distance, battery power device
development. In this project design RF Transmitter Modules 315MHz will be used.

1
GOAI TECK LIANG HK2006-3572

The application of RF includes Industrial remote control, telemetry and remote sensing.
Beside that RF also can be used as Alarm systems and wireless transmission for various types of
low-rate digital signal. In addition RF can be used as remote control for various types of
household appliances and electronics projects.

PRODUCT LAYOUT

Figure 2 RF Transmitter 315MHZ

Label Description
Data :The Data pin of the transmitter.
VCC:The power supply to the transmitter.
GND :The Ground of the transmitter.
ANT :The hole to solder and connect antenna. (Please select the
correct antenna length, which is 24cm)

2
GOAI TECK LIANG HK2006-3572

Hardware and Software testing


Testing 1:

Figure 3: Circuit diagram for RF transmitter

Figure 4: Circuit diagram for RF receiver


For the first part, the circuit for the transmitter and receiver above are connected. When
the button of the transmitter circuit is pressed, the transmitter will transmit the signal to the

3
GOAI TECK LIANG HK2006-3572

circuit of the receiver. Once the receiver receives the data from transmitter, the green and red
led will start to blink.

BANKSEL SPBRG
MOVLW D'255'
MOVWF SPBRG
BANKSEL TXSTA
MOVLW B'00100000'
MOVWF TXSTA
BANKSEL RCSTA
MOVLW B'10010000'
MOVWF RCSTA
CALL BANK0
Program above is shown as the setup for the usart.

In this circuit design, the asynchronous mode (BRGH=0) is chosen and the oscillator
used for microcontroller is 20 MHz. Therefore set the SPBRG = 255, the most slow speed for
usart.

4
GOAI TECK LIANG HK2006-3572

For the transmitter part, the transmit enable bit is enabled. Others functions of
transmitter are turned off. Therefore, TXSTA should set as B'00100000'.

BTFSS SWITCH1
CALL SWITCH1_ON
GOTO $-2
SWITCH1_ON
MOVLW D'4' % decimal 4 is moved to the working register
MOVWF TRA % decimal 4 is moved from working register to TRA file
AGAI
BANKSEL PIR1 % select register PIR1
WAITTX1 BTFSS PIR1,TXIF % Test for the TXIF in register PIR1
GOTO WAITTX1 % if TXIF=0, back to the WAITTx1
MOVLW D'1' % decimal 1 is moved to the working register

5
GOAI TECK LIANG HK2006-3572

BANKSEL TXREG % select TXREG register


MOVWF TXREG % decimal 1 is sent
DECFSZ TRA % decrease TRA
GOTO AGAI % if TRA not equal zero go to AGA 1
BANKSEL PIR1 % select PIR1 register
WAITTX2 BTFSS PIR1,TXIF % Test for the TXIF in register PIR1
GOTO WAITTX2 % if TXIF=0, back to the WAITTx2
MOVLW D'2' % decimal 2 is moved to the working register
BANKSEL TXREG % select TXREG register
MOVWF TXREG % decimal 2 is sent
BTFSS SWITCH1 % test switch1
GOTO $-1 % if switch is clear, go to previous step

Program above shows the programming of the transmitter to transmit the signal. The
transmitter will continue to send 4 times decimal 1 and 1 times decimal 2 to the receiver when
the button is pressed. Once the TXREG register transfers the data to the TSR register, the
TXREG register is empty and the TXIF is set.

The set up for receiver is similar to the set up for transmitter.


ASDF
BANKSEL RCSTA
BCF RCSTA,CREN
BSF RCSTA,CREN

AGAIN
BANKSEL PIR1
WAITRX BTFSS PIR1,RCIF
GOTO $-1
BANKSEL RCREG
MOVF RCREG,W
MOVWF REC1
MOVF REC1,W

6
GOAI TECK LIANG HK2006-3572

SUBLW D'1'
BTFSC STATUS,Z
GOTO AGA1
MOVF REC1,W
GOTO AGAIN

AGA1
BANKSEL PIR1
WAITRX1 BTFSS PIR1,RCIF
GOTO WAITRX1
BANKSEL RCREG
MOVF RCREG,W
MOVWF REC1
MOVF REC1,W
SUBLW D'1'
BTFSC STATUS,Z
GOTO AGA1
MOVF REC1,W
SUBLW D'2'
BTFSS STATUS,Z
GOTO AGAIN
MOVWF PORTB
BSF PORTB
GOTO ASDF

Program above shows the programming of my receiver. The receiver will receive 4 times of
decimal 1 and 1 times of decimal 2. Once the TXREG register transfers the data to the TSR
register, the TXREG register is empty and the TXIF is set. If the transfer complete, RCIF is set.

7
GOAI TECK LIANG HK2006-3572

Testing 2

Figure 5: Circuit for transmitter

Figure 6: Circuit for the receiver


The analog signal (0 or 5v) must be changed to the digital signal (0 to 255) in order to
control the speed of stepper motor. Therefore a potentiometer should be connected to any
analog pin of microcontroller to read the analog to digital. Every digital value represents one
speed of stepper motor. After that the transmitter will send digital value to the receiver. The 8

8
GOAI TECK LIANG HK2006-3572

led in the photo above indicates that the digital values (0-255). To make sure the receiver
receive the correct signal, the 8 led on and off at receiver must be same as the transmistter.

The Setting up the usart is similar to the Testing 1.

CALL READ_ADC1 %change analog to digital values


MOVWF PORTB %move the digital values to Port B
MOVWF DTA_SEND %move the digital values to DTA_SEND
MOVLW D'4' % decimal 4 is moved to the working register
MOVWF TRA %decimal 4 is moved from working register to TRA file
AGAI
BANKSEL PIR1 % select register PIR1
WAITTX1 BTFSS PIR1,TXIF % Test for the TXIF in register PIR1
GOTO WAITTX1 % Test for the TXIF in register PIR1
MOVF DTA_SEND,W % move DTA_SEND to the file W
BANKSEL TXREG %select register TXREG
MOVWF TXREG %send the file W
DECFSZ TRA % decrease TRA
GOTO AGAI % if TRA not equal zero go to AGA 1

Programming above shows that analog signal is changing to the digital signal and then
sends it out from transmitter. The transmitter will continue send 4 times of the data to receiver
to decrease the error of usart.

ASDF
BANKSEL RCSTA %select register RCSTA
BCF RCSTA,CREN %clear CREN register
BSF RCSTA,CREN %Set CREN register
AGAIN
BANKSEL PIR1 %select PIR1
WAITRX BTFSS PIR1,RCIF %test the RCIF register
GOTO $-1 %if RCIF = 0 test again for RCIF

9
GOAI TECK LIANG HK2006-3572

BANKSEL RCREG %select RCREG register


MOVF RCREG,W %move data in RCREG to the W file
MOVWF PORTB %move W file to PORT B
GOTO ASDF %infinity loop for the program

Programming above shows that the receiver always prepares to receive the data from
transmitter. Once it receives the data, it will move the data to Port B of 16 F 877A. You can
check the digital value from 8 led.

Conclusion
This application note shows the RF transmitter/receiver can be used as speed control for
stepper motor.

Reference

1. Chunk Hellebuyck, Programming PIC Microcontroller with PIC Basic


2. Tim Wilmshurst, Designing Embedded Systems with PIC Microcontrollers, Principles and
Application.
3. PIC 16F87XA data Sheet 28/40/44-Pin Enhanced Flash Microcontroller
4. www.cytron.com.my
5. http://en.wikipedia.org/wiki/RF

10

You might also like