我想用单片机控制两个12伏的普通直流电机,用遥控器控制正反转,跪求C程序!!

作者&投稿:洪舍 (若有异议请与网页底部的电邮联系)
单片机对直流电机的控制程序?简单的正反转~

用L293D芯片,
EN12\IN1\IN2直接连接单片机(任意)
EN12 连接单片机,IO口设为高
IN1\ IN2连接单片机 IO口设为高\低时,直流电机正转,为低\高时反转

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

用两个继电器也可以,两个继电器必须同时工作否则会短路 优点是简单负载电流大

你好,这是程序,用的L298N模块,简单的延时实现PWM以及12M的89C52实现的,但是是用按键控制的,遥控器我不会,你会的话可以把按键信号改成遥控信号的,还有,按键我没做“去抖”处理(按一下加速(减速)会直接加到最大(减到最小)),这是因为我以后是用传感器控制的,按键也只是参考而已,需要的话你自己加上。要电路图的话把你邮箱给我,我这里不知怎的传不上去图片。只能帮你这么多了,遥控器我确实是不会,没办法。希望能帮到你
#include<reg51.h>
/*定义按键和L298N引脚*/
sbit BZ1=P0^0; sbit IN1=P2^0;
sbit BZ2=P0^1; sbit IN2=P2^1;
sbit BF1=P0^2; sbit IN3=P2^2;
sbit BF2=P0^3; sbit IN4=P2^3;
sbit BJIA1=P0^4;
sbit BJIA2=P0^5;
sbit BJIAN1=P0^6;
sbit BJIAN2=P0^7;
/*函数声明*/
void delay(t);
void Z1();
void Z2();
void F1();
void F2();
void JIA1();
void JIA2();
void JIAN1();
void JIAN2();
void change();
char W=0;//W用来在调速状态下选择电机;
int t1=80,t2=80;

/*延时函数*/
void delay(int t)
{while(t--);}
/*正转函数1*/
void Z1()
{IN1=1;IN2=0;W=1;}
/*正转函数2*/
void Z2()
{IN3=1;IN4=0;W=1;}
/*反转函数1*/
void F1()
{IN1=0;IN2=1;W=2;}
/*反转函数2*/
void F2()
{IN3=0;IN4=1;W=2;}
/*加速函数1*/
void JIA1()
{t1+=10;}
/*加速函数2*/
void JIA2()
{t2+=10;}
/*减速函数1*/
void JIAN1()
{t1-=10;}
/*减速函数2*/
void JIAN2()
{t2-=10;}
/*停止*/
void TING()
{IN1=IN2=IN3=IN4=0;}
/*制动函数*/
void ZHI()
{IN1=IN2=IN3=IN4=1;}
/*按键信号*/
void change()
{
if(BZ1==0){Z1();delay(t1);TING();delay(255-t1);}
if(BZ2==0){Z2();delay(t2);TING();delay(255-t2);}
if(BF1==0){F1();delay(t1);TING();delay(255-t1);}
if(BF2==0){F2();delay(t2);TING();delay(255-t2);}
if(BJIA1==0&&t1<235){delay(5);JIA1();}
if(BJIA2==0&&t2<235){delay(5);JIA2();}
if(BJIAN1==0&&t1>80){delay(5);JIAN1();}
if(BJIAN2==0&&t2>80){delay(5);JIAN2();}

if(BZ1==0&&(BZ2!=0&&BF1!=0&&BF2!=0)){delay(255);}
if(BZ2==0&&(BZ1!=0&&BF1!=0&&BF2!=0)){delay(255);}
if(BF1==0&&(BZ1!=0&&BZ2!=0&&BF2!=0)){delay(255);}
if(BF2==0&&(BZ1!=0&&BZ2!=0&&BF1!=0)){delay(255);}

}
/*主程序*/
void main()
{
P0=0xff;
while(1)
{change();}
}

只要遥控器的接收然后正反转就可以了啊

找遥控器厂家,他会免费提供的,主要通讯搞好了,电机正反转就是一个开关量控制,很简单


