0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机设计的电动车控制器

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-06-08 09:05 次阅读

一、项目介绍

随着社会经济的快速发展,人们对节能环保的要求越来越高,电动车因其无污染、噪音小、使用成本低等优点逐渐成为了市场关注的焦点。同时,随着科技的不断进步和应用,电动车的技术水平也在不断提高。

为了更好地满足市场需求和科技进步的要求,本项目基于51单片机设计了一款电动车控制器。主要包括电动车控制和驱动两个关键部分。其中,控制部分采用51单片机作为控制核心,通过编程实现电动车前后行驶、左右转向、加速等操作。而驱动部分则采用L298N驱动芯片驱动直流电机。当前设计的电动车,支持锂电池供电、支持按键实现电动车前后行驶、左右转向和加速等操作,电机采用直流电机,驱动芯片采用L298N。

image-20230605214700101

image-20230605214900851

image-20230605214937298

二、系统架构

本系统由控制器、电机、驱动芯片、锂电池和按键等组成,其功能、特点如下:

(1)控制器:采用AT89S52微控制器,作为整个系统的核心控制部分。控制器接收来自按键的信号,控制驱动芯片输出电机控制信号,从而实现对电动车的前后行驶、左右转向、加速等控制功能。

(2)电机:采用直流电机,其转速和转向可通过驱动芯片控制信号进行调节。

(3)驱动芯片:采用L298N驱动芯片,为电机提供驱动电流,并控制电机转速和转向。L298N驱动芯片具有功率大、稳定性好等特点。

(4)锂电池:为电动车提供动力,具有体积小、能量密度高、充电效率高、自放电率低等优点。

(5)按键:用于控制和调节电动车的运行状态,包括前后行驶、左右转向、加速等操作。

三、系统设计

3.1 控制器设计

本项目采用STC89C52为主控芯片,主要功能是接收来自按键的信号,并通过控制L298N驱动芯片输出驱动电流,从而控制电机的转速和转向。控制器还需要实现锂电池充电管理、限位保护等的功能。

设计流程:

(1)编写单片机的逻辑程序,实现对按键信号的捕获和处理,以及对L298N驱动芯片的控制。

(2)为了实现锂电池充电和保护,采用锂电池充电模块和充电管理芯片。

3.2 电机和驱动芯片设计

本项目电机采用直流电机,驱动芯片采用L298N。

设计流程:

(1)根据电机型号和参数,确定合适的电机供电电压和控制电路

(2)根据实际需要,确定L298N驱动芯片的工作模式和参数,设计驱动电路

(3)为提高电机的效率和寿命,添加电机驱动电阻、反电动势抑制电路电路。

3.3 锂电池设计

本项目采用锂电池供电。

设计流程:

(1)根据需要,选择适当的锂电池型号和容量。

(2)设计电池充电管理电路,实现对锂电池的充电和保护。

(3)结合其他电路的设计,完成对锂电池的供电和相应的充电管理。

3.4 按键设计

按键是控制电动车运行状态的关键部分。

设计流程:

(1)根据实际需要,确定需要添加的按键类型和数量。

(2)设计按键接口电路,实现按键信号的捕获和处理。

(3)结合控制器设计,实现对电动车的前后行驶、左右转向、加速等操作控制。

四、代码实现

4.1 按键检测程序设计

本项目用到了9个按键,按键按下是低电平。 实现了前后行驶切换控制、左右转向灯控制、加速控制、喇叭控制、前后刹车灯控制、一个开机键。

以下是按键的完整逻辑代码:

#include < reg52.h >
 ​
 sbit key1 = P1^0; // 按键1
 sbit key2 = P1^1; // 按键2
 sbit key3 = P1^2; // 按键3
 sbit key4 = P1^3; // 按键4
 sbit key5 = P1^4; // 按键5
 sbit key6 = P1^5; // 按键6
 sbit key7 = P1^6; // 按键7
 sbit key8 = P1^7; // 按键8
 sbit key9 = P2^0; // 按键9
 ​
 sbit forward = P3^0; // 前进
 sbit backward = P3^1; // 后退
 sbit left = P3^2; // 左转灯
 sbit right = P3^3; // 右转灯
 sbit accelerate = P3^4; // 加速器
 sbit horn = P3^5; // 喇叭
 sbit stoplight1 = P3^6; // 前刹车灯
 sbit stoplight2 = P3^7; // 后刹车灯void main() {
     while(1) {
         if(key1 == 0) { // 按键1按下
             forward = 1;
             backward = 0;
         }
         if(key2 == 0) { // 按键2按下
             forward = 0;
             backward = 1;
         }
         if(key3 == 0) { // 按键3按下
             left = 1;
         }
         else {
             left = 0;
         }
         if(key4 == 0) { // 按键4按下
             right = 1;
         }
         else {
             right = 0;
         }
         if(key5 == 0) { // 按键5按下
             accelerate = 1;
         }
         else {
             accelerate = 0;
         }
         if(key6 == 0) { // 按键6按下
             horn = 1;
         }
         else {
             horn = 0;
         }
         if(key7 == 0) { // 按键7按下
             stoplight1 = 1;
         }
         else {
             stoplight1 = 0;
         }
         if(key8 == 0) { // 按键8按下
             stoplight2 = 1;
         }
         else {
             stoplight2 = 0;
         }
         if(key9 == 0) { // 按键9按下
             forward = 0;
             backward = 0;
             left = 0;
             right = 0;
             accelerate = 0;
             horn = 0;
             stoplight1 = 0;
             stoplight2 = 0;
         }
     }
 }

