亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

红外遥控车

组件和用品

WINGONEER Arduino 新型红外红外无线遥控传感器模块套件
× 1
SainSmart L298N 双 H 桥步进电机驱动器
× 1
4WD 机器人汽车底盘套件
× 1
Arduino UNO
× 1

必要的工具和机器

烙铁(通用)

关于这个项目

我在 Instructables 上找到了原始设计并构建了它的一个版本。最初是一辆履带式车辆,而这辆是 4WD。对原始设计的调整来自于 IR 的设置。当电机运行时,原始设计会受到反馈干扰,从而干扰 IR 接收器。电机在接地线相遇的地方充当发电机。我更改了 IR 的引脚和分配

如果使用 SAINSMART 流动站套件,请按照提供的说明组装汽车底座。在这里找到

红外接收器:

intreceiver_pin =4; //将控制器上的输出引脚 4 连接到 IR 接收器 Y

int vcc =5; //将控制器上的输出引脚 5 连接到 IR 接收器 V

国际地=6; //将控制器上的输出引脚 4 连接到 IR 接收器 G

L298N电机驱动模块:

// 电机 A

int enA =8;

int in1 =12;

int in2 =11;

// 电机 B

int enB =7;

int in3 =10;

int in4 =9;

L298N电机驱动模块GND到控制器GND

L298N 电机驱动模块到电机:

//电机组A右侧

连接 电机的“+”(红色)侧到 Out 4

将电机的“-”(黑色)侧连接到 Out 3

// 电机组 B 左侧

连接 电机的“+”(红色)侧到 Out 2

将电机的“-”(黑色)侧连接到 Out 1

将电池连接到 L298N 驱动模块“+”(红色)到 VCC 和“-”(黑色)到 GND

完整的图表

代码

  • 红外遥控车
红外遥控车C#
#include char command;int receiver_pin =4; //在引脚4int vcc =5处连接IR接收器的输出引脚; //VCC IR sensorint gnd =6; //IR sensorint statusled =13;IRrecvirrecv(receiver_pin);decode_results results;//将电机控制器引脚连接到Arduino数字引脚//电机Aint enA =8;int in1 =12;int in2 =11;//电机Bint enB =7;int in3 =10;int in4 =9;void setup(){Serial.begin(9600);irrecv.enableIRIn();pinMode(statusled,OUTPUT);digitalWrite(statusled,LOW);//设置所有电机控制引脚输出 pinMode(enA, OUTPUT); pinMode(enB,输出); pinMode(in1, 输出); pinMode(in2, 输出); pinMode(in3, 输出); pinMode(in4, 输出); pinMode(vcc,输出);引脚模式(接地,输出); // 初始化 vcc pin high digitalWrite(vcc, HIGH);}void loop() {if (irrecv.decode(&results)) {digitalWrite(statusled,LOW);irrecv.resume();if (results.value ==0xFF18E7 ){ // 键入按钮 2 向前机器人控制 // 此函数将以固定速度在两个方向上运行电机 Serial.println("Button 2"); // 打开电机 A digitalWrite(in1, HIGH);数字写入(in2,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, HIGH);数字写入(in4,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100);}else if(results.value ==0xFF10EF){ // 键入按钮 4 向左转机器人控制 // 此函数将运行电机 A前进方向电机 B 停止 Serial.println("Button 4"); // 打开电机 A digitalWrite(in1, HIGH);数字写入(in2,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, LOW);数字写入(in4,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100); }else if(results.value ==0xFF30CF){ // 输入按钮 1 向左旋转机器人控制 // 此函数将使电机 A 正向运行电机 B 反向运行 Serial.println("Button Turn Right"); // 打开电机 A digitalWrite(in1, HIGH);数字写入(in2,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, LOW);数字写入(in4,高); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100); }else if(results.value ==0xFF5AA5){ // 输入按钮 6 向右转机器人控制 // 此函数将停止电机 A 向前运行电机 B Serial.println("Button Turn Left"); // 打开电机 A digitalWrite(in1, LOW);数字写入(in2,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, HIGH);数字写入(in4,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100);}else if(results.value ==0xFF7A85){ // 键入按钮 3 向右旋转机器人控制 // 此函数将运行电机 A反向电机 B 正向 // 打开电机 A digitalWrite(in1, LOW);数字写入(in2,高); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, HIGH);数字写入(in4,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100);} else if(results.value ==0xFF4AB5){ // 键入按钮 8 后退机器人控制 // 此函数将运行电机 A 和电机B 向后 // 打开电机 A digitalWrite(in1, LOW);数字写入(in2,高); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, LOW);数字写入(in4,高); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100);}else if(results.value ==0xFF38C7){ // 键入按钮 5 停止机器人控制 // 此函数将同时停止电机 A 和电机 B // 打开电机 A digitalWrite(in1, LOW);数字写入(in2,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enA, 100); // 打开电机 B digitalWrite(in3, LOW);数字写入(in4,低); // 将速度设置为 200,超出可能的范围 0~255 analogWrite(enB, 100); }}}

示意图


制造工艺

  1. 控制电路
  2. 避孕药
  3. C# 构造函数
  4. Raspberry Pi Universal Remote
  5. 水池填充控制
  6. 远程心率监测器
  7. 重复使用不需要的红外遥控器来关闭和重启树莓派
  8. 三菱工业机器人的远程访问和控制
  9. ICS 安全攻击实现建筑物的远程控制
  10. 云监控,远程控制系统
  11. 远程生产控制的5个优点
  12. 桥式起重机遥控器:您需要知道的一切