当前位置:首页 > 单片机 > 单片机
[导读]在讲PWM之前,大家先做以下5个实验。1、LED1循环亮300ms,灭700ms;2、LED1循环亮30ms,灭70ms;3、LED1循环亮3ms,灭7ms;4、循环以下步骤1)LED1循环亮3ms,灭7ms;执行一百次;2)LED1循环亮8ms,灭2ms;执行一百

在讲PWM之前,大家先做以下5个实验。

1、LED1循环亮300ms,灭700ms;

2、LED1循环亮30ms,灭70ms;

3、LED1循环亮3ms,灭7ms;

4、循环以下步骤

1)LED1循环亮3ms,灭7ms;执行一百次;

2)LED1循环亮8ms,灭2ms;执行一百次;

5、循环以下步骤

1)LED1循环亮1ms,灭9ms;LED2循环亮3ms,灭7ms;LED3循环亮5ms,灭5ms;以上3灯闪烁动作共用同个10ms周期,执行一百次;

2)LED1循环亮5ms,灭5ms;LED2循环亮7ms,灭3ms;LED3循环亮9ms,灭1ms;以上3灯闪烁动作共用同个10ms周期,执行一百次;

第1、2个实验,可以明显看出LED亮灭的持续时间,而在第3个实验中,看不出亮灭的转换,只能看到灯是一直亮着的,但是要比常亮的状态暗了很多。如果在第3个实验基础上修改亮灭持续时间,可以改变LED的亮度。前3个实验,应该可以很轻松完成。第4个实验,用for结构可以能完成。第5个实验,用现在已学的知识,就不是那么容易完成了。但是使用今天所要学的PWM功能,以上功能将很容易实现。

PWM全称Pulse Width Modulation,中文即脉冲宽度调制,PWM的功能简单来讲,就是可以使引脚输出一定脉冲周期和脉冲宽度的方波脉冲信号,或者说占空比可变的方波脉冲信号,如下图所示。



脉冲宽度是两个相邻的脉冲之间的时间间隔,脉冲宽度是脉冲周期中高电平时间。

STM8S105K4有3个PWM模块,8路16位PWM通道。PC1、PC2、PC3、PC4是PWM1模块的1、2、3、4通道。PD4、PD3是PWM2模块的1、2通道。PD2、PD0是PWM3模块的1、2通道。

一、库函数

1、打开DAHUME MINI.stw文件;

2、在STVD左侧Workspace窗口Source Files目录下找到main.c,双击打开;

3、setup();函数代码如下;

void setup(void)

{

delay(10);

CLOCK(_16MHz);

PWM1_init(10, 100);

}

void PWM1_init(unsigned int period_ms, unsigned int range);是设置PWM1模块参数的函数。参数period_ms表示脉冲周期,单位是毫秒。参数range表示分辨率,即占空比可调的级数,范围是0~65535。设置了PWM1模块后,其4个通道都是PWM的工作模式,不可做IO口使用。

PWM1_init(10, 100);设置PWM1的脉冲周期为10ms,100级分辨率,单位脉冲宽度为100us。

void PWM2_init(unsigned int period_ms, unsigned int range);函数对应PWM2模块设置。

void PWM3_init(unsigned int period_ms, unsigned int range);函数对应PWM3模块设置。

4、主函数代码如下;

main()

{

setup();

while (1)

{

PWM1(1, 30);

delay(500);

PWM1(1, 80);

delay(500);

}

}

void PWM1(char channel, unsigned int duty);是设置PWM1某通道的脉冲宽度。参数channel表示通道号。参数duty表示一个脉冲周期里的单位脉冲宽度的个数。参数duty要小于等于参数range。

脉冲宽度=单位脉冲宽度*duty

PWM1模块的脉冲周期是10ms,占空比为30%,则PC1引脚输出的平均电压为5V×30%,即1.5V,LED1以30%的亮度点亮。

本例程所实现效果是LED1以30%的亮度亮0.5s,以80%的亮度亮0.5s,循环执行。

PWM功能除了可以控制LED的亮度,还可以实现呼吸灯功能。控制直流电机是PWM的重要应用。

在设置PWM1模块时,根据单位脉冲宽度时间范围是1/16us~4096us设定脉冲周期和分辨率参数。

在设置PWM2、PWM3模块时,根据单位脉冲宽度时间范围是1/16us*2^n,n=0~15设定脉冲周期和分辨率参数。

二、练习

1、完成上述第5个实验;

2、设置PWM1模块脉冲周期10ms,分辨率100级,通道1的占空比每20ms从0%递增到100%,再每20ms从100%递减到0%。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在今年的展会上,除了展出去年11月加入尼得科集团的车床厂商“TAKISAWA”的车床之外,还会为您展示更丰富的产品阵容“面向所有工业领域的尼得科的机床产品”。以OneNidec的方式,为汽车、机器人、半导体、能源、建筑机...

关键字: 机器人 半导体 能源

AI+机器人领域已经成为当下最热门且最受关注的前沿科技领域之一,在中国,也已经有不少企业开始在AI+机器人领域深入探索,其中就包括长期专注于B端垂直领域的AI机器人+行业智慧服务解决方案服务商「小笨智能」。

关键字: AI 机器人

一直以来,编码器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来编码器的相关介绍,详细内容请看下文。

关键字: 编码器 工业控制 机器人

人工智能机器人行业的前景看起来非常广阔且充满机遇。随着技术的不断进步,人工智能机器人已经在多个领域得到了广泛应用,并且其应用范围和深度还在不断扩大。

关键字: 人工智能 机器人

北京——2024年3月25日 在今年1月份落幕的达沃斯世界经济论坛2024年年会上,一场名为“生成式人工智能:第四次工业革命的蒸汽机”的科技论坛引起了业界广泛关注。与会者纷纷表示,人工智能技术赋能了产业的革新,而生成式A...

关键字: 生成式AI 机器学习 机器人

2024年3月22日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 很高兴宣布赞助第22届“创造未来”设计大赛。这项国际赛事吸引了世界各地的工程师和创客,各...

关键字: 机器人 自动化

日前,戴盟(深圳)机器人科技有限公司发布了其新品“Sparky 1”,这是该团队继仿人搬运机器人后推出的又一款突破性“巧手”产品。据悉,该机器人采用新一代视触觉传感+灵巧操作技术,旨在帮助人类完成更多任务挑战。“心灵手巧...

关键字: AI 机器人

中国,2024年3月20日,–全球领先的胶粘剂专家Bostik波士胶将在2024慕尼黑上海电子生产设备展(Productronica China 2024)上展示其针对消费电子行业的全系列创新工程胶粘剂解决方案。

关键字: 传感器 机器人 智能仓储

Holtek隆重推出全新一代32-bit Arm® Cortex®-M0+ 5V CAN MCU - HT32F53231/HT32F53241/HT32F53242/HT32F53252。这一系列单片机带有来自Bosc...

关键字: MCU 工业自动化 单片机

Holtek精益求精,宣布推出全新5V宽电压Arm® Cortex®-M0+ 32-bit MCU系列HT32F50431/HT32F50441/HT32F50442/HT32F50452。此系列MCU经多方位升级能满...

关键字: 单片机 智能家居 工业控制
关闭
关闭