stc89c52单片机怎么实现用两个串口控制两个模块?
其实,选择STC12C5A60S2,就完全解决了这个问题吗,它就有两个独立串口,价格上不比stc89c52高多少,还有STC现在推出了最新的STC15系列的单片机,都是有两个独立串口的,价格更低了,还完全可以省掉外部复位电路和时钟电路的晶振,非常方便,为什么不选择这款昵?何苦还用stc89c52,还不能解决两个串口的...

51单片机一个外部按键控制两个外部引脚交替的输出并且不要保持状态...
51单片机一个外部按键控制两个外部引脚交替输出并且不要保持状态。但看这个要求,用51单片机是很容易实现的。如果想实现你的功能,建议你看看51单片机方面的书籍

我的单片机有一个RS232的串口,但是控制两个外设,可以怎么做啊???_百度...
这个需要你从硬件软件上实现,硬件可以将RS232分为2个,然后软件编程的时候发送一定格式的帧,需要标示下源地址与目的地址,这样应该就可以了

如何一个单片机控制两另个单片机?
一种是利用总线方式进行主从机通讯实现,还有就是单方控制,也就是说主机改变引脚状态后被控制单片机主动查询此引脚并做出相应的动作即可

想用单片机控制两个按键不同顺序实现不同功能
按下按键价格标志,比如按下A键,加个flag_button_a = 1,按B的时候检测下A是否按下,按下的话响应动作,没有的话把B加个标记。

