obstacle avoider robot

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Type: 

Compiler/Assembler: 

/*
Title: obstacle_avoider.c
Author: Linesh Thakre
Date Created: 28/08/16
Last Modified:28/08/16
Purpose: Mini Project for my friends
*/
//set clock speed
#define F_CPU 16000000UL
//these are the include files. 
#include <avr/io.h>
#include <util/delay.h>

int main (void)
 {
   DDRB = 0xFF; //Output port
   DDRA = 0x00; //input port
   int left_sensor = 0;
   int right_sensor = 0;
  
   //create an infinite loop
   while(1) 
    {
      left_sensor = (PINA & 0b00000100);
      right_sensor = (PINA & 0b00001000);
 
        
      if((( left_sensor==0b00000000) && (right_sensor==0b00000000)))
         PORTD=0b00001100;  //move forward

    

      if(left_sensor==0b00000010) 
       
       {
            PORTB = 0b00000000; //stop
             _delay_ms(300);
            PORTB = 0b00001001;    //move backward
             _delay_ms(300);
            _delay_ms(300);
            PORTB=0b00001010;  //turn right
             _delay_ms(300);    //wait 
            _delay_ms(300);
    
   
        }
     
      if(right_sensor==0b00000001) 
       
       {
             PORTB = 0b00000000; //stop
             _delay_ms(300);
               PORTB = 0b00001001;  //move backward
              _delay_ms(300);
             _delay_ms(300);
             
             PORTB=0b00000101;  //turn left
             _delay_ms(300);     //wait 
            _delay_ms(300);