瑞萨单片机william hill官网
直播中

jf_18702540

4年用户 103经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 嵌入式技术 模拟技术 存储技术 控制/MCU
私信 关注
[经验]

【RA-Eco-RA4E2-64PIN-V1.0开发板试用】+02+舵机控制+串口通讯

1、引言

本篇测评报告主要完成串口通讯以及舵机PWM控制的实现。

上篇 【RA-Eco-RA4E2-64PIN-V1.0开发板试用】+初次见面+MDK生成代码+点灯地址如下: 【RA-Eco-RA4E2-64PIN-V1.0开发板试用】+初次见面+MDK生成代码+点灯 - 瑞萨单片机william hill官网 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 ! (elecfans.com)

2、舵机控制原理

舵机的主要组成部分为伺服电机,给舵机输入不同的信号,来控制其旋转到不同的角度。舵机接收的是PWM信号,当信号进入内部威廉希尔官方网站 产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。简单来说就是给舵机一个特定的PWM信号,舵机就可以旋转到指定的位置。
图片6.jpg

舵机接收的PWM信号频率为50Hz,即周期为20ms。当高电平的脉宽在0.5ms~ 2.5ms之间时舵机就可以对应旋转到不同的角度。
图片8.jpg

舵机照片
图片7.jpg

控制原理

t= 0.5ms舵机会转到 0°

t = 1.0ms舵机会转到 45°

t = 1.5ms舵机会转到 90°

t = 2.0ms舵机会转到 135°

t = 2.5ms舵机会转到 180°

3、硬件介绍

SG90舵机硬件
红线:3.3v/5v
黑/棕线: GND
黄线:信号线

4、软件实现

4.1、FSP smart configuraton设置

首先设置时钟为3.125MHz。
图片1.jpg

设置定时器的输出引脚P101。
图片2.jpg

设置stacks的选用锯齿波PWM,设置50Hz。
图片3.jpg

同理设置串口通讯。然后生成MDK工程文件。

4.2、MDK工程文件编辑

新建PWM.C文件

uint32_t led0pwmval=3125;
    uint8_t dir=1;	
fsp_err_t err = FSP_SUCCESS;

void PWM_Init(void)
	{
			/* Initializes the module. */
			err = R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);
			/* Handle any errors. This function should be defined by the user. */
			assert(FSP_SUCCESS == err);
			/* Start the timer. */
			(void) R_GPT_Start(&g_timer0_ctrl);
			R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);
//period=时钟源/频率;
//3.125M/50=62500
			err = R_GPT_PeriodSet(&g_timer0_ctrl, 62500);//频率
			assert(FSP_SUCCESS == err);
			R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
	}
void PWM(void)
	{
//占空比=cycle/period;
		//0.05~0.1
		//3125~6250
	 if(dir)led0pwmval+=625;
        else led0pwmval-=625;
        if(led0pwmval>6250)dir=0;
        if(led0pwmval==0)dir=1;
err = R_GPT_DutyCycleSet(&g_timer0_ctrl, led0pwmval, GPT_IO_PIN_GTIOCA);//占空比
        assert(FSP_SUCCESS == err);
        R_BSP_SoftwareDelay (200, BSP_DELAY_UNITS_MILLISECONDS);
        err = R_GPT_Reset(&g_timer0_ctrl);
        assert(FSP_SUCCESS == err);
        R_BSP_SoftwareDelay (10, BSP_DELAY_UNITS_MILLISECONDS);
	}

5、测试

使用串口烧录,参考第一篇步骤。

视频如下。

参考:

STM32 在PC端串口助手上打印中文字符----printf()函数重定向_串口打印可以输出汉字吗-CSDN博客

【瑞萨RA_FSP】GPT—— PWM功能详解_瑞萨pwm-CSDN博客

3RA生态之定时器输出PWM_瑞萨ra
pwm+dma-CSDN博客

47ca22a6ba2e942bc8710eb0ab0a2a01

更多回帖

发帖
×
20
完善资料,
赚取积分