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

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主控的步进电机控制电路仿真

http://www.xdnf.cn/news/3266.html

相关文章:

  • Spring MVC @PathVariable 注解怎么用?
  • 网络编程——TCP和UDP详细讲解
  • 【Java学习笔记】递归
  • CSS响应式与自适应设计
  • 【Linux网络】I/O多路转接技术 - epoll
  • 1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版
  • 【中间件】bthread_数据结构_学习笔记
  • 线段树原理和代码详解
  • JavaScript基础-递增和递减运算符
  • 二、HTML
  • PostgreSQL数据表操作SQL
  • C标准库(libc)接口及示例解析
  • 从股指到期指,哪些因素影响基差?
  • 51c嵌入式~单片机~合集9
  • [操作系统] 线程互斥
  • 【Linux知识】Shell脚本中各类参数传递以及获取
  • Elastic Search 的安装、使用方式
  • 【分享】deepseek 超强ai助手 1.1.8最新版 不卡顿
  • Python字典(dict)详解:从创建到操作全掌握
  • Anaconda中配置Pyspark的Spark开发环境
  • 使用listPersonalCertificates 命令列示WebSphere Application Server特定密钥库中的个人证书
  • 【Android】四大组件之ContentProvider
  • 比较图检索增强生成(Graph RAG)和向量检索增强生成(Vector RAG)
  • L3-041 影响力
  • 如何在Cursor中使用MCP服务
  • Leetcode刷题记录24——最大子数组和
  • Java SE(6)——类和对象
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 手搓传染病模型(SEIAR)
  • python3GUI--视频监控管理平台 By:PyQt5(详细讲解)