实现红外避障功能小车(软件:mixly)

本文介绍了如何使用Arduino Uno和L298N模块正确驱动直流电机,并避免常见错误。此外,还涉及了连接超声波及红外传感器的方法,以及通过Mixly进行图形化编程的初步尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用Arduino与L298N(红板) 驱动直流电机
这里写图片描述
Arduino uno + L298N 驱动模块接线
这里写图片描述
**

上边这个接法,电机只会哆嗦不会转到,修改下如下图:

**
这里写图片描述
二、接超声波传感器(百度)
三、接红外传感器(百度)
四、3D打印超声波传感器支架
这里写图片描述
这里写图片描述
五、mixly图形代码(这个可能不太完善)
这里写图片描述
红外遥控器设置
这里写图片描述

Mixly小车避障循迹代码,是用于控制小车进行避障和循迹的代码。以下是一个简单的代码示例,仅供参考: ``` #include <MsTimer2.h> int enA = 6; int in1 = 7; int in2 = 8; int enB = 11; int in3 = 9; int in4 = 10; int sensorPin1 = A0; int sensorPin2 = A1; int sensorPin3 = A2; int sensorPin4 = A3; int sensorPin5 = A4; int leftSpeed, rightSpeed; void setup() { pinMode(enA, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(enB, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(sensorPin1, INPUT); pinMode(sensorPin2, INPUT); pinMode(sensorPin3, INPUT); pinMode(sensorPin4, INPUT); pinMode(sensorPin5, INPUT); MsTimer2::set(20, control); MsTimer2::start(); } void loop() { } void control() { int sensorValue1 = digitalRead(sensorPin1); int sensorValue2 = digitalRead(sensorPin2); int sensorValue3 = digitalRead(sensorPin3); int sensorValue4 = digitalRead(sensorPin4); int sensorValue5 = digitalRead(sensorPin5); leftSpeed = 200; rightSpeed = 200; if (sensorValue3 == LOW) { leftSpeed = -100; rightSpeed = -100; delay(300); leftSpeed = -100; rightSpeed = 100; delay(500); } else if (sensorValue2 == LOW) { leftSpeed = -100; rightSpeed = -100; delay(300); leftSpeed = -100; rightSpeed = 100; delay(500); } else if (sensorValue4 == LOW) { leftSpeed = -100; rightSpeed = -100; delay(300); leftSpeed = 100; rightSpeed = -100; delay(500); } else if (sensorValue1 == LOW) { leftSpeed = -100; rightSpeed = -100; delay(300); leftSpeed = 100; rightSpeed = -100; delay(500); } else if (sensorValue5 == LOW) { leftSpeed = -100; rightSpeed = -100; delay(300); leftSpeed = -100; rightSpeed = -100; delay(500); } else { leftSpeed = 200; rightSpeed = 200; } analogWrite(enA, abs(leftSpeed)); digitalWrite(in1, leftSpeed > 0 ? HIGH : LOW); digitalWrite(in2, leftSpeed > 0 ? LOW : HIGH); analogWrite(enB, abs(rightSpeed)); digitalWrite(in3, rightSpeed > 0 ? HIGH : LOW); digitalWrite(in4, rightSpeed > 0 ? LOW : HIGH); } ``` 这段代码的功能是通过5个红外线传感器读取地面的黑线情况,根据读取结果实现小车避障和循迹。如果传感器检测到了黑线,小车会做出相应的避障或者循迹动作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值