Arduino R3 红外接收控制小坦克程序
2021/6/1 20:24:06
本文主要是介绍Arduino R3 红外接收控制小坦克程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
程序功能:通过红外遥控器接收指令,坦克玩具进行前进、后退和行进中的炮塔转动
#include <Unistep2.h>//步进电动机库
#include <IRremote.h>//马达库
#define STEPS 4096
int steps = -STEPS;
Unistep2 stepper(8, 9, 10, 11, STEPS, 1000);// IN1, IN2, IN3, IN4, 總step數, 每步的延遲(in micros)
int RECV_PIN =7;
int runNum = 0;
decode_results results;
IRrecv irrecv(RECV_PIN);
#define A_1A 3 // A_1A控制A馬達的前進(HIGH)、後退(LOW)
#define A_1B 4 // A_1B控制A馬達的速度 0~255 ,LOW表示停止
#define B_1A 5 // B_1A控制B馬達的前進(HIGH)、後退(LOW)
#define B_1B 6 // B_1B控制B馬達的速度 0~255,LOW表示停止
int highSpeed = 200;
int lowSpeed = 100;
#define Speed 150
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(A_1A,OUTPUT);
pinMode(A_1B,OUTPUT);
pinMode(B_1A,OUTPUT);
pinMode(B_1B,OUTPUT);
digitalWrite(A_1A,LOW);
digitalWrite(A_1B,LOW);
digitalWrite(B_1A,LOW);
digitalWrite(B_1B,LOW);
}
//車子停止
void stopcar(){
digitalWrite(A_1A,LOW);
digitalWrite(A_1B,LOW);
digitalWrite(B_1A,LOW);
digitalWrite(B_1B,LOW);
}
//車子向前走
void forward(){
digitalWrite(A_1A,HIGH);
analogWrite(A_1B,LOW);
digitalWrite(B_1A,HIGH);
analogWrite(B_1B,LOW);
}
//車子向後走
void backward(){
digitalWrite(A_1A,LOW);
analogWrite(A_1B,Speed);
digitalWrite(B_1A,LOW);
analogWrite(B_1B,Speed);
}
//車子右轉
void turnRight(){
digitalWrite(A_1A,LOW);
analogWrite(A_1B,LOW);
digitalWrite(B_1A,HIGH);
analogWrite(B_1B,LOW);
}
//車子左轉
void turnLeft(){
digitalWrite(A_1A,HIGH);
analogWrite(A_1B,LOW);
digitalWrite(B_1A,LOW);
analogWrite(B_1B,LOW);
}
void loop()
{
stepper.run(); //步進機啟動
//红外接收
if (irrecv.decode()) {
Serial.println(irrecv.decodedIRData.command);
switch(irrecv.decodedIRData.command){
case 70:
runNum = 0;
stepper.moveTo(runNum);
break;
case 69:
runNum = runNum + 409;
stepper.moveTo(runNum);
//stepper.run();
break;
case 71:
runNum = runNum - 409;
stepper.moveTo(runNum);
// stepper.run();
break;
case 68:
backward();
break;
case 64:
forward();
break;
case 67:
stopcar();
break;
case 7:
turnLeft();
break;
case 21:
turnRight();
break;
}
irrecv.resume();
}
}
参考博文:https://blog.jmaker.com.tw/tag/arduino_getting_started/
这篇关于Arduino R3 红外接收控制小坦克程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南