我的大体硬件框架已经想好了:就是用两个继电器分别接电机正转和反转,然后用单片机的I/O口分别控制两个继电器的接通和断开 ,现在要编程实现,但实在没有思路,大家谁有类似的的程序或提供下大概的思路都可以,还有几点小要求:
1.在原有的单片机设计程序控制的基础上再添加一个键盘显示控制模块,既能够单片机自动控制,又能够通过键盘手动控制。手动控制的思路主要是由键盘在显示屏上设置一个数,即所需的正反转的次数,再按下启动键后单片机按照程序控制电机正反转达到手动设定的次数。我的想法是:如果显示上设定为1的话所要执行的内容是正转一次再反转一次。
2由于不光要控制电机转动方向,还要控制电机转动的角度我还想再添加一个霍尔传感器反馈的模块。具体原理就是给电机的转轴上套一个圆盘,圆盘上提前定好一个角度分别放置两个霍尔传感器,并在其中的一个传感器上方放置一个固定的磁钢。在执行电机正反转的过程中每当一个传感器转过一个磁钢时引起磁场的变化,传感器便向单片机反馈一个脉冲信号,单片机收到信号再执行下一步。
其实就是假设单片机一开始发送个程序让电机带动圆盘执行正转,当转到其中一个传感器转过固定磁钢时,传感器将脉冲信号反馈给单片机,单片机收到信号后发出停止指令,然后在执行反转指令,反转到另一个传感器转过磁钢后再停止,再执行正转指令,通过单片机设置的转动次数这样反复。
我知道我的要求很多,但现在编程真的没有思路,大家如果没有合适的程序,哪怕把主体流程框架或部分设计的思路给我说下都行,答案好的话我肯定会追加!
单片机控制交流电机正反转的C语言程序
思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次...
单片机控制电机正反转动的c语言程序
直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I\/0口要与电机驱动芯片的输入脚相连)这样的话,电机驱动芯片...
用C语言实现步进电机正反转控制程序和电路图,求帮助。
我有程序,电路图可以在程序中看出,include<reg52.h> include<intrins.h> define uchar unsigned char define uint unsigned int sbit key1=P3^7;sbit key2=P3^6;sbit key3=P3^5;uchar kz,i=200;uchar zhengzhuan[]={0xf3,0xf9,0xfc,0xf6};uchar fanzhuan[]={0xf3,0xf6,0xfc,0xf9}...
用单片机控制步进电机正反转,简单易懂的C语言程序,最好带注释,步进电机...
第1行设置由输入端X1作为启动,Y1输出3万个脉冲,脉冲频率600赫兹(每秒600个脉冲的频率),由于只有Y1输出脉冲,没有设置方向输出端,所以电机正转。第3、4行由X2同时启动两行作为反转,Y1输出3万个脉冲,频率为800赫兹,Y1输出脉冲的同时方向输出端Y2同时输出方向信号,因此,电机反转。反转的3万个...
L298驱动两小电机正反转,用C语言怎么做啊?
简单的说,L298有四个输出,O1,O2,O3,O4.一般可以接两个电机,可以分别控制正反转和PWM调速。它有四个输入,IN1~4,可以分别控制相当的四个输出电平的高低。ENA,ENB当它们为高电平的时候,正常输出,否则不输出电压。这两个引脚一般用PWM调速用。如果不需要,可以接入高电平。如图为一简单应用。附一...
C语言 步进电机的正反转 启停 控制程序 求解释
读键盘。没有scan_key()的源代码,不知道里面有些什么操作。while(1){...}循环是电机运转,flag_status是状态,1转动,0停止。没有看到与正转反转有关的代码。也许在motor_cw_ccw();函数里面,这个就是电机动一下的函数。原程序不完整,没有相应函数、变量的定义及意义说明。难以确切理解。
求单片机AT89C52控制步进电机的程序 谢谢! 要C语言的
} main(){ while(1){ unsigned char i;unsigned int j;for(j=0;j<512;j++){ for(i=0;i<4;i++) \/\/4相 { P1=B_Rotation[i]; \/\/输出对应的相 可以自行换成反转表格 Delay(500); \/\/改变这个参数可以调整电机转速 } } for(j=0;j<512;j++){ for(i=0;i<4;i++) ...
51单片机中如何用c语言控制直流电机正反转
void int_time3() interrupt 3 using 3 { TH1=0XFA;TL1=0X56;sec++;if(sec==2){ sec=0;min++;} } \/***\/ \/\/光感与按键控制 void cankey(){ if(gj){ if(!PLAY_Q_Q)
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 ...
求51单片机控制步进电机,实现其间歇运动的程序,最好要有C语言的
unsigned char code table1[]={0x00,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};\/\/0x00表示停止转动 \/\/ \/\/bit flag;\/\/正反转标志 void delayus(unsigned int t) \/\/延时函数 { while(--t);} void delayms(unsigned int t) \/\/毫秒级延时 { unsigned int i,j;for(i=t;i>0...