完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
概述
VID29系列步进电机是一种精密的微型步进电机,内置减速比180/1的齿轮系,主要应用于车辆的仪表显示盘,也可用于其它仪器仪表装置中,将数字信号直接准确快速地转为模拟的显示输出,完全兼容X27 X25 XC5 168 等电机。 VID29系列步进电机需要两路逻辑脉冲信号驱动,可以工作于5-10V的脉冲下,输出轴的步距角最小可以达1/12°,最大角速度600°/s。可以分步模式或微步模式驱动。 VID6606 是一款专为驱动微型步进电机而设计的CMOS集成电路,每个驱动芯片可同时驱动四路电机。它在驱动芯片的频率控制端输入脉冲序列 F(scx),输出端可以控制步进电机的输出轴以微步转动,每个脉冲对应电机输出轴转动1/12°,最大角速度可达600°/s。 VID6606采用28脚封装工艺。 一、VID6606的功能和特点 以微步驱动 简单易用,每个电机只需速度F(scx)和方向(CW/CCW)两个控制端,大大节约了单片机控制引脚 所有输入脚都有干扰过滤器 宽工作电压 低电磁干扰辐射 二、VID6606引脚功能 三、VID6606典型应用电路 如何用AVR单片机控制VID6606驱动VID29 一、头文件 #ifndef VID6606_H #define VID6606_H #include “Main.h” #ifdef VID6606_IsValid #define VID6606_MotorNum 4//定义控制电机的数量 #define VID6606_Speed 10 //定义指针旋转速度 #define VID6606_RST_GPIOx GPIOC #define VID6606_RST_PINx BIT1 //--------------A--------------------------- #define VID6606_FSCXA_GPIOx GPIOC #define VID6606_FSCXA_PINx BIT3 #define VID6606_CCWA_GPIOx GPIOC #define VID6606_CCWA_PINx BIT2 //--------------B--------------------------- #define VID6606_FSCXB_GPIOx GPIOA #define VID6606_FSCXB_PINx BIT7 #define VID6606_CCWB_GPIOx GPIOC #define VID6606_CCWB_PINx BIT7 //--------------C--------------------------- #define VID6606_FSCXC_GPIOx GPIOA #define VID6606_FSCXC_PINx BIT6 #define VID6606_CCWC_GPIOx GPIOA #define VID6606_CCWC_PINx BIT5 //--------------D--------------------------- #define VID6606_FSCXD_GPIOx GPIOC #define VID6606_FSCXD_PINx BIT0 #define VID6606_CCWD_GPIOx GPIOD #define VID6606_CCWD_PINx BIT7 #define VID6606_ON *AvrGPIOx[VID6606_RST_GPIOx][PORTx] |= VID6606_RST_PINx; #define VID6606_OFF *AvrGPIOx[VID6606_RST_GPIOx][PORTx] &= ~VID6606_RST_PINx; //------------------------------------------------- // #define VID6606_CW(x) *VID6606_Diver[x].CCW_GPIO |= VID6606_Diver[x].CCW_PINx // #define VID6606_CCW(x) *VID6606_Diver[x].CCW_GPIO &= ~VID6606_Diver[x].CCW_PINx // #define VID6606_FSCX_H(x) *VID6606_Diver[x].FSCX_GPIO |= VID6606_Diver[x].FSCX_PINx // #define VID6606_FSCX_L(x) *VID6606_Diver[x].FSCX_GPIO &= ~VID6606_Diver[x].FSCX_PINx #define VID6606_CW(x) *VID6606_Diver[x].CCW_GPIO |= VID6606_Diver[x].CCW_PINx #define VID6606_CCW(x) *VID6606_Diver[x].CCW_GPIO &= ~VID6606_Diver[x].CCW_PINx #define VID6606_FSCX_H(x) *VID6606_Diver[x].FSCX_GPIO |= VID6606_Diver[x].FSCX_PINx #define VID6606_FSCX_L(x) *VID6606_Diver[x].FSCX_GPIO &= ~VID6606_Diver[x].FSCX_PINx /union Vid6606_Flag { struct { uint8_t A :1; uint8_t B :1; uint8_t C :1; uint8_t D :1; uint8_t RE4:4; }Bit; uint8_t Byte; };/ typedef struct { volatile uint8_tFSCX_GPIO; volatile uint8_t FSCX_PINx; volatile uint8_t CCW_GPIO; volatile uint8_t CCW_PINx; }Vid6606_Diver; struct Vid6606_Data { int16_t Angle[2][4]; int32_t * Clock; uint8_t step[4]; }; extern Vid6606_Diver const VID6606_Diver[4]; //extern union Vid6606_Flag VID6606_Flag; extern struct Vid6606_Data VID6606_Data; extern void VID6606_Init(void); extern void VID6606_GPIO_Config(void); extern void VID6606_Main(void); extern void VID6606_Run(void); extern void VID6606_GetAngle(void); #endif #endif 二、主体程序 程序包括函数: 名称:VID6606_Init 功能:VID6606初始化 名称:VID6606_Main 功能:VID6606主题函数,需要扫描 名称:VID6606_GetAngle 功能:得到偏转角度 说明:这是一个函数接口,在这里实现角度的转换 名称:VID6606_Run 功能:电机运转 说明:VID6606根据VID6606_Data.Angle[x]数据信息将指针角度调整到对应的位置 名称:VID6606_GPIO_Config 功能:控制VID6606的io口配置 完整的程序文件请在我上传的资源处下载:AVR-VID6606.DOC |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
742浏览 1评论
495浏览 0评论
256浏览 0评论
418浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 18:15 , Processed in 1.886673 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号