Online solutios

head

White board eraser control using remote | circuit diagram.

 

CIRCUIT DIAGRAM

onlinesoln.com


ARDI (ARDUINO UNO R3) Control unit.

TSOP 1838 The TSOP1838 is a miniature IR receiver IC form the TSOP18xx series. This particular model TSOP1838 will respond to 38kHz IR signals from remote control devices.

D5 (LED) for showing operating status.

D6 (LED) for showing power status in ARDUINO.

D3 & D4 (LED) for showing power status in motor driver ic.

D2 (LED) for showing power status in TSOP 1838

R2, R3, R4, R5, R6 (RESISTOR 1K) for LED protection from burn.

R1 (1K) D1 (DIODE 1N4007) ,BC 547 is a NPN transistor, used to drive the electromagnetic relay.

L293D MOTOR DRIVER The Motor Driver is a module for motors that allows you to control the working speed and direction of two motors simultaneously . This Motor Driver is designed and developed based on L293D IC. L293D is a 16 Pin Motor Driver IC. This is designed to provide bidirectional drive currents at voltages from 5 V to 36 V.

DC MOTOR should be gear motor which have 12V


If you feel any technical difficulty, then you may CONTACT ME,


//SOURCE CODE WWW.ONLINESOLN.COM //
#include <IRremote.h> 
int RECV_PIN = 3;
IRrecv irrecv(RECV_PIN);
decode_results results;

//pins for LEDs
int power_pin = A3;
int operating_pin = A2;             

int lmt_right = 9;
int lmt_left = 5;
//pins for motor_driver
int mt1 = 10;
int mt2 = 11;

//pins for Relay 
int l1 = 12;

void setup() {
  // put your setup code here, to run once:
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");
   
pinMode(power_pin, OUTPUT);
pinMode(operating_pin, OUTPUT);
pinMode(mt1, OUTPUT);
pinMode(mt2, OUTPUT);
pinMode(l1, OUTPUT);

pinMode(lmt_right, INPUT);
pinMode(lmt_left, INPUT);
delay(1000);
}
void loop() {
  // put your main code here, to run repeatedly:
  Serial.begin(9600);
  Control_duster(); //control duster with button and remote
}
//METHOD TO RUN THE DUST BY BUTTON
void Control_duster(){
    String result_2 = "";
    if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    result_2 = (String)results.value;
    Serial.print("RESULT 2: ");
    Serial.println(result_2);
    irrecv.resume(); // Receive the next value
    delay(200);
  }
  
  if(result_2=="16769565"){
    result_2 = "";
    delay(500);
    
    while(digitalRead(lmt_right)==LOW){
      Serial.println("Forward run");
      digitalWrite(mt1, LOW);
      digitalWrite(mt2, HIGH);
      digitalWrite(l1, LOW);
      delay(1000);

    if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    result_2 = (String)results.value;
    Serial.print("RESULT 2: ");
    Serial.println(result_2);
    irrecv.resume(); // Receive the next value
    delay(200);
  }
  
      if(result_2=="16753245"){
        delay(500);
        Serial.println("Stop imeadiately...");
        result_2 = "";
        break;
      }
    }
      digitalWrite(mt1, LOW);
      digitalWrite(mt2, LOW);
      digitalWrite(l1, HIGH);
      delay(500);
      
     while(digitalRead(lmt_left)==LOW){
      Serial.println("Reverse run");
      digitalWrite(mt1, HIGH);
      digitalWrite(mt2, LOW);
      digitalWrite(l1, HIGH);
      delay(1000);
      
      if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    result_2 = (String)results.value;
    Serial.print("RESULT 2: ");
    Serial.println(result_2);
    irrecv.resume(); // Receive the next value
    delay(100);
     }
     
      if(result_2=="16736925"){
        delay(500);
        Serial.println("Stop imeadiately...");
        result_2 = "";
        break;
      }
    }
    digitalWrite(mt1, HIGH);
    digitalWrite(mt2, HIGH);
    digitalWrite(l1, HIGH);
    
    digitalWrite(operating_pin, LOW);
    delay(500);
  }
}

Post a Comment

0 Comments