L298N

L298N是目前智能小车应用很广泛的价格也比较便宜的电机驱动,用来驱动直流电机。

L298N

输出A 输出B 分别接两个直流电机,电机两根线随便接,如果发现两电机方向是反着的,就调换下接线就ok了。

12V供电 这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。

5V供电 引出5V电压接到Arduino板,给Arduino板供电(驱动电压7~12V)连接到UNO板的5V,同时Arduino板也要引出一条GND线,连接到L298N的GND与外部电源共地。

ENA ENB通道A使能,通道B使能,当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽,接到arduino上的模拟输入输出接口。

IN1 IN2 IN3 IN4逻辑输出口,其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。

硬件连线

Ardunio    <-->   L298N
5V         <-->   5V供电(非必要)
GND        <-->   GND(非必要)
输出引脚    <-->   ENA ENB IN1~4外部电源  12V供电  GND

不使用PWM实现小车的部分功能代码

int input1=5; // 定义uno的pin 5 向 in1 输出
int input2=6; // 定义uno的pin 6 向 in2 输出
int input3=9; // 定义uno的pin 9 向 in3 输出
int input4=10; // 定义uno的pin 10 向 in4 输出  void setup() {
Serial.begin (9600);
//初始化各IO,模式为OUTPUT 输出模式
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
pinMode(input3,OUTPUT);
pinMode(input4,OUTPUT);
}void loop(){  //forward 向前转  digitalWrite(input1,HIGH); //给高电平  digitalWrite(input2,LOW);  //给低电平  digitalWrite(input3,HIGH); //给高电平  digitalWrite(input4,LOW);  //给低电平  delay(1000);   //延时1秒  //stop 停止  digitalWrite(input1,LOW);  digitalWrite(input2,LOW);    digitalWrite(input3,LOW);  digitalWrite(input4,LOW);    delay(500);  //延时0.5秒  //back 向后转  digitalWrite(input1,LOW);  digitalWrite(input2,HIGH);    digitalWrite(input3,LOW);  digitalWrite(input4,HIGH);    delay(1000);
}

使用PWM调制控制小车

 void forward();void turnleft();void turnright();void stopcar();int ENA1=5;
int ENB1=6;
int IN1=2;
int IN2=3;
int IN3=4;
int IN4=7;int ENA2=9;
int ENB2=10;
int IN5=8;
int IN6=11;
int IN7=12;
int IN8=13;void setup()
{for(int i=2;i<=13;i++){pinMode(i,OUTPUT);}Serial.begin(9600);
}
int x=1500;
void loop()
{ forward();delay(x);turnleft();delay(x/3);forward();delay(x);turnright();delay(x/3);stopcar();
}
void forward(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,HIGH);digitalWrite(IN6,LOW);digitalWrite(IN7,HIGH);digitalWrite(IN8,LOW);
}
void turnback(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,LOW);digitalWrite(IN6,HIGH);digitalWrite(IN7,LOW);digitalWrite(IN8,HIGH);}
void stopcar(){analogWrite(ENA1,0);analogWrite(ENB1,0);digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);analogWrite(ENA2,0);analogWrite(ENB2,0);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);digitalWrite(IN7,LOW);digitalWrite(IN8,LOW);}void turnleft(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,LOW);digitalWrite(IN6,HIGH);digitalWrite(IN7,LOW);digitalWrite(IN8,HIGH);}void turnright(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,HIGH);digitalWrite(IN6,LOW);digitalWrite(IN7,HIGH);digitalWrite(IN8,LOW);}

(程序代码直接复制粘贴可能编译出错,因为有中文空格或者字符!尽管我是用英文输入的,但经常编译出现中文的错误。)
这样的小车只能按照写好的程序运动,如果我们用蓝牙或者红外遥控来控制小车才能使小车按照我们的想法随意运动,下次介绍。

