STM32F103C8T6 ULN2003步进电机驱动代码

发布者:VelvetSoul最新更新时间:2017-09-28 来源: eefocus关键字:STM32F103C8T6  ULN2003  步进电机  驱动代码 手机看文章 扫描二维码
随时随地手机看文章

步进电机的驱动原理特别简单百度一下就OK了。

以下是用流水灯改进的代码。很垃圾但是可以使用!!!

仅供测试


  1. #include "stm32f10x.h"  

  2. #include "delay.h"  

  3. #include "sys.h"  

  4.   

  5. void Delay(u32 count)  

  6. {  

  7.     u32 i=4000;  

  8.     for(;i

  9. }  

  10. int main(void)  

  11. {     

  12.     int t=500000;  

  13.     GPIO_InitTypeDef GPIO_InitStructure;  

  14.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  

  15.       

  16.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;  

  17.     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  

  18.     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  

  19.     GPIO_Init(GPIOA,&GPIO_InitStructure);  

  20.       

  21.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;  

  22.     GPIO_Init(GPIOA,&GPIO_InitStructure);  

  23.       

  24.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;  

  25.     GPIO_Init(GPIOA,&GPIO_InitStructure);  

  26.       

  27.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;  

  28.     GPIO_Init(GPIOA,&GPIO_InitStructure);  

  29.       

  30.     while(1){  

  31.     GPIO_ResetBits(GPIOA,GPIO_Pin_0);  

  32.     GPIO_SetBits(GPIOA,GPIO_Pin_1);  

  33.     GPIO_SetBits(GPIOA,GPIO_Pin_2);  

  34.     GPIO_SetBits(GPIOA,GPIO_Pin_3);   

  35. //  delay_ms(t);      

  36.     Delay(t);     

  37.     GPIO_SetBits(GPIOA,GPIO_Pin_0);  

  38.     GPIO_ResetBits(GPIOA,GPIO_Pin_1);  

  39.     GPIO_SetBits(GPIOA,GPIO_Pin_2);  

  40.     GPIO_SetBits(GPIOA,GPIO_Pin_3);   

  41. //  delay_ms(t);  

  42. Delay(t);  

  43.     GPIO_SetBits(GPIOA,GPIO_Pin_0);  

  44.     GPIO_SetBits(GPIOA,GPIO_Pin_1);  

  45.     GPIO_ResetBits(GPIOA,GPIO_Pin_2);  

  46.     GPIO_SetBits(GPIOA,GPIO_Pin_3);   

  47. //  delay_ms(t);  

  48. Delay(t);  

  49.     GPIO_SetBits(GPIOA,GPIO_Pin_0);  

  50.     GPIO_SetBits(GPIOA,GPIO_Pin_1);  

  51.     GPIO_SetBits(GPIOA,GPIO_Pin_2);  

  52.     GPIO_ResetBits(GPIOA,GPIO_Pin_3);     

  53. //  delay_ms(t);  

  54. Delay(t);     

  55.     }  

  56. }     

  57.       

  58. /*  GPIO_InitTypeDef  GPIO_InitStructure; 

  59.     delay_init(); 

  60.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //??PB,PE???? 

  61.      

  62.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;              //LED0-->PB.5 ???? 

  63.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       //???? 

  64.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      //IO????50MHz 

  65.   GPIO_Init(GPIOA, &GPIO_InitStructure);                     //?????????GPIOB.5 

  66.   GPIO_SetBits(GPIOA,GPIO_Pin_2);                        //PB.5 ??? 

  67.  

  68.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;              //LED1-->PE.5 ????, ???? 

  69.   GPIO_Init(GPIOA, &GPIO_InitStructure);                     //???? ,IO????50MHz 

  70.   GPIO_SetBits(GPIOA,GPIO_Pin_3);                        //PE.5 ???        

  71.   while(1) 

  72.     { 

  73.         GPIO_ResetBits(GPIOA,GPIO_Pin_2); 

  74.         GPIO_SetBits(GPIOA,GPIO_Pin_3); 

  75. //          Delay(5000000); 

  76.             delay_ms(1000); 

  77.             GPIO_SetBits(GPIOA,GPIO_Pin_2); 

  78.             GPIO_ResetBits(GPIOA,GPIO_Pin_3); 

  79. //          Delay(5000000); 

  80.             delay_ms(1000); 

  81.     }*/  

  82. //}  



关键字:STM32F103C8T6  ULN2003  步进电机  驱动代码 引用地址:STM32F103C8T6 ULN2003步进电机驱动代码

上一篇:stm32下状态机编程按键
下一篇:STM32控制步进电机实现精确转动

推荐阅读最新更新时间:2024-03-16 15:38

基于MSP430的声音定位系统的设计
摘要:声源定位在当今日益智能化的社会中有着诸多方面的应用,特别是在智能控制,军事等领域。文中设计的系统以MSP430F449单片机为控制核心, 步进电机 驱动的小车作为移动声源载体,设计两个间距固定的麦克风作为接收设备,测量声源发声到麦克风接收到声音的时间差数据,声源通过无线模块接收到数据从而计算出声源的坐标,然后控制声源小车运行到指定坐标实现定位控制。经测试,本系统能精确的控制小车到达指定坐标点,系统工作稳定。 定位系统是当今很热门的一个研究课题,国内外测距定位技术常用到的有激光测距定位,超声波测距定位,CPS定位等,而利用音频信号实现定位的技术也凶其低成本,易实现,精确度较高等优势而在飞速发展,存智能控制领域有着较广泛的应用。
[单片机]
基于MSP430的声音定位系统的设计
STM32F103C8T6+温湿度传感器DHT11实现温湿度采集
通信原理 单总线通信 DHT11器件采用简化的单总线通信。单总线只有一根数据线,主从机之间的数据交换、控制命令等均由单总线完成。在单总线系统中,只有当主机呼叫从机时,从机才能应答。 挂载于单总线上的设备,必须通过一个漏极开路或三态端口连接至该数据线,以允许设备在不发生数据时能够释放总线。单总线通常要求外接一个4.7kΩ的上拉电阻,这样,当总线闲置时,总线上始终是高电平 传输数据位定义 一次传送40位数据,高位先出。数据格式位: 8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位。 注:其中湿度小数部分为0。 校验位的数据定义: “8bit湿度整数数据+8bit
[单片机]
STM32F103C8T6+温湿度传感器DHT11实现温湿度采集
步进电机发热问题及对策
步进电机作为一种数字式执行元件,在运动控制系统中得到广泛的应用。许多用户朋友在使用步进电机的时候,感觉电机工作时有较大的发热,心存疑虑,不知这种现象是否正常。实际上发热是步进电机的一个普遍现象,但怎样的发热程度才算正常,以及如何尽量减小步进电机发热呢?以下是一些简单的分析。 1、步进电机为什么会发热 对于各种步进电机而言,内部都是由铁芯和绕组线圈组成的。绕组有电阻,通电会产生损耗,损耗大小与电阻和电流的平方成正比,这就是我们常说的铜陨,如果电流不是标准的直流或正弦波,还会产生谐波损耗;铁心有磁滞涡流效应,在交变磁场中也会产生损耗,其大小与材料、电流、频率、电压有关,这叫铁损。铜损和铁损都会以发热的形式表现出来,从而影响电机的效率
[嵌入式]
让 28BYJ-48 步进电机转起来
再重新看一下上面的步进电机外观图和内部结构图:步进电机一共有5根引线,其中红色的是公共端,连接到 5 V 电源,接下来的橙、黄、粉、蓝就对应了 A、B、C、D 相;那么如果要导通 A 相绕组,就只需将橙色线接地即可,B 相则黄色接地,依此类推;再根据上述单四拍和八拍工作过程的讲解,可以得出下面的绕组控制顺序表,如表9-1所示: 我们板子上控制步进电机部分是和板子上的显示控制的 74HC138 译码器部分复用的 P1.0~P1.3,关于跳线我们在第3章已经讲过了,通过调整跳线帽的位置可以让 P1.0~P1.3控制步进电机的四个绕组,如图9-5所示。 图9-5 显示译码与步进电机的选择跳线 如果要使用电机的话,需要把4个跳线帽
[单片机]
让 28BYJ-48 <font color='red'>步进电机</font>转起来
STM32F103C8T6的RC522 RFID模块调试程序
单片机源程序如下: #include usart.h #include stm32f10x_spi.h #include RC522.h #include delay.h #include string.h #include spi_driver.h #include stdio.h /****************************************************************************** 硬件连接 STM32F103C8T6 RC522模块 PA4(SPI1_NSS) SDA PA5(SPI1_SCK) S
[单片机]
<font color='red'>STM32F103C8T6</font>的RC522 RFID模块调试程序
伺服电机过载的原因有哪些
问题一:伺服电机报警过载原因 驱动传动阻力太大,检查传动系统。 问题二:步进电机、伺服电机的过载能力有什么不同? 步进电机一般不具有过载能力。交流伺服电机具有较强的过载能力。以松下交流伺服系统为例,它具有速度过载和转矩过载能力。其最大转矩为额定转矩的三倍,可用于克服惯性负载在启动瞬间的惯性力矩。步进电机因为没有这种过载能力,在选型时为了克服这种惯性力矩,往往需要选取较大转矩的电机,而机器在正常工作期间又不需要那么大的转矩,便出现了力矩浪费的现象。 问题三:关于伺服电机过载是否一定跟电流有关 电动机作为力矩输出的元件,其过载一定是机械部分轴力矩大且超过电动机允许的数值,与电流无关。但现象的表征是电流增大,或等于或超过额定电流
[嵌入式]
伺服电机过载的原因有哪些
基于ATMEGA48单片机的仪表步进电机的细分控制
仪表步进电机   步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。   仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。   
[工业控制]
基于ATMEGA48单片机的仪表<font color='red'>步进电机</font>的细分控制
步进电机加减速是通过改变哪个参数实现的?
步进电机是一种常用的电动机类型,特点是相对于其他类型的电动机具有精准的位置控制能力,是自动化控制领域广泛应用的一种电机。在实际应用中,步进电机的运动过程中需要考虑加减速问题,以达到精准的位置控制要求。 一般来说,步进电机的加减速时间需要根据实际情况进行设置。对于不同的应用场景,需要进行不同的设置。在步进电机的控制系统中,加减速时间是非常重要的一个参数,其大小直接影响到步进电机的运动效果和控制系统的稳定性。 从实际应用角度考虑,对于低速运动的步进电机,需要加快其加减速过程,以便减小其运动时间,提高生产效率;而对于高速运动的步进电机,加减速时间需要设置得比较长,从而减小跳动和震动,保证较高的运动稳定性。 一般来说,步进电机的加减速时间
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved