当前位置:首页 » 编程语言 » 单片机c语言直流电机

单片机c语言直流电机

发布时间: 2023-05-25 23:50:39

1. 51单片机中如何用c语言控制直流电机正反转

#include <毁迹reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P1^0;
sbit ENA=P1^1; //左轮 1
sbit IN2=P1^2;//左轮2
sbit IN3=P1^3;//右轮 1
sbit ENB=P1^4;
sbit IN4=P1^5;//右轮 2
sbit left=P0^0;
sbit right=P0^1;
/纤州并/sbit middle=P0^2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);

}
void init()
{
ENA=0; // 1
ENB=0; //
IN1=0; // 0
IN2=0; // 2
IN3=0;
IN4=0;

}
void pwm()
{
ENA=1;
ENB=1;
}
void dianji()
{

if(left==0&&right==0) //前进
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
pwm();
}
else if(left==0&&right==1) //右转
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
pwm();
} else if(left=1&&right==0)// 左转迹旁
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
pwm();
}

}
void main()
{
init();
while(1)
{
dianji();
}

}

2. 51单片机怎么驱动直流电机c语言

51单片机驱动直流电机程序(用的是l298n芯片):

#include<reg51.h>

#include<math.h>

#defineuintunsignedint

#defineucharunsignedchar

#defineN100

sbits1=P1^0;//电机驱动口

sbits2=P1^1;//电机驱动口

sbits3=P1^2;//电机驱动口

sbits4=P1^3;//电腊闹机驱动口

sbiten1=P1^4;//电机使能端

sbiten2=P1^5;//电机使能端

sbitLSEN=P2^0;//光电对管最左

sbitLSEN1=P2^1;//光电对管左1

sbitLSEN2=P2^2;//光电对管左2

sbitRSEN1=P2^3;//光电老码对管右1

sbitRSEN2=P2^4;//光电对管右2

sbitRSEN=P2^5;//光电对管最右

uintpwm1=0,pwm2=0,t=0;

voiddelay(uintxms)

{

uinta;

while(--xms)

{

for(a=123;a>0;a--);

}

}

voidmotor(ucharspeed1,ucharspeed2)

{

if(speed1>=-100&&speed1<=100)

{

pwm1=abs(speed1);

if(speed1>0)

{

s1=1;

s2=0;

}

if(speed1==0)

{

s1=1;

s2=1;

}

if(speed1<0)

{

s1=0;

s2=1;

}

}

if(speed2>=-100&&speed2<=100)

{

pwm2=abs(speed2);

if(speed2>0)

{

s3=1;

s4=0;

}

if(speed2==0)

{

s3=1;

s4=1;

}

if(speed2<0)

{

s3=0;

s4=1;

}

}

}

voidgo_forward(uintspeed)

{

s1=1;

s2=0;

s3=1;

s4=0;

pwm1=speed;

pwm2=speed;

}

voidgo_back(uintspeed)

{

s1=0;

s2=1;

s3=0;

s4=1;

pwm1=speed;

pwm2=speed;

}

voidstop()

{

s1=1;

s2=1;

s3=1;

s4=1;

pwm1=0;

pwm2=0;

}

voidturn_right(uintP1,uintP2)//右转函数

{

s1=1;

s2=0;

s3=0;

s4=1;

pwm1=P1;

pwm2=P2;

}

voidturn_left(uintP1,uintP2)//左转函数

{

s1=0;

s2=1;

s3=1;

s4=0;

pwm1=P1;

pwm2=P2;

}

voidtracking()

{

if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==0))//没有检测到

{

go_forward(100);

}

if((LSEN1==1)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==0))//左一检测到

{

turn_left(40,80);//左转右轮》左轮

delay(N);

}

if((LSEN1==0)&&(LSEN2==1)&&(RSEN1==0)&&(RSEN2==0))//左二检测到

{

turn_left(40,60);//左转右轮》左轮

delay(N);

}

if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==1)&&(RSEN2==0))//右一检测到

{

turn_right(60,4);//右转左轮》右轮

delay(N);

}

if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==1))//右二检测到

{

turn_right(80,40);//右转左轮》右轮

delay(N);

}

if((LSEN1==1)&&(LSEN2==1))

{

turn_left(0,100);

delay(1000);

}

if((RSEN1==1)&&(RSEN2==1))

{

turn_right(100,0);

delay(1000);

}

}

voidavoidance()

{

}

voidinit()

{

TMOD=0x02;//timer0同时配置为模式2,8自动重装计数模式

TH0=156;//定时器初轮含罩值设置100us中断

TL0=156;

ET0=1;

EA=1;

TR0=1;//开启总中断

}

voidmain()

{

init();

while(1)

{

tracking();

}

}

voidtimer0()interrupt1//电机驱动提供PWM信号

{

if(t<pwm1)

en1=1;

else

en1=0;

if(t<pwm2)

en2=1;

else

en2=0;

t++;

if(t>100)

t=0;

}

(2)单片机c语言直流电机扩展阅读

L298N是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。

3. 单片机控制电机正反转动的c语言程序

首先要看你的电机是直流电机还是步进电机。直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I/0口要与电机驱动芯片的输入脚相连)这样的话,电机驱动芯片就会输出一个电压差,可以使直流电机向一个方向转,如果使P1.0 = 1,P1.1 = 0,则电机驱动芯片会输出一个和刚才相反的电压,使电机向相反的方向转动。H桥电路和电机驱动芯片的原理差不多,网上多的是。我这说的只是简单的原理,实际中,L298N的输入端和单片机相连的时候要加光耦隔离,否则单片机会工作不正常。步进电机就稍微复杂点,也得需要电机驱动芯片才行,只不过控制信号是按一定的规律给的,规律变了,电机转动的方向也就变了。楼上给出的貌似是步进电机的驱动程序。

4. 52单片机实现控制直流电机调速(C语言)

pwm波,控配洞明制占空比硬件需要电机驱动芯片比如298PWM输出脚P1.1脚:#define
out
P1^1占培告空比颤巧全局变量
unsigned
char
ZKB;
//ZKB=1~100即1%~100%void
moto_control(){unsigned
char
i;for(i=0;i<100;i++){if(i==0)out=1;if(i==ZKB)out=0;}}

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:945
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:742
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372