电机驱动模块--L298N

news/2024/12/22 17:55:39/

最近在用树莓派做点东西,用到了L298N模块,有一些坑记录下来

我用的差不多长这个样子
在这里插入图片描述

先简要介绍一下L298N模块

L298N模块是一个电机驱动模块,干啥用的呢,就是我们如果要让电机转动,我们知道,需要给电机加上合适的电压就可以了,但是如果我们驱动多个电机,或者要使用单片机或者树莓派等用程序去控制电机的话,不可能是我们用插拔电源来实现,我们理所应当的选择“开关”来实现,然后利用真值表约定高低电平,来告诉开关啥时候打开,啥时候关闭。用来做这件事情的中间件我们叫电机驱动模块,L298N是常用的一款

L2898N有4个用来接收高低电平的输入端,如下图

在这里插入图片描述

电源输入端

当然,光有信号的接收端可是不能正常工作的,L298N用两个电源输入端,如下图,理论上输入的是7-12v,我测试过,低于大于6v而小于7v,供应一路输入是没问题的,只是电机转的有点费劲。如果电压高于12v,这个按照淘宝店的说法是要接一个外界分压电路,我没试过。输入输出端的旁边那个是一个5v的输出端,使用这个输出端的时候需要将该接口上方那个跳线帽拔下来
在这里插入图片描述

然后是输出

我们有四个输入端分别是 in1,in2,in3,in4对应左右两个输出端,out1,out2,out3,out4,他们两两在一起。然后真值表就很简单了
一高一低,这样存在电势差,就会正常工作
在这里插入图片描述

转速

L298N的功能不只是控制啥时候启动,还可以控制转速,通过pwm的方法
这是干啥的,具体原理我也不太清楚。简单知道一点怎么用,我们知道数电上学那个叫方波的周期函数了,pwm就是通过改变一个周期里面高电平的占空比,就是高电平占整个周期的时间,来实现具体的转速的改变,内部的实现细节我就不清楚了。如何使用这个pwm功能。只要把in端旁边的跳线帽去掉然后接到控制端就行了。我们控制2个输出,所以有两个pwm的控制端,在输入的左右两侧
在这里插入图片描述

然后是树莓派实现的一些代码

import RPi.GPIO as GPIO
import time
#设置gpio端口编码方式
GPIO.setmode(GPIO.BOARD)
#设置不显示警告
GPIO.setwarnings(False)
#gpio端口定义,方便以后改接线方式
#pwm控制端定义
int1=11
int2=12
int3=13
#初始化函数
GPIO.setup(int2,GPIO.OUT)
GPIO.setup(int3,GPIO.OUT)
GPIO.setup(int1,GPIO.OUT)
#普通输出方式,此时pwm口应该接跳线帽,不然不工作
GPIO.output(int2,GPIO.HIGH)
GPIO.output(int3,GPIO.LOW)
time.sleep(10)
#定义pwm输出model,第一个参数是gpio口,第二个是频率
pwm=GPIO.PWM(int1,80)
pwm.start(90)
while True:#改变占空比输出,此时为90pwm.ChangeDutyCycle(90)time.sleep(10)#此时为30pwm.ChangeDutyCycle(30)time.sleep(10)
#此函数用来释放端口资源,不然电机会一直转下去
#GPIO.cleanup()

下面是一些坑

1)树莓派需要和L298N共地,这也好理解,就是你不共地的话,谁知道那个电平是低电平那个电平是高电平啊,共地的方式很简单,就是树莓派的gpio的gnd和电源负极接在一起就好了
2)使用pwm的话拔下来跳线帽,如果不用,一定要把跳线帽接回去,不然无法正常工作
3)出现问题怎么办,我的办法是用万能表,先测树莓派的gpio的输出,再测电机,这样很快就能确定问题出在哪了


http://www.ppmy.cn/news/511691.html

相关文章

L298N 电机驱动板 - 详细介绍

L298N是意法半导体(ST Semiconductor)集团旗下量产的一种双路全桥式电机驱动芯片,拥有工作电压高、输出电流大、驱动能力强、发热量低、抗干扰能力强等特点,通常用来驱动继电器、螺线管、电磁阀、直流电机以及步进电机。 什么是L2…

L298N电机驱动的使用

L298N电机驱动的使用 前言一、介绍L298N模块简介接口介绍 二、使用步骤硬件连接软件部分1.声明部分2.代码部分 总结 前言 博主为某大学电气专业大学生,以学习为目的写下该文,内容主要为以51单片机为例简单介绍L298N电机驱动模块的使用。内容若有不适&am…

docker 项目部署 后端/前端

1.前端部署 2.后端部署 问题一:build出问题 ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 668a7264-5d0b-45a6-b547-fa8fff014bda::g00ukurq2ipxuvrrz8rnpyskp: "/swagger2-demo-0.0.1-SNAPSHOT.jar": …

签名文字头像PSD模板源文件打包3D艺术字贴图创意网红头像-李廷学

每天更新创意壁纸头像,喜欢记得关注哦。 人生途中,有些是无法逃避的,比如命运;有些是无法更改的,比如情缘;有些是难以磨灭的,比如记忆;有些是难以搁置的,比如爱恋……与其…

3D 旋转相册 立方体的盒子 相册(源码分享)

效果图 css代码 *{margin: 0;padding: 0; } body{display: flex;justify-content: center;align-items: center;background-color: #333;min-height: 100vh;perspective: 1000px; } //构建 3D的空间 .con{position: relative;width: 300px;height: 300px;transform-style: pres…

SLAM论文粗译:3D Mapping with an RGB-D Camera

Ⅰ简介 摘要 在本文中,我们提出了一种新的绘图系统,可以使用RGB-D摄像机稳健地生成高精度的三维地图。我们的方法不需要其他传感器或里程计。凭借微软Kinect等低成本,轻量级RGB-D传感器,我们的方法适用于小型家用机器人&#xf…

室内设计常用的涂料清单

涂料又被称为油漆,是涂于物体表面能形成具有保护、装饰或特殊性能(如绝缘、防腐、标志等)的固态涂膜的一类液体或固体材料的总称,在室内设计中非常常见,这次我整理了常用的涂料清单,方便各位设计师查阅&…

Java类和成员变量声明类详解

目录 声明类声明成员变量访问修饰符类型变量名 声明类 定义类: ? 1 2 3 4 class MyClass { // 字段、构造函数和 // 方法声明 } 这是一个类声明。类主体(大括号之间的区域)包含提供从类创建的对象的生命周期的所有代码&#…