当前位置: 首页 > news >正文

0基础 | Proteus电路仿真 | 电机使用

目录

电机类型

51单片机对直流电机的控制

基于89C51主控的直流电机控制电路仿真

代码《基于Keil C51》

51单片机对步进电机的控制

控制代码《基于Keil C51》

 基于89C51主控的步进电机控制电路仿真

电机类型

直流电机

步进电机

51单片机对直流电机的控制

直流电机:

定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。

直流电机的控制:

1、方向控制:直流电机只有正负极,只需交换正负极就可以调节正反转。

2、转速控制:在负载变化不大的时候,加在直流电动机两端的电压大小与其速度近似成正比。

【Proteus电路仿真及应用(51单片机系列)】https://www.bilibili.com/video/BV1H7411n7AY?p=20&vd_source=7a24b4197f48af6ccce3973153ba4b39

PWM技术

电动机的电枢绕组两端的电压平均值U

U =( t1/T) XUs=D*Us

其中DPWM信号的占空比:

D= t1/T

L293D功能表

1A/3A

2A/4A

EN

电机状态

X

X

0

停止

1

0

1

顺时针转动

0

1

1

逆时针转动

0

0

1

停止

1

1

1

刹停

L293D引脚图

L293D真值表

     

基于89C51主控的直流电机控制电路仿真

代码《基于Keil C51》

/***************   writer:shopping.w   ******************/
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit K1   = P3^0;
sbit K2   = P3^1;
sbit K3   = P3^2;
sbit LED1 = P0^0;
sbit LED2 = P0^1;
sbit LED3 = P0^2;
sbit MA   = P1^0;
sbit MB   = P1^1;void main(void)
{LED1 = 1;LED2 = 1;LED3 = 0;while(1){if(K1 == 0){while(K1 == 0);LED1 = 0;LED2 = 1;LED3 = 1;MA   = 0;MB   = 1;}if(K2 == 0){while(K1 == 0);LED1 = 1;LED2 = 0;LED3 = 1;MA   = 1;MB   = 0;}if(K3 == 0){while(K1 == 0);LED1 = 1;LED2 = 1;LED3 = 0;MA   = 0;MB   = 0;}}
}

51单片机对步进电机的控制

L298是步进电机控制芯片(也可以驱动直流电机)

L298引脚定义:

1)引脚1(Current SensingA)和引脚15 (CurrentSensingB):电流监测端,分别为两个H桥的电流反馈脚不用时可以直接接地

2)引脚2(OUTPUT1)和引脚3(OUTPUT2)电机驱动输出端

3)引脚4(SUPPLY VOLTAGE VS)功率电源电压,此引脚须并接100nF电容器

4)引脚5(INPUT1)和引脚7(INPUT2)电机控制信号输入端,TTL电平兼容

5)引脚6(Enable A)和引脚11(Enable B)TTL电平兼容输入使能端,低电平禁止输出

6)引脚8(GND)接地端

7)引脚9(VSS)逻辑电源电压端。此引脚须并接100nF电容器

8)引脚10(INPUT3)和引脚12(INPUT4)电机控制信号输入端,TTL电平兼容

9)引脚13(OUTPUT3)和引脚14(0UTPUT4):电机驱动输出端

L298逻辑功能表

IN1

IN2

ENA

电机工作状态

X

X

0

停止

1

0

1

顺时针转动

0

1

1

逆时针转动

0

0

1

停止

1

1

1

刹停

通过Mos管的不同打开方式,让磁铁分别停在不同的位置

如果能任意调节两个线圈的磁场强度,就能合成不同的磁场方向→让磁铁停留在任意位置

如何改变磁场强度B

线圈产生磁场强度的公式

精准控制线圈电流I,如何控制电流呢?

线圈中有寄生电阻、电感,

上电:电流慢慢抬升,电压直接为U

下电:电流慢慢下降,电压直接为0

导通时电路等效为上述

直流电机和步进电机的区别

控制代码《基于Keil C51》

#include <reg52.h>

unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正转表格

unsigned char code B_Rotation[4]={0x10,0x08,0x040,0x02};//反转表格

void Delay(unsigned int i)//延时

{while(--i);}

main(){

 unsigned char i;

 while(1)

 {for(i=0;i<4;i++)      //4相

     {

     P1=F_Rotation[i];  //输出对应的相

     Delay(500);        //调整电机转速}

  }

}

        基于89C51主控的步进电机控制电路仿真

相关文章:

  • 海量数据存储与分析:HBase vs ClickHouse vs Doris 三大数据库优劣对比指南
  • 《社交类应用开发:React Native与Flutter的抉择》
  • 【C语言】文本操作函数fseek、ftell、rewind
  • 装饰器设计模式(Decorator Pattern)详解
  • (A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • Ubuntu18 登录界面死循环 Ubuntu进不了桌面
  • UN R79 关于车辆转向装置形式认证的统一规定(正文部分1)
  • 编程语言全景解析与编程技巧深度探索
  • 【算法扩展】斐波那契查找算法 - JAVA
  • Python结合QT进行开发
  • ES6函数、对象和面向对象扩展
  • QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码
  • QML Image 组件详解
  • Stm32 烧录 Micropython
  • 深度学习框架搭建(Vscode/Anaconda/CUDA/Pytroch)
  • 小牛电动:荣登央视舞台,引领智能出行新潮流
  • 26考研——输入/输出系统(7)
  • 基于Redis实现-用户签到
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 前端HTML基础知识
  • 多地景区发公告称售票达接待峰值,有景区暂停网络和线下售票
  • 超越梅罗,这样一个亚马尔折射巴萨的容错率
  • 微软上财季净利增长18%:云业务增速环比提高,业绩指引高于预期
  • 五一去哪儿| 追着花期去旅行,“赏花经济”绽放文旅新活力
  • 中国武术协会原主席张耀庭逝世,曾促成电影《少林寺》拍摄
  • 辽宁辽阳市白塔区一饭店发生火灾,当地已启动应急响应机制