
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
COMPONENT |
QUANTITY |
ATmega32 Microcontroller IC |
1 |
4×3 Keypad Module |
1 |
RF transmitter and Receiver module |
1 |
HT12E Encoder IC |
1 |
HT12D Decoder IC |
1 |
L293D motor driver IC |
1 |
7805 and 7812 voltage regulator IC |
1 |
Battery-12V |
2 |
Geared DC motor |
2 |



@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
-
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }-
KEYPAD PIN
ARDUINO MEGA PIN.NO
R1
PA0
R2
PA1
R3
PA2
R4
PA3
C1
PA4
C2
PA5
C3
PA6
-
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
-
LCD DISPLAY
ATMEGA32 IC
D0 To D7 PIN
PIN 1 To 8 of PORTB
RS
PIN 0 of PORTD
RW
PIN 1 of PORTD
EN
PIN 2 of PORTD




Project Source Code
Project Source Code
###
//Program to
#include<avr/io.h>
#include<util/delay.h>#define F_CPU 1000000#define USART_BAUDRATE 9600#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE*16UL))) - 1)#define pad PORTA#define r1 PA0#define r2 PA1#define r3 PA2#define r4 PA3#define c1 PA4#define c2 PA5#define c3 PA6// Function prototype to check key pressed from keypadvoid check1(void);void check2(void);void check3(void);void check4(void);#define LCD_DATA PORTB //LCD data port#define ctrl PORTD#define en PD2 //enable signal#define rw PD1 //read/write signal#define rs PD0 //resister select signal#define CONTROL_OUTPUT PORTC // output port for wireless transmissionvoid LCD_cmd(unsigned char cmd);void init_LCD(void);void LCD_write(unsigned char data);void move_forward();void move_backward();void turn_left();void turn_right();unsigned int press;int main(){unsigned char value;DDRC=0x0f; //LCD_DATA port as output portDDRB=0xFF; //signalDDRA = 0X0F;DDRD = 0X07;pad = 0xF0;init_LCD(); //initialization of LCD_delay_ms(50);LCD_write_string("EngineersGarage");_delay_ms(1000);LCD_cmd(0x01);LCD_write_string("Keypad Cntrld");LCD_cmd(0xC0);LCD_write_string("Wireless Robot");while(1){PORTA=0xF0; //set all the input to onevalue=PINA; //get the PORTD value in variable “value”if(value!=0xf0) //if any key is pressed value changed{check1();check2();check3();check4();}}return 0;}void check1(void){pad =0b11111110;_delay_us(10);if(bit_is_clear(PINA,c2)){move_forward();}}void check2(void){pad=0b11111101;_delay_us(10);if(bit_is_clear(PINA,c3)){turn_right();}}void check3(void){pad=0b11111011;_delay_us(10);if(bit_is_clear(PINA,c2)){move_backward();}}void check4(void){pad =0b11110111;_delay_us(10);if(bit_is_clear(PINA,c2)){robo_stop();}}void init_LCD(void){LCD_cmd(0x38); //initializtion of 16X2 LCD in 8bit mode_delay_ms(1);LCD_cmd(0x01); //clear LCD_delay_ms(1);LCD_cmd(0x0E); //cursor ON_delay_ms(1);LCD_cmd(0x80); // ---8 go to first line and --0 is for 0th position_delay_ms(1);return;}void LCD_cmd(unsigned char cmd){LCD_DATA=cmd;ctrl =(0<<rs)|(0<<rw)|(1<<en); // making RS and RW as LOW and EN as HIGH_delay_ms(1);ctrl =(0<<rs)|(0<<rw)|(0<<en); // making RS, RW , LOW and EN as LOW_delay_ms(50);return;}void LCD_write(unsigned char data){LCD_DATA= data;ctrl = (1<<rs)|(0<<rw)|(1<<en); // making RW as LOW and RS, EN as HIGH_delay_ms(1);ctrl = (1<<rs)|(0<<rw)|(0<<en); // making EN and RW as LOW and RS HIGH_delay_ms(50); // give a 10 milli second delay to get thigs executedreturn ;}void LCD_write_string(unsigned char *str) //take address vaue of the string in pionter *str{int i=0;while(str[i]!='