A hned mě napadlo k čemu ho využít, našel jsem RC loď bez ovládání. Tak vyzkouším ovládání pomocí IR ovladače doma v bazénu, na větší plochu se s tím neodvážím kuli dosahu IR. No a než mi arduino příjde tak jsem zkusil v simulátoru něco sesmolit a chodí to.
Pokud to bude chodit i ve skutečnosti tak pouvažuji nad přestavbou na wi-fi nebo bluetooth a ovládání mobilem.
Jinak místo 9V bude Li-ion akupack 7,4V.
Chtěl bych vás poprosit o kontrolu. A pokud máte lepší nápad jak vyřešit ovládání servomotoru pomocí IR ovladače, tak budu rád. Je to můj první pokus s programováním.
Kód: Vybrat vše
#include <Servo.h>
#include <IRremote.h>
Servo servo;
int ControlPin = 6;
int MotorPin1 = 8;
int MotorPin2 = 4;
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
irrecv.enableIRIn();
Serial.begin(9600);
pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
pinMode(ControlPin, OUTPUT);
servo.attach(9);
}
void loop(){
if (irrecv.decode(&results)){
switch(results.value){
case 0xFD807F: //Keypad button "Vpřed (volume +)"
analogWrite(controlpin, 50);
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
delay(5);
}
switch(results.value){
case 0xFDA05F: //Keypad button "Pause, zastaví motor"
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
delay(5);
}
switch(results.value){
case 0xFD906F: //Keypad button "Vzad (volume -)"
analogWrite(ControlPin, 50);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
delay(5);
}
switch(results.value){
case 0xFD08F7: //Keypad button "1"
analogWrite(ControlPin, 90);
delay(5);
}
switch(results.value){
case 0xFD8877: //Keypad button "2"
analogWrite(ControlPin, 150);
delay(5);
}
switch(results.value){
case 0xFD48B7: //Keypad button "3"
analogWrite(ControlPin, 255);
delay(5);
}
switch(results.value){
case 0xFD609F: //Keypad button "Vlevo"
servo.write(180);
delay(250);
servo.write(89);
}
switch(results.value){
case 0xFD20DF: //Keypad button "Vpravo"
servo.write(0);
delay(250);
servo.write(89);
}
Serial.println(results.value, HEX);
irrecv.resume();
}
}