让呼吸灯的效果更加真实

呼吸灯,顾名思义,就是灯光在单片机的控制下完成由亮到暗的逐渐变化,感觉像是在呼吸。呼吸灯广泛应用于手机上,并曾经成为各大品牌手机的卖点之一。如果你的手机里有未处理的通知,如未接来电、未查收的短信等,呼吸灯就会不断由暗到亮变化,像呼吸一样有节奏,起到提醒的作用。

学习Arduino,呼吸灯是一个典型的案例。笔者编写的《Arduino创意机器人》(人民邮电出版社出版)一书中就有“呼吸灯”一课,位于第一章的LED专题。通过研究呼吸灯效果,来学习Arduino的PWM输出,并且学习Arduino的循环语句和全局变量。但从效果看,这还未达到理想的效果,因为灯光强弱的过渡不够柔和。

为什么呼吸灯的效果不够真实

《Arduino创意机器人》中是使用两个循环来实现0到255和255到0的数值变换。程序是用ArduBlock编写,参考代码如***1所示。

在这两个循环中,变量K的值是递增到255,然后再降到0。如何让呼吸接近自然、真实?单纯看代码自然看不出什么。我们可以试着用Excel输出从0到255再到0的一组数字,再用***表画出变量K的变化,如***2所示。

这时,我们就能明显看出线条是笔直的,成尖峰状。这样的数据变化,当然很难体现出“呼吸”这一张一弛的自然变化。那么,如何引入一个数学表达式,让***2的线条变得圆滑起来呢?

正弦函数的作用分析

在初中数学中,三角函数是一个重要的知识点,而正弦曲线就是一条圆滑的波浪线。嵌入式系统中许多应用都是对正弦函数进行采样,得到按正弦规则变化的数组。举个比较简单的例子,如呼吸灯、警报声等。

关于正弦函数,其定义如下:在直角坐标系中,给定单位圆,对任意角α,使角α的顶点与原点重合,始边与x轴非负半轴重合,终边与单位圆交于点P(u,v),那么点P的纵坐v叫作角α的正弦函数,记作v=sin(α)。通常,我们用x表示自变量,即x表示角的大小,用y表示函数值,这样我们就定义了任意角的三角函数y=sin(x),它的定义域为全体实数,值域为[-1,1]。

这段文字看起来有些专业,其实我们只需要了解一句话:在y=sin(x)的表达式中,不管x的值是什么,y的值总在-1到1之间,而且是小数。那么如何生成这组数据,并且数据呈现的线条是怎样的,我们还是用Excel软件来研究一下。

笔者先在Excel中产生0~360的一组角度数字,然后用RADIANS函数转换为弧度,再用Sin函数输出数据。因为Arduino的PWM在0和255之间,就乘以255,这样得到了-255到255之间的数字,如下页表1所示。

同样用***表来绘制(如下页***3)。看起来是不是很平滑啊?

至于如何将-255到255之间的数转化为0~255的数,有几种方案:

①取绝对值法。直接取绝对值,即使用ABS函数。这样一来,绘出来的线条就变成了有圆顶的山丘状,如***4所示。

②数据映射法。将-255到255之间的数映射为0~255之间。采用的办法也不复杂,除以2后,加上128即可,生成的数值如***5所示。Arduino编程就更简单了,可以直接调用map函数。

代码编写和效果实现

研究了正弦函数后,接下来就是编写代码了。Arduino中提供了radians、sin、int、abs、map等函数,因此写这个表达式非常容易。这些函数的简介如下。

radians:使用范例为radians(value)。将度数value转换为弧度,如果不太在乎误差,可以用“乘以3.14159再除以180”来替代。

sin:使用范例为sin(value)。返回角度value(radians形式)的三角函数sine值,数据类型为double。

int:使用范例为int(value)。返回向下取整为最接近value的整数。

abs:使用范例为abs(value)。返回value的绝对值,可以将负数转正数。

map:使用范例为map(value, fromLow、fromHigh、toLow、 toHigh)。按照fromLow与fromHigh范围,对等转换value至toLow与toHigh范围。

具体的参考代码如***6所示。

经过比较,直接采用绝对值形式的效果不如第二种数据映射的方式,在变暗的时候有跳动感。而方式2和方式3的表达式基本上是等价的,如表2所示。

需要强调的是,调试程序要善于利用串口输出功能,即Serial.print。这样可以帮助我们了解变量的数据变化,如***7所示。

