五线四相步进电机C语言程序,stm32四相五线步进电机驱动程序
//头文件
#include "stm32f10x.h"
#include "usart.h"
#include "led.h"
#include "RTC_Time.h"
#include
#include "delay.h"
//=============================================================================
//函数名称:Delay
//功能概要:延时函数
//参数说明:无
//函数返回:无
//=============================================================================
//=============================================================================
//函数名称:main
//功能概要:主函数
//参数说明:无
//函数返回:int
//=============================================================================
#define uchar unsigned char
#define uint unsigned int
void motor3(void);
void motor4(void);
u16 moto0_time=11000; //电机1的运行时间
u16 moto1_time=2000; //电机2的运行时间
void Delay1 (uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
void delay1_ms(u16 time)
{
u16 i=0;
while(time--)
{
i=12000;
while(i--) ;
}
}
int main(void)
{
u8 k=0;
//初始化LED
USART1_Config();
LED_GPIO_Config();
while (1)
{
LED0_OFF;
if(KEY0==0) //正转按钮
{
Delay1(0x00FFFF);
//motor1( );
motor3( );
MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;
MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_OFF;
k=1;
}
if(KEY1==0) //反转按钮
{
Delay1(0x00FFFF);
//motor2( );
motor4();
MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;
MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_OFF;
k=0;
}
}
}
//正转函数
void motor3(void)
{
u8 j=0;
u16 i;
for(i=0;i
{
switch(j)
{
case 0:{
{ MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;}
if(i
{ MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 1:{
{MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;}
if(i
{MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 2:{
{ MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_ON;}
if(i
{ MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 3:{
{MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_OFF;}
if(i
{MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 4:{
{MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_ON; MOTOR_D1_OFF;}
if(i
{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_ON; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 5:{
{ MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{ MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 6:{
{ MOTOR_A1_ON; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{ MOTOR_A_ON; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 7:{
{ MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{ MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
}
j++;
if(j>=8) j=0;
Delay1(0x01222);
//delay1_ms(1);
}
}
//反转函数
void motor4(void)
{
u8 j;
u16 i;
j=0;
for(i=0;i
{
switch(j)
{
case 0:{
{ MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{ MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 1:{
{ MOTOR_A1_ON; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{MOTOR_A_ON; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 2:{
{ MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;}
if(i
{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 3:{
{ MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_ON; MOTOR_D1_OFF;}
if(i
{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_ON; MOTOR_D_OFF;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 4:{
{ MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_OFF;}
if(i
{ MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_OFF; }
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 5:{
{ MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_ON;}
if(i
{ MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 6:{
{ MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;}
if(i
{ MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
case 7:{
{MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;}
if(i
{ MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;}
else { MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_OFF;}
};break;
}
j++;
if(j>=8) j=0;
Delay1(0x01222);
// delay1_ms(2);
}
LED0_ON;
}
/*
四拍
void motor1(void) 反转
{
u8 j;
u16 i;
j=0;
for(i=0;i<1000;i++)
{
switch(j)
{
case 0:{MOTOR_A_ON; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;
MOTOR2_A_ON; MOTOR2_B_ON; MOTOR2_C_OFF; MOTOR2_D_OFF;};break;
case 1:{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_ON; MOTOR_D_OFF;
MOTOR2_A_OFF; MOTOR2_B_ON; MOTOR2_C_ON; MOTOR2_D_OFF;};break;
case 2:{MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_ON;
MOTOR2_A_OFF; MOTOR2_B_OFF; MOTOR2_C_ON; MOTOR2_D_ON;};break;
case 3:{MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;
MOTOR2_A_ON; MOTOR2_B_OFF; MOTOR2_C_OFF; MOTOR2_D_ON;};break;
}
j++;
if(j>=4) j=0;
//delay_ms(10);
Delay1(0x003FFF);
}
LED0_ON;
}
void motor2(void) 正转
{
u8 j;
u16 i;
j=0;
for(i=0;i<1000;i++)
{
switch(j)
{
case 0:{MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;
MOTOR2_A_ON; MOTOR2_B_OFF; MOTOR2_C_OFF; MOTOR2_D_ON;};break;
case 1:{MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_ON;
MOTOR2_A_OFF; MOTOR2_B_OFF; MOTOR2_C_ON; MOTOR2_D_ON;};break;
case 2:{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_ON; MOTOR_D_OFF;
MOTOR2_A_OFF; MOTOR2_B_ON; MOTOR2_C_ON; MOTOR2_D_OFF;};break;
case 3:{MOTOR_A_ON; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;
MOTOR2_A_ON; MOTOR2_B_ON; MOTOR2_C_OFF; MOTOR2_D_OFF;};break;
}
j++;
if(j>=4) j=0;
//delay_ms(5);
Delay1(0x003FFF);
}
}
*/
/*
八拍加四拍混合
void motor5(void) 反转
{
u8 j;
u16 i;
j=0;
for(i=0;i<2000;i++)
{
switch(j)
{
case 0:{MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_OFF;};break;
case 1:{MOTOR_A1_ON; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;};break;
case 2:{MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_OFF; MOTOR_D1_OFF;};break;
case 3:{MOTOR_A1_OFF; MOTOR_B1_ON; MOTOR_C1_ON; MOTOR_D1_OFF;};break;
case 4:{MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_OFF;};break;
case 5:{MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_ON; MOTOR_D1_ON;};break;
case 6:{MOTOR_A1_OFF; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;};break;
case 7:{MOTOR_A1_ON; MOTOR_B1_OFF; MOTOR_C1_OFF; MOTOR_D1_ON;};break;
case 8:{MOTOR_A_ON; MOTOR_B_ON; MOTOR_C_OFF; MOTOR_D_OFF;
MOTOR2_A_ON; MOTOR2_B_ON; MOTOR2_C_OFF; MOTOR2_D_OFF;};break;
case 9:{MOTOR_A_OFF; MOTOR_B_ON; MOTOR_C_ON; MOTOR_D_OFF;
MOTOR2_A_OFF; MOTOR2_B_ON; MOTOR2_C_ON; MOTOR2_D_OFF;};break;
case 10:{MOTOR_A_OFF; MOTOR_B_OFF; MOTOR_C_ON; MOTOR_D_ON;
MOTOR2_A_OFF; MOTOR2_B_OFF; MOTOR2_C_ON; MOTOR2_D_ON;};break;
case 11:{MOTOR_A_ON; MOTOR_B_OFF; MOTOR_C_OFF; MOTOR_D_ON;
MOTOR2_A_ON; MOTOR2_B_OFF; MOTOR2_C_OFF; MOTOR2_D_ON;};break;
}
j++;
if(j>=8) j=0;
Delay1(0x002FEE);
// delay1_ms(2);
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
五线四相步进电机C语言程序,stm32四相五线步进电机驱动程序相关推荐
- 步进电机红外遥控C语言程序,单片机红外遥控+步进电机+1602液晶显示c语言源程序...
这是我做的红外遥控控制的1602显示转速和转向的步进电机c语言原程序,已经调试成功!有些模块是以前做其他实验时做的,现在是直接调用的,包括1602液晶显示技术,TC9012红外解码,然后就是四相步进电 ...
- 五线四相步进电机C语言程序,五线四相步进电机,求一个控制程序(实物见图)...
/* 两个ULN2003驱动两个5线4相步进电机 */ /* 步进电机四相端口*/ #define pMotor_A_A_Init() GPIO_Ini ...
- 多路采集存储c语言程序,stm32多路巡回数据采集系统设计 含源程序
此次设计是利用stm32开发板设计的.数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用.本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机芯片.数据采集与通信控 ...
- hx711c语言程序,STM32写的HX711程序
查看: 35712|回复: 60 STM32写的HX711程序 当前离线积分 初级会员, 积分 73, 距离下一级还需 127 积分 积分金钱73 注册时间2014-8-20 在线时间0 小时 电梯直 ...
- 步进电机c语言源代码 stm32,STM32控制步进电机源代码
单片机源程序如下: #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "misc. ...
- 两相四线步进电机C语言程序,求大神帮忙看单片机控制两相四线步进电机的程序!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define uchar unsigned char #define uint unsigned int uchar code tim ...
- stm32流水灯c语言程序,STM32——流水灯程序
STM32--流水灯 stm32f10x_conf.h:打开stm32f10x_gpio.h和stm32f10x_rcc.h: stm32f10x_gpio.c 和 stm32f10x_rcc.c加入 ...
- stm32呼吸灯c语言程序,STM32使用PWM控制LED呼吸灯效果
实验的STM32型号: STM32F103C8T6 48引脚 涉及到的知识: RCC,GPIO,TIMER,PWM 设置 *RCC需打开外部时钟 *GPIO查表得知 PA3 默认复用引脚 TIM2 ...
- stm32流水灯c语言程序,stm32流水灯程序源码
#include "STM32f10x.h" #include #include "delay.h" /**************************** ...
- max6675 c语言程序,STM32+MAX6675利用SPI获取实时温度数据程序及代码
标签: 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 模拟spi之前写过 里面的部分代码摘取的正点原子的函数库:sys.uart.delay等文件 原理图 max6675.h ...
最新文章
- android 内嵌地图,Android Fragment里嵌入高德地图【原创】
- blob转成json js_javascript – 文件API – Blob到JSON
- Hibernate的事件机制
- BZOJ[1051]受欢迎的牛
- 引入阿里云GA,商米加速IoT产品和解决方案全球化布局
- 《零基础》MySQL 连接的使用(二十)
- Vue 实现图片在循环中 默认 和 选中 之间的点击切换
- Codevs 1205 单词反转(Vector以及如何输出string)
- 20190831:(leetcode习题)汉明距离
- 百度语义预训练ERNIE实现物流信息抽取任务
- 【Anaconda】Anaconda 环境操作(新建/激活/退出/删除/克隆/重命名)
- Julia: eval的一些用法
- java定时发送_Java 定时发送邮件 | 学步园
- 《21天学通C语言》
- ipadpro画流程图_Paper 推出适用于快速制作流程图的 Think 套件
- 中兴新支点服务器安装,U盘安装中兴新支点操作系统(NewStart)的方法
- 联想跨国收购余震:摩托罗拉裁员千人
- 华为热设计工程师待遇_【华为热设计工程师面试】华为的面试是我面试过程中相对简单的一个。-看准网...
- 看牙分期软件3.10版本更新及功能介绍
- 【无代码体验】用鲸智搭替换Excel表管理数据