代码通过不断检测按键的电平状态,实现了对电动车的前后行驶、左右转向灯控制、加速、喇叭以及前后刹车灯控制等操作。当按键被按下时,对应的功能就会被执行,否则就会停止执行。其中,第9个按键为开机键,当按下时将所有功能都清零。

4.2 L298芯片控制电机代码

下面是 L298N 驱动模块控制电机正反转的代码:

#include < reg52.h >
 ​
 sbit ena = P2^0; // 使能A端口
 sbit in1 = P2^1; // A+控制信号
 sbit in2 = P2^2; // A-控制信号
 sbit enb = P2^3; // 使能B端口
 sbit in3 = P2^4; // B+控制信号
 sbit in4 = P2^5; // B-控制信号void delay(int time) { // 延时函数
     int i, j;
     for(i = 0; i < time; i++) {
         for(j = 0; j < 120; j++);
     }
 }
 ​
 void main() {
     ena = 1; // 使能A端口
     enb = 1; // 使能B端口
     while(1) {
         in1 = 1; // A+ 电流正向
         in2 = 0; // A- 电流反向
         in3 = 1; // B+ 电流正向
         in4 = 0; // B- 电流反向
         delay(1000); // 延时一段时间
         in1 = 0; // A+ 电流反向
         in2 = 1; // A- 电流正向
         in3 = 0; // B+ 电流反向
         in4 = 1; // B- 电流正向
         delay(1000); // 延时一段时间
     }
 }

L298N 驱动模块可以控制电机的正反转,其中 in1、in2 控制 A 相电流的方向,in3、in4 控制 B 相电流的方向,ena、enb 是使能端口,需要设置为高电平才能控制电机。在例子中,先将 ena 和 enb 设置为高电平,然后让电机正向运转一段时间,再让电机反向运转一段时间,不断循环实现正反转。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632796
  • 电动车
    +关注

    关注

    73

    文章

    2988

    浏览量

    113901
  • 控制器
    +关注

    关注

    112

    文章

    16191

    浏览量

    177358
  • 51单片机
    +关注

    关注

    273

    文章

    5697

    浏览量

    123145
收藏 人收藏

    评论

    相关推荐

    电动车控制器线路图

    电动车控制器线路图电动车控制器接线电路图[此贴子已经被作者于2008-11-8 13:27:01编辑过]
    发表于 11-08 13:26

    电动车控制器原理

    电动车控制器原理
    发表于 08-20 11:36

    电动车控制器介绍.

    电动车控制器介绍.
    发表于 08-20 11:40

    智能电动车51单片机控制

    智能电动车51单片机控制
    发表于 04-05 14:54

    电动车的智能控制

    现有玩具电动车的基础上,加装光电检测,实现对电动小汽车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据
    发表于 11-01 20:05

    51单片机电动车防盗系统

    有没有大神知道基于51单片机电动车防盗系统的原理图与所需元件,谢谢
    发表于 04-28 15:51

    哪位大神有基于单片机控制电动车控制器源程序及电路设计 最好能有仿真

    基于单片机控制电动车控制器源程序及电路设计 最好有porteus仿真
    发表于 03-07 09:23

    基于单片机AT89C51最小系统的电动车设计

    为使电动车在跷跷板上按要求准确运行采用了单片机AT89C51最小系统作为电动车的检测和控制系统。通过红外发射接收一体探头检测路面黑色寻迹线,
    发表于 08-26 07:30

    电动车电机的控制系统

    电动车电机的控制系统一般由电动机、功率变换、传感电动车
    发表于 11-17 06:49

    电动车控制器的接法

     维修电动车如果要更换电动车控制器,往往看到电动车控制器五颜六色的外露接线,搞得不知所措,那么到底电动车
    发表于 11-15 15:38 4.2w次阅读
    <b class='flag-5'>电动车</b><b class='flag-5'>控制器</b>的接法

    电动车控制器维修

    本视频主要介绍了当电动车控制器遇到以下四种情况时的维修方法:当电动车有刷控制器没有输出时、当电动车无刷
    的头像 发表于 11-24 10:26 7.4w次阅读

    电动车控制器接线图_电动车控制器接线方法

    电动车控制器是用来控制电动车电机的启动、运行、进退、速度、停止以及电动车的其它电子器件的核心控制器
    发表于 07-24 10:06 7.9w次阅读

    电动车控制器坏了怎么办_电动车控制器失效原因

    本文首先阐述了电动车控制器坏了解决方法,其次介绍了电动车控制器的常见故障,最后介绍了电动车控制器
    发表于 07-24 10:31 5.8w次阅读

    如何挑选电动车控制器

    电动车控制器主要是用来控制电动车电机的启动,运行,进退等,它就像电动车的大脑,是非常重要的部件。下面就教大家如何挑选
    发表于 06-15 10:03 1.8w次阅读

    基于51单片机电动车报警初级版本(一)

    基于51单片机电动车报警初级版本(一)
    发表于 11-20 14:51 0次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>电动车</b>报警<b class='flag-5'>器</b>初级版本(一)