应用了正弦函数后,Arduino做出来的呼吸灯就很有“呼吸”的感觉了。当然,实现呼吸效果除了用单片机编程来实现外,也可以用模拟电路来实现。希望这个案例能让大家更加深入了解数学知识在编程中的应用。

转载请注明出处学文网 » 让呼吸灯的效果更加真实

学习

手部烧伤瘢痕挛缩畸形的整复

阅读(33)

本文为您介绍手部烧伤瘢痕挛缩畸形的整复,内容包括手部被火焰烧伤导致瘢痕挛缩,烧伤后疤痕挛缩畸形。作者:林闻海,郑廷忠,王庆生,蔡立伟【关键词】挛缩畸形目的:探讨手部烧伤后瘢痕挛缩畸形较为有效的防治方法。方法:对2000年6月至2004年12月

学习

个性化推荐系统研究

阅读(18)

本文为您介绍个性化推荐系统研究,内容包括怎么搭建个性化推荐系统,个性化推荐系统的实现方法。信息技术和互联网的迅猛发展把我们带进了信息过载的时代。海量信息的同时呈现,一方面增大了用户发现自己感兴趣信息的难度,另一方面也使得大量

学习

南京中医药大学学报

阅读(62)

本文为您介绍南京中医药大学学报,内容包括南京中医药大学学报是几级期刊,南京中医药大学学报杂志缩写。1.周仲瑛教授防治病毒感染性疾病学术思想探析(一)郭立中,金妙文,王志英,周学平,叶放,朱垚,金路,李柳,GUOLi-zhong,JINMiao-wen,WANGZhi-ying,ZH

学习

螃蟹王国的战争与和平

阅读(27)

在我们人类居住的地球上,生活着几千种形色各异、身披坚甲的螃蟹。它们分布在海洋、河口、溪流、湖泊、陆地。螃蟹王国里,不断上演着形形的故事……在台湾的海岸林中,生活着一种特有的陆地蟹——林投蟹。在台湾的海岸林中,生活着一种特有的陆

学习

石来运转 第1期

阅读(27)

本文为您介绍石来运转 第1期,内容包括石来运转是什么意思,石来运转及寓意。她一直喜欢石头记的饰品,却始终只有一件,还有着俗气的名字――“石来运转”,绿色的玛瑙珠被银鱼环抱着,珠子可以转动,用一根银链子系着挂在项间,居然也别有一番风情。

学习

思想品德学习计划范文精选

阅读(21)

思想品德学习计划篇1关键词:思想品德;学困生;初中生初中思想品德教育作为一门基础课程,初中生在思想品德知识掌握方面应当比较牢固,然而,在走访调查期间却发现,大部分初中生在思想品德学习方面都存在一定程度的困难,这导致初中生对思想品德课程

学习

安然众合 成功启航

阅读(71)

本文为您介绍安然众合 成功启航,内容包括安然众合是真的还是假的,安然众合属于什么档次。八月的威海,骄阳似火,经历了一天炙热考验的人们都渴望凉爽的夜晚早些到来。夕阳西下,夜幕渐渐降下,徐徐的海风轻拂脸庞,扫去了一天的燥热与烦闷。对安

学习

中德环保:后向突围

阅读(17)

从垃圾焚烧处理设备商到垃圾焚烧发电公司,选择向产业链的后向突围的中德环保在“垃圾围城”时代迎来了全新的战略机遇。当市场陷入整体低迷之际,凭借技术积累和设备优势选择向产业链的后向进行“直插式切入”,也是不错的选择。成立于199

学习

皖南山区合欢特征特性及播种育苗技术

阅读(45)

本文为您介绍皖南山区合欢特征特性及播种育苗技术,内容包括合欢的繁殖方法栽培要点园林用途,哪种合欢适合北方种植。合欢树在皖南山区范围内都有分布,其具有生长迅速、成材早、树冠浓荫、纹理致密、木材光泽度好和耐腐等优点,因此木材常用

学习

高端监控走向四倍高清

阅读(21)

本文为您介绍高端监控走向四倍高清,内容包括高端监控探头高清,超远监控高清。观点:监控显示器要求彩更高分辨率的面板。传统的监控显示器有一个通病,在分辨率上并没有考虑一些特殊情况的需求,从而就无法满足特别细微的监控要求,这样就需要准

学习

牛头刨床刀架上下移动分析与改进

阅读(19)

本文为您介绍牛头刨床刀架上下移动分析与改进,内容包括牛头刨床走刀速度调整,牛头刨床传动方案优缺点分析。本文根据实际工作实践,结合相关技术文件,分析牛头刨床刀架上下移动的原因及对加工工件质量的影响,并对刀架机构进行改进,确保加工质

