本帖最后由 lxf 于 2020-8-17 13:29 编辑
目标
结合L298N电机驱动板、灰度传感器与带电机小车,完成小车巡线任务。
实验材料
Arduino UNO开发板 配套USB数据线 配套杜邦线若干 带直流电机小车
9V充电锂电池 9V电池扣子 Arduino IDE软件
(硬件对照图)
内容
完成小车走圆形,两个灰度传感器没有识别到黑线时,小车前进,当小车往左偏时,右边灰度传感器识别到黑线,小车右转修正,当小车往右偏时,左边灰度传感器识别到黑线,小车左转修正。
接线图
(Arduino UNO开发板与超声波传感器模块、直流电机、电池、16路pwm舵机驱动板、灰度传感器的连接方式)
备注: L298N电机驱动板的ENA接Arduino UNO的4号引脚,ENB接Arduino UNO的12号引脚。
接线方式
Arduino UNO <------> L298N电机驱动板 5V <------> 5V GND <------> GND
ENA <------> 4 IN1 <------> 5
IN2 <------> 6
ENB <------> 12
IN3 <------> 10 IN4 <------> 11
Arduino UNO <------> 灰度传感器模块1 5V <------> VCC GND <------> GND A2 <------> OUT Arduino UNO <------> 灰度传感器模块2 5V <------> VCC GND <------> GND A1 <------> OUT L298N电机驱动板 <------> 直流减速电机1 OUT1 <------> 一端接口 OUT2 <------> 另一端接口 L298N电机驱动板 <------> 直流减速电机2 OUT3 <------> 一端接口 OUT4 <------> 另一端接口 L298N电机驱动板 <------> 9V充电锂电池 +12V <------> 正极 GND <------> 负极
程序实现代码
- void setup(){
- pinMode(4, OUTPUT);
- pinMode(12, OUTPUT);
- }
- void loop(){
- if (analogRead(A1) < 500 && analogRead(A2) < 500) {
- digitalWrite(4,HIGH);
- digitalWrite(12,HIGH);
- analogWrite(5,100);
- analogWrite(6,0);
- analogWrite(10,0);
- analogWrite(11,100);
- } else if (analogRead(A1) > 500 && analogRead(A2) < 500) {
- digitalWrite(4,HIGH);
- digitalWrite(12,HIGH);
- analogWrite(5,100);
- analogWrite(6,0);
- analogWrite(10,0);
- analogWrite(11,0);
- } else if (analogRead(A1) < 500 && analogRead(A2) > 500) {
- digitalWrite(4,HIGH);
- digitalWrite(12,HIGH);
- analogWrite(5,0);
- analogWrite(6,0);
- analogWrite(10,100);
- analogWrite(11,0);
- }
- }
复制代码 |