Devices & Components
Arduino Uno Rev3
Servos (Tower Pro MG996R)
Standard LCD - 16x2 White on Blue
IR receiver (generic)
SparkFun Breadboard Power Supply 5V/3.3V
Resistor 2.21k ohm
Resistor 221 ohm
Jumper wires (generic)
Software & Tools
Arduino Web Editor
Arduino IDE
Project description
Code
Code
c_cpp
1#include <IRremote.h> 2#include <IRremoteInt.h> 3 4#include <Servo.h> 5 6#include <LiquidCrystal.h> 7 8LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD screen setup RS,E,D4,D5,D6,D7 9int RECV_PIN=8; //IR pin 10IRrecv irrecv(RECV_PIN); 11decode_results results ; 12Servo myservo; 13int angle = 0; //setup angle 14 15void setup() 16{ 17 lcd.begin(16, 2); //LCD 16*2 18 myservo.attach(9); //Servo pin 19 myservo.write(angle); //write servo value=0 20 irrecv.enableIRIn(); // enable IR 21 22 lcd.setCursor(0, 0); //this is a loading bar, not a nice code...but work:) 23 lcd.print("Betoltes..."); //print the text 24 delay(800); 25 lcd.clear(); 26 lcd.print("Betoltes>"); 27 delay(400); 28 lcd.clear(); 29 lcd.print("Betoltes>>"); 30 delay(400); 31 lcd.clear(); 32 lcd.print("Betoltes>>>"); 33 delay(400); 34 lcd.clear(); 35 lcd.print("Betoltes>>>>"); 36 delay(400); 37 lcd.clear(); 38 lcd.print("Betoltes>>>>>"); 39 delay(400); 40 lcd.clear(); 41 lcd.print("Betoltes>>>>>>"); 42 delay(400); 43 lcd.clear(); 44 lcd.print("Betoltes>>>>>>>"); 45 delay(400); 46 lcd.clear(); 47 lcd.print("Motor szoge:"); //print the text 48 lcd.setCursor(0, 1); //set cursor 2. line 49 lcd.print(angle); //print the servo value 50} 51 52void loop() 53{ 54 55 if(irrecv.decode(&results)) //read ir code 56 { 57 translateIR(); 58 myservo.write(angle); 59 60 if (angle>180) //when servo angle value max print maximum text 61 { 62 lcd.clear(); 63 lcd.setCursor(0, 0); 64 lcd.print("Motor szoge:"); 65 lcd.setCursor(0, 1); 66 lcd.print("Maximum szog"); 67 angle = 190; 68 } 69 else if (angle<0) //when servo angle value min print minimum text 70 { 71 lcd.clear(); 72 lcd.setCursor(0, 0); 73 lcd.print("Motor szoge:"); 74 lcd.setCursor(0, 1); 75 lcd.print("Minimum szog"); 76 angle = -10; 77 } 78 else //print servo angle value 79 { 80 lcd.clear(); 81 lcd.setCursor(0, 0); 82 lcd.print("Motor szoge:"); 83 lcd.setCursor(0, 1); 84 lcd.print(angle); 85 } 86 irrecv.resume(); 87 } 88} 89 void translateIR() // 90 { 91 switch(results.value) { 92 case 0xFF6897: //0 button 93 angle = 0; //set angle minimum value 94 break; 95 96 case 0xFF30CF: //1 button 97 angle = angle + 10; //increase angle value 98 break; 99 100 case 0xFF18E7: //2 button 101 angle = angle -10; //decrease angle value 102 break; 103 104 case 0xFF7A85: //3 button 105 angle = 180; //set angle maximum value 106 break; 107 108 } 109 }
Downloadable files
Scematich
Scematich

Schematich
Schematich

Scematich
Scematich

Schematich
Schematich

Comments
Only logged in users can leave comments