L298N 小车应用(附代码)相关推荐

  1. 江苏省工程训练赛--物料搬运小车(附代码)

            程序和方案还有很多要改进的地方,自己以后也没有机会再做这个比赛了,当时自己苦思冥想的东西,如果能帮助到需要的人,那就再次发挥了价值!也很希望大家比完赛后,能分享自己的思考,想法和方案. ...

  2. ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车

    ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 文章目录 ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 所需组件 一.小车所需组件 ...

  3. Get了!用Python制作数据预测集成工具 | 附代码

    作者 | 李秋键 责编 | 晋兆雨 大数据预测是大数据最核心的应用,是它将传统意义的预测拓展到"现测".大数据预测的优势体现在,它把一个非常困难的预测问题,转化为一个相对简单的描述 ...

  4. java中自造类是什么意思_Java建造者模式是什么?如何实现?(附代码)

    本篇文章给大家带来的内容是关于Java建造者模式是什么?如何实现?(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 建造者模式 一.什么是建筑者模式? 建造者模式(Build ...

  5. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  6. html5自定义属性作用,html5自定义属性:如何获取自定义属性值(附代码)

    这篇文章给大家介绍的内容是关于html5自定义属性:如何获取自定义属性值(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 自定义属性: 在HTML5中我们可以自定义属性,其格 ...

  7. 手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客 (翻译:程思衍校对:付宇帅)

    手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客 手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客

  8. 独家 | 手把手教TensorFlow(附代码)

    上一期我们发布了"一文读懂TensorFlow(附代码.学习资料)",带领大家对TensorFlow进行了全面了解,并分享了入门所需的网站.图书.视频等资料,本期文章就来带你一步步 ...

  9. MobileViT: 一种更小,更快,高精度的轻量级Transformer端侧网络架构(附代码实现)...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 [导读]之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现 ...

  10. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...

最新文章

  1. 常见机器学习算法背后的数学
  2. 转载 .net面试题大全(有答案)
  3. bufferedwriter缓冲区设置多大比较合适_画册设计一般多大?宣传册设计用多大尺寸比较合适?...
  4. mysql 分号子查询_MySQL子查询详解
  5. hdfs 指令_Hadoop Shell命令
  6. C语言开发里指针到底快还是不快?(底层汇编解释)
  7. 如何使用Aimersoft Video Suite Mac将 DVD 刻录到 ISO/DVD 文件夹
  8. 最常用的五种数据分析方法,建议收藏!
  9. java程序启动端口_查看项目端口和启动情况
  10. 数字逻辑——卡诺图化简练习题
  11. Pandas基础-利用python进行数据分析
  12. 网页制作的一些素材整理(一)
  13. 计算机考研数学复试时间,数学专业考研准备多久
  14. 科大讯飞股价暴跌趋势不明,语音交互产业风险巨大吗?
  15. 加解密与HTTPS(1)
  16. 全球与中国佐替平市场深度分析及发展研究预测报告
  17. pso算法matlab程序,基本PSO算法的matlab源程序
  18. 用istioctl看istio生成的envoy xds配置(一)
  19. java 鱼刺图_鱼骨图问题分析法
  20. 后端优化1(SLAM十四讲ch10)-BA

热门文章

  1. 产品 电信nb接口调用_NB-IoT 平台对接常见问题(中国电信)
  2. 安卓内录声音软件scr_高清录屏大师app下载-高清录屏大师app安卓版下载v3.0.0.23 - 非凡软件站...
  3. jetbrains webstorm汉化包
  4. 什么是自动化测试?为什么要自动化测试?怎么做?
  5. 请修改服务器脱机策略,异速联/天高客户端用户已离线但服务器端用户会仍话驻留处理方法...
  6. 最常用的前端网站模板集合
  7. 关于数据元、元数据、主数据、交易数据、主题数据、数据资源、大数据、数据湖等数据相关概念理解和总结
  8. android组件化掘金,MVPArms 官方快速组件化方案
  9. java8 新特性之 -- lamdba 表达式 -- Optional类 --遍历 Map List
  10. 网易云音乐评论加密解析