注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、资源说明
二、基本参数
参数
型号:SG90
重量13克 角度90度-180度通用
红色电压 粽色 地线 橙色是信号线
技术数据:
尺寸:21.5mmX11.8mmX22.7mm
重量:9克
无负载速度:0.12秒/60度(4.8V)
堵转扭矩:1.2-1.4公斤/厘米(4.8V)
使用温度:-30~~+60摄氏度
死区设定:7微秒
工作电压:4.8V-6V
型号:MSG90
产品名称:MG90 14g 数字舵机
产品净重: 13.4g
产品尺寸: 22.8*12.2*28.5mm
产品扭矩: 1.8kg/cm(4.8v) 2.2kg/cm(6.0v)
反应速度: 0.10sec/60degree(4.8v) 0.08sec/60degree(6.0v)
工作电压: 4.8V-6V
使用温度: 0-55度
动作死区: 5us
齿轮介质: 塑料
引脚说明
三、驱动说明
MSG90 舵机与SG90舵机驱动方式类似
SG90舵机 信号线(黄线)红线(电源线)棕色(地线)
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2. 5ms范围内的角度控制脉冲部分,总间隔为2ms。
以180度角度伺服为例,那么对应的 控制关系是这样的:
0.5ms————–0度; 1.0ms————45度;
1.5ms————90度; 2.0ms———–135度;
2.5ms———–180度;
SG90/MSG90 舵机
对应程序: 以下以STC89C52RC程序为例 定时器产生周期20MS PWM波形
void tim0() interrupt 1
{
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值 0.1ms
times++;
if(times<=Duty)
{
Pwm=1;
}
else
{
Pwm=0;
}
if(times>=Period)
{
times=0;
}
}
占空比由Duty决定 改变Duty则占空比改变 次处STC89C52RC用的晶振11.0592 故定时有误差
uint8_t Duty=5; //大概600US
四、部分代码说明
接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
STC89C52RC+MSG90 SG90舵机
//MSG90 SG90引脚定义
sbit Pwm=P1^0;
//按键引脚定义
sbit K1=P1^1;
sbit K2=P1^2;
STM32F103C8T6+MSG90 SG90舵机
//MSG90 SG90引脚定义
// TIM3 输出比较通道1
#define GENERAL_TIM_CH1_GPIO_CLK RCC_APB2Periph_GPIOA
#define GENERAL_TIM_CH1_PORT GPIOA
#define GENERAL_TIM_CH1_PIN GPIO_Pin_6
//按键引脚定义
#define K_Forward GPIO_Pin_6 //舵机正转按键 GPIOB_Pin_6 0x0040
#define K_Reverse GPIO_Pin_7 //舵机反转按键 GPIOB_Pin_7 0x0080
五、基础知识学习
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
1、串口下载 直戳跳转
2、ST-LINK下载 直戳跳转
3、J-LINK下载 直戳跳转
4、DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
实物参考链接 直戳跳转
七、注意事项
1、VCC GND请勿接反,接反易烧
2、异常时,排除接线接触不良
3、单片机与模块需要共地接线
4、STC89C52RC驱动MSG90舵机建议单独供电并IO口需要4.7K左右电阻上拉
八、接线说明
可参考程序main.c最上面接线说明