欢迎入群共同学习交流
时间记录:2024/11/2
一、模块解析
1.uln2003
E脚:接GND
COM脚:接VCC外部电源
1-7B:输入引脚
1-7C:输出引脚,输入与输出反向
无法输出高电平,外围电路需要接上拉电路输出高电平,是一种反向达林顿管,用于高电流高电压器件控制
2.28BYJ-48步进电机
四相八步示意图,正为公共端接5V,然后A-D端低电平线圈会通电产生电磁推动转子转动,由于步进电机内部是由多个齿轮组成的,根据手册控制齿轮转1圈360°外部转子齿轮转动5.625°,8拍(步)减速比为64,即1步的步距角为5.625°/64。
步 | 电压A-B-C-D |
---|---|
1 | 0-1-1-1 |
2 | 0-0-1-1 |
3 | 1-0-1-1 |
4 | 1-0-0-1 |
5 | 1-1-0-1 |
6 | 1-1-0-0 |
7 | 1-1-1-0 |
8 | 0-1-1-0 |
转动顺序A->AB->B->BC->C->CD->D->DA
四步转动顺序A->B->C->D或者AB->BC->CD->DA,减速比为32
二、STM32单片机示例程序
头文件
#ifndef __STEPMOTOR_H__
#define __STEPMOTOR_H__
#include "stm32f10x.h"
typedef enum __STEPMOTOR_ROTATION
{
STEPMOTORGO = 0,
STEPMOTORBACK
}STEPMOTORDIR;
#define STEPMOTORMAXSPEED 0.9
#define STEPMOTORMINSPEED 4.5
void stepmotorInit(void);
void stepmotorRotate(float angle, STEPMOTORDIR dir, float speed);
#endif
源程序
#include "stepmotor.h"