学习

Sony PCM—D100 & PCM—D50索尼线性录音笔新王者

阅读(459)

PCM是索尼著名的数码录音棒系列,其出色的拾音性能使其成为业界的佼佼者,而其优秀的回放性能又使之成为发烧友随身听的佳选。如今,被封为音质“神器”的PCM-D50,迎来了它的升级版PCM-D100。PCM-D100不论在外观设计、按键布局,还是拾音性能、回

学习

模拟电路与数字电路区分及实用知识的探讨

阅读(21)

本文为您介绍模拟电路与数字电路区分及实用知识的探讨,内容包括模拟电路与数字电路怎么区分,数字电路和模拟电路哪个待遇更好。【摘要】随着科学技术的发展,电子电路的应用由最初的无线通信扩展到计算机科学,自动控制及其它各个领域,电子电

学习

浅谈负荷开关

阅读(35)

本文为您介绍浅谈负荷开关,内容包括负荷开关知识讲解,10千伏负荷开关。[摘要]本文通过对10KV配电变压器保护配置方案的综合比较分析,以及对负荷开关―熔断器组合电器在正确选用时一些相关事项的介绍,论述了负荷开关―熔断器组合电器在企业

学习

我发现了螃蟹呼吸的秘密作文500字

阅读(19)

本文为您介绍我发现了螃蟹呼吸的秘密作文500字,内容包括我发现螃蟹呼吸的秘密作文450个字,螃蟹呼吸的秘密500字作文。我发现了螃蟹呼吸的秘密区育才小学5(2)班王天先今天,我帮我心爱的螃蟹加水时,把一盆水往螃蟹盆里随意一倒,只见一下子浑

学习

不同抛洒方向的箔条干扰仿真效果分析

阅读(18)

该文通过研究箔条云扩散的微观特性,分析箔条云内部的箔条密度分布和箔条姿态的统计分布规律,提出箔条干扰抛撒后姿态的演化模型和位置,得到了箔条抛撒后姿态和位置分布的统计规律,建立箔条运动模型。通过研究对抛洒箔条干扰弹的方向不同时,使

学习

名人广告效果的影响因素及其理论探讨

阅读(22)

本文为您介绍名人广告效果的影响因素及其理论探讨,内容包括名人代言虚假广告事件,名人广告效应与策略。摘要名人广告是通过将产品品牌与名人形象或声誉相联系而期望提升产品附加值的广告,这是现代广告中最为常见的诉求方式之一。现有研究

学习

油罐呼吸阀的选用

阅读(17)

本文为您介绍油罐呼吸阀的选用,内容包括储油罐呼吸阀选型,油罐的呼吸阀操作规程。【摘要】本文简述了呼吸阀的作用和工作原理,重点阐述了根据通过呼吸阀额定通气量的计算和油罐呼吸量的确定来确定所选用的呼吸阀的尺寸和数量。【关键词】

学习

《逃离德黑兰》背后真实的间谍故事

阅读(26)

本文为您介绍《逃离德黑兰》背后真实的间谍故事,内容包括逃离德黑兰的真实历史,逃离德黑兰真实故事。好莱坞明星本・阿弗莱克自导自演的电影《逃离德黑兰》(Argo)获得了奥斯卡最佳影片奖。这部电影讲述了一个看似不可思议的故事:6名美国外

学习

明确受众定位 强化传播效果

阅读(18)

本文为您介绍明确受众定位 强化传播效果,内容包括新闻受众对传播实效的作用,传播受众精准化。从不久前新华社一组“对外宣传有效性调研”课题组的调查结果来看,当前国内外各界认为我国媒体对外传播迫切需要改进的问题突出表现在以下几个

学习

人间世:中国医院里每天都在发生的真实故事

阅读(35)

本文为您介绍人间世:中国医院里每天都在发生的真实故事,内容包括那些病情恶化的感人故事,医院里的令人唏嘘的故事。这是一部隔着荧屏就能嗅到消毒水味道的国产纪录片。它忠实记录了发生在中国医院里医生和病患之间的N个故事,让观众的眼睛

学习

N末端脑钠肽前体在儿童呼吸困难鉴别诊断中的意义

阅读(20)

本文为您介绍N末端脑钠肽前体在儿童呼吸困难鉴别诊断中的意义,内容包括n末端脑钠肽前体低是什么原因,n末端脑钠肽前体的临床意义。【摘要】目的探讨N末端脑钠肽前体(Nt-proBNP)检测在不同原因呼吸困难鉴别诊断中的意义。方法选择呼吸困难