L298芯片通过51单片机控制两个直流电机,要求两个电机都可以 独立(互不...
2,独立问题。这个可以用一个定时器来做,其实,就是用这个定时器来产生两路独立的PWM,而这两路PWM信号分别给两个电机,这样两个电机就相互独立。下面是我写的一个小程序,在protues中仿真过,相互独立。下面是定时器的程序:\/\/两个电机的速度用参数G_pwm_num0,G_pwm_num1来控制,out1~out4...

51单片机可以控制两个电机驱动吗
如果是普通的交流电机的话,那就是控制个继电器就行了,你再用继电器外控制对应接触器的线圈就行了。从电气上来说不是很难的。具体想做电路板和C语言写单片机程序程序的话,你要先把C学会,当然你的这个控制比较简单,基本的C语言完全能搞定,如果你在学校学过C语言的话,那基本上再温习2天就没问题...

我想用单片机控制两个12伏的普通直流电机,用遥控器控制正反转,跪求C...
你好,这是程序,用的L298N模块,简单的延时实现PWM以及12M的89C52实现的,但是是用按键控制的,遥控器我不会,你会的话可以把按键信号改成遥控信号的,还有,按键我没做“去抖”处理(按一下加速(减速)会直接加到最大(减到最小)),这是因为我以后是用传感器控制的,按键也只是参考而已,需要的...

单片机如何控制两个步进电机同步
根据我的实战经验,不要用同一路输出,这样在实际运用过程中万一一台失步你将如何是好?为了确保良好同步,其一两台步进电机型号相同、驱动器型号相同、细分数相同,其二独立的原点信号,其三每做完一个循环时间允许的情况下各自找一次“原点”,其三正常运行过程中两路方向信号和脉冲性号在同一语句里发出。...

我想用51单片机单独控制两台步进电机,实现一台电机停,一台电机转和两...
如果有驱动器的话,步进电机的控制一台只需要两个信号即CW(正转)和CCW(反转)信号就OK了,或者PAUSE(脉冲)+DIR(方向),因此控制两台步进电机只需要4路信号即可,所以任意实验板都可以达到,当然买最便宜的了。

吐鲁番市13777488554: 请问我要用单片机控制两个电源(12V)的通断,请问应设计什么样的开关???用三极管还是光敏器件光控 -
校音复方: 1、用一个PNP是不可能的,需NPN+PNP组合或PNP+NPN组合,但涉及到受控电源和单片机电源需共地限制.如您问题所述. 2、用光电耦合器,TP521-2或PC817-2等.可以隔离,再通过两组开关管控制直流电源输出.响应速度快、体积小、寿命长. 3、当输出电流较大,动作频率不高时,或更高的受控电压时,或交流电源开关时,可考虑5V线包继电器.也可以隔离.响应速度慢、体积大、寿命短.

吐鲁番市13777488554: 怎样实现用单片机分别控制两个直流电机 -
校音复方: 硬件上:单片机驱动电机需要驱动电路.如果你是学习用的话可以用达林顿驱动器,这是个集成芯片,操作比较方便,一般1个I/O口控制一个电机,当然还有专用驱动器,不过价格贵.你也可以自己用三极管搭一个.软件上:用I/O口输出PWM信号,说白了就是有占空比的方波信号,不知道你用什么单片机,avr单片机内部自带PWM发生器,stc51系列的某一款也是有PWM发生器的,如果是普通的51的话,用定时器也可以产生PWM信号.这个比较简单,你把驱动芯片买对,没什么难度.

吐鲁番市13777488554: 请问如何用单片机控制直流电源的输出电压(0 - 12V),
校音复方: 51的就可以了,控制直流电源输出0-12 用L298N驱动芯片就行了,主要得用PWM实现电压控制的.L299N得接个12V的直流电源.我这边有点资料.

吐鲁番市13777488554: 急!求各位高手,关于单片机C语言的遥控电路和程序.控制两个直流电机. -
校音复方: 你的问题我可以帮你,但我需要时间,我只提醒一下:如果你还想学单片机,这个问题你完全可以自己解决的,再说了,也不算什么难题,一个电机作为动力,一个电机作为方向,方向的用两个io口控制正反转,当然的加驱动,动力的那个电机...

吐鲁番市13777488554: 单片机驱动直流电动机 -
校音复方: 你用的是12V电源,也就应该使用这个电路了.问题是单片机输出高电平,提供的电流有限,虽经过8050放大,也难以达到使电机转动的需求.可以再加一级放大,用8550即可,见图.原来的1K电阻可以适当的减小,680~470欧姆左右即可.此时,单片机输出低电平时,电机转动.-------------------------- 加那两个电阻,是进行电流限制,以免烧坏三极管和单片机引脚.3.3K电阻,是控制8550的基极电流,在1mA左右就基本够用;减小到1K也可,这时,电流将近5mA了,还可以的.1K电阻,是控制8050的基极电流的,减小到470欧姆,基极电流就能达到8~10mA,电流再增大,8050有危险.

吐鲁番市13777488554: 用51单片机控制两个直流电机,驱动芯片是L298n.两个电机不能同时启动. -
校音复方: 同时起动,你的单片机给的信号应该是对的,但两电机同时起动,起动电流大,一定把电压拉低了,低电压,可使你的单片机工作不正常,也可使单片机复位.再加一稳压电源,地连起来,单片机用一电源,电机用一电源试一下.

吐鲁番市13777488554: 怎么样用52单片机控制一个12v直流电机,还要它可以正转和反转? -
校音复方: 用单片机的IO口控制一个小继电器,小继电器为两路常开两路常毕处点的,一个电源正接一个电源反接,这样就可以控制了.

吐鲁番市13777488554: 单片机驱动两个直线电机接口怎么设计 -
校音复方: 直接采用电机驱动芯片就OK了啊!其实最重要的事选择电机及驱动模块!

吐鲁番市13777488554: 求教如何用单片机控制直流电源输出的通断 -
校音复方: 如果被控制的电源电压高电流大,可以用继电器,此时选用5V电源电压的微型继电器通过三极管S8550驱动,只要单片机I/O口输出低电平即可使继电器吸合,被控电源有输出,而当I/O口输出高电平则输出断开;如果被控电源功率较小,可以考虑直接用三极管或MOS功率管控制,可以百度一下方法多多.

吐鲁番市13777488554: 单片机如何控制大功率直流电机? -
校音复方: 大功率电机 建议用变频器这类专用设备,需要程序控制的话,可以参考变频器的扩展接口,通过控制指令相关协议,从单片机发送相应指令.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网