Arduinoで作ろう(34) 赤外線リモコンカー
PanasonicのTVリモコンを使って「赤外線リモコンカー」を作ってみました。
赤外線レシーバは秋月で買ったOSRB38C9AA,DCモータドライバはL298Nを使っています。
スケッチはコレ→20190911_ir_dcmotorcar.ino
/*
* Panasonicテレビリモコンで赤外線リモコンカー
*/#include <IRremote.h>
int RECV_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
// 右モーター A
int enA = 10;
int in1 = 9;
int in2 = 8;
// 左モーター B
int enB = 5;
int in3 = 7;
int in4 = 6;
//speed
int speed1=100;
int speed2=80;
void setup(){
irrecv.enableIRIn();
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
irrecv.resume();
switch (results.value) {
case 0x757FB4DF: //button 2(前進)
//右モーター A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, speed1);
//左モーター B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, speed1);
break;
case 0x6BACFEEF: //button 8(後退)
//右モーター A
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, speed1);
//左モーター B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, speed1);
break;
case 0xE705551F: //button 5(停止)
//右モーター A
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
//左モーター B
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
break;
case 0x3C03E507: //button 4(右回転)
//右モーター A
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
//左モーター B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, speed2);
break;
case 0xA4A58EC7: //button 6(左回転)
//右モーター A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, speed2);
//左モーター B
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
break;
default:break;
}
}
}
| 固定リンク | 0
「Arduino」カテゴリの記事
- Arduinoで作ろう(62) ESP8266+SSD1306でNTP時計(2023.11.18)
- 新型 Arduino UNO R4 MINIMA を買った(2023.07.01)
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
コメント