课程目标
最简小车的设计双电机控制车辆运动小车的多种运动形态实现电路搭建
所需材料
arduinouno * 1
l298n驱动模块 * 1
直流电机 * 2
7~12v外接电源 * 1
杜邦线若干
小车组件
电路连接
程序编写
练习一:小车的循环运动
通过编写程序,循环实现小车的前进一秒、后退一秒、左转一秒、右转一秒、停止一秒功能。
图形化方式:
如果有同学发现,按照下面的程序上传后,小车的运动有问题,那么可以通过改变直流电机的接线或者修改数字输出引脚的高低电平即可。
代码方式:
/* 项目名称:循环控制小车运动 * 项目时间:2022.03.28 * 项目作者:mrx */int in1 = 4; // in1连接 d4int in2 = 5; int ena = 9; int in3 = 6; // in3连接d6int in4 = 7; int enb = 10; unsigned long delaytime = 1000; //等待时间int value = 100; // 模拟输出的值//前进void forward() { digitalwrite(in1,high); digitalwrite(in2,low); analogwrite(ena,value); digitalwrite(in3,high); digitalwrite(in4,low); analogwrite(enb,value);}//后退void back() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,value); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,value);}//右转void right() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,value); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,0);}//左转void left() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,0); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,value);}// 停止void stop() { digitalwrite(in1,low); digitalwrite(in2,low); analogwrite(ena,0); digitalwrite(in3,low); digitalwrite(in4,low); analogwrite(enb,0);}void setup(){ for (int i = 4;i <= 10;i++){ pinmode(i, output); }}void loop(){ forward(); delay(delaytime); forward(); delay(delaytime); left(); delay(delaytime); right(); delay(delaytime); stop(); delay(delaytime);}练习二:可调速的小车
通过读取可调电位器的值,来实现车速的变化。
电路接线:
在上图的基础上,增加一个可调电位器连接到uno的a0脚。
图形化方式:
代码方式:
/* 项目名称:电位器控制小车速度 * 项目时间:2022.03.28 * 项目作者:mrx */int in1 = 4; // in1 connected to pin 4int in2 = 5; int ena = 9; int in3 = 6; // in3 connected to pin 6int in4 = 7; int enb = 10; unsigned long delaytime = 1000; //delay timeint value = 0; // the duty cyclevoid forward() { digitalwrite(in1,high); digitalwrite(in2,low); analogwrite(ena,value); digitalwrite(in3,high); digitalwrite(in4,low); analogwrite(enb,value);}void back() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,value); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,value);}void right() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,100); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,0);}void left() { digitalwrite(in1,low); digitalwrite(in2,high); analogwrite(ena,0); digitalwrite(in3,low); digitalwrite(in4,high); analogwrite(enb,100);}void stop() { digitalwrite(in1,low); digitalwrite(in2,low); analogwrite(ena,0); digitalwrite(in3,low); digitalwrite(in4,low); analogwrite(enb,0);}void setup(){ for (int i = 4;i <= 10;i++){ pinmode(i, output); } pinmode(a0,input);}void loop(){ value = (map(analogread(a0), 0, 1023, 0, 255)); forward();}
低温气动球阀的具体功能以及使用特点的介绍
比亚迪半导体的估值从75亿涨到300亿
iSuppli:今年全球光伏系统装机容量将增长68%
低压系统接地制式分类
PN结温度传感器及测温电路原理
Arduino篇—直流电机控制在轮式机器人中的应用
什么是干湿球温度计
LED透明屏为什么要接地线?
无线无源测温采集器的系统结构及特点
三瓦表、两瓦表和单瓦表方法
服务器数据恢复-infortrend存储RAID6数据恢复案例
基于数据模型更快更好开发卡车和客车电气系统
浅谈中国三星S9是今年是销量突破点
四维图新旗下杰发科技AC8015一体化轻座舱方案成功实现量产上市
液晶显示器的汉字显示方法
vivo性价比策略效果有所下降,小米开始反击
AI+中医创新融合 中医传承也可智能化
功率半导体充当节能先锋 中国企业加快步伐
称重传感器的工作原理_称重传感器的应用
sg3525引脚功能及工作原理