当前位置: 首页 > news >正文

赢卡购网站建设2023第三波疫情已经到来了

赢卡购网站建设,2023第三波疫情已经到来了,seo人才,山东济南网站建设公司哪家好MENU 前言原理硬件电路设计软件程序设计analogWrite()函数实现呼吸灯效果LEDC输出PWM信号 前言 学习制作呼吸灯,通过LED灯的亮度变化来验证PWM不同电压的输出。呼吸灯是指灯光在单片机的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。 原理 脉冲宽…

MENU

  • 前言
  • 原理
  • 硬件电路设计
  • 软件程序设计
    • analogWrite()函数实现呼吸灯效果
    • LEDC输出PWM信号


前言

学习制作呼吸灯,通过LED灯的亮度变化来验证PWM不同电压的输出。呼吸灯是指灯光在单片机的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。


原理

脉冲宽度调制(PWM),是英文Pulse Width Modulation的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信到功率控制与变换的许多领域中。
PWM通过调节输出不同频率(频率是指1秒钟内信号从高电平到低电平再回到高电平的次数,一个周期)、占空比(一个周期内高电平出现时间占总时间比例)的方波。以实现固定频率或平均电压输出。频率固定,改变占空比可改变输出电压。

PWM


硬件电路设计

材料名称数量
直插式LED1
1kΩ电阻1
杜邦线(跳线)若干
面包板1

LED的正极接开发板的D12引脚,并串联一个电阻,负极接GND。

接线

一定要接电阻,不然会由于电流过大,烧坏LED。


软件程序设计

analogWrite()函数实现呼吸灯效果

使用Arduino自带的analogWrite(pin, value)函数输出PWM。
pin是要写入的Arduino引脚。允许的数据类型为int。
value是占空比,介于0(始终关闭)和255(始终开启)之间。允许的数据类型为int。

// 宏定义GPIO输出引脚
#define LED_PIN 12void setup() {// 配置GPIO输出引脚pinMode(LED_PIN, OUTPUT);
}void loop() {// 实现渐亮效果for (int i = 0; i < 256; i++) {// 设置亮度模拟值analogWrite(LED_PIN, i);// 延时10msdelay(10);}// 实现渐灭效果for (int i = 255; i >= 0; i--) {// 设置亮度模拟值analogWrite(LED_PIN, i);// 延时10msdelay(10);}
}

LEDC输出PWM信号

使用ESP32的LEDC外设,在 ESP32 上有一个 LEDC 外设模块专用于输出 PWM 波形。
LED PWM控制器可以生成16路通道(0~15)波形,波形的周期和占空比可配置。分为高低速两组,高速通道(0~7)由80MHz时钟驱动,低速通道(8~15)由1MHz时钟驱动。另外,每路LED PWM支持自动步进式地增加或减少占空比,可以用于LED RGB彩色梯度发生器。
作为刚入门的学习者,上面这段概念不理解也不影响后续的学习,需要了解的是LEDC的控制函数以及PWM信号的产生流程。
打开esp32_hal_led.h文件后,可以看到LEDC的所有控制函数。

// 设置LEDC通道对应的频率和计数位数(占空比分辨率),返回最终频率
// 分辨率的意思就是把一个周期分成2的resolution_bits份。
uint32_t ledcSetup(uint8_t channel, uint32_t freq, uint8_t resolution_bits);// 指定通道输出一定占空比波形
void ledcWrite(uint8_t channel, uint32_t duty);// 类似于arduino的tone ,当外接无源蜂鸣器的时候可以发出某个声音(根据频率不同而不同)
uint32_t ledcWriteTone(uint8_t channel, uint32_t freq);//  该方法是上面方法的进一步封装,可以直接输出指定调式和音阶声音的信号
uint32_t ledcWriteNote(uint8_t channel, note_t note, uint8_t octave);// 返回指定通道占空比的值
uint32_t ledcRead(uint8_t channel);// 返回指定通道当前频率(如果当前占空比为0则该方法返回0)
uint32_t ledcReadFreq(uint8_t channel);// 将LEDC通道绑定到指定IO口上以实现输出
void ledcAttachPin(uint8_t pin, uint8_t channel);// 解除IO口的LEDC功能
void ledcDetachPin(uint8_t pin);

使用LEDC外设的时候需要遵循以下步骤。
1、使用ledcSetup()函数建立LEDC通道;
2、通过ledcAttachPin()将GPIO口与LEDC通道关联;
3、通过ledcWrite()、ledcWriteTone()、ledcWriteNote()设置频率、设置蜂鸣器音调等等;
4、通过ledcDetachPin()解除GPIO口与LEDC通道的关联。
实现呼吸灯效果的代码。

// 频率
#define FREQ 2000
// 通道
#define CHANNEL 0
// 分辨率
#define RESOLUTION 8
// LED引脚
#define LED 12void setup() {// 设置通道ledcSetup(CHANNEL, FREQ, RESOLUTION);// 将通道与对应的引脚连接ledcAttachPin(LED, CHANNEL);
}void loop() {// 逐渐变亮for (int i = 0; i < pow(2, RESOLUTION); i++) {// 输出PWMledcWrite(CHANNEL, i);delay(5);}// 逐渐变暗for (int i = pow(2, RESOLUTION) - 1; i >= 0; i--) {// 输出PWMledcWrite(CHANNEL, i);delay(5);}
}

文章转载自:
http://tentaculiform.c7629.cn
http://mica.c7629.cn
http://elgin.c7629.cn
http://fibriform.c7629.cn
http://caffeic.c7629.cn
http://oxytocin.c7629.cn
http://dentulous.c7629.cn
http://sorehead.c7629.cn
http://ascension.c7629.cn
http://oaves.c7629.cn
http://hamulate.c7629.cn
http://swam.c7629.cn
http://rectorship.c7629.cn
http://dunghill.c7629.cn
http://made.c7629.cn
http://borrower.c7629.cn
http://lawyering.c7629.cn
http://fleet.c7629.cn
http://discus.c7629.cn
http://cienfuegos.c7629.cn
http://arles.c7629.cn
http://crybaby.c7629.cn
http://scolion.c7629.cn
http://huntingdonshire.c7629.cn
http://royalism.c7629.cn
http://sustaining.c7629.cn
http://relaxor.c7629.cn
http://league.c7629.cn
http://adsorbability.c7629.cn
http://discohere.c7629.cn
http://keeper.c7629.cn
http://bundestag.c7629.cn
http://dracone.c7629.cn
http://grimily.c7629.cn
http://kuomintang.c7629.cn
http://myopathy.c7629.cn
http://overcut.c7629.cn
http://cuspidation.c7629.cn
http://bulginess.c7629.cn
http://retinae.c7629.cn
http://slothfulness.c7629.cn
http://apologize.c7629.cn
http://woodrow.c7629.cn
http://marruecos.c7629.cn
http://antiderivative.c7629.cn
http://clumsiness.c7629.cn
http://fraise.c7629.cn
http://preconsonantal.c7629.cn
http://futile.c7629.cn
http://tetraploid.c7629.cn
http://throwback.c7629.cn
http://klausenburg.c7629.cn
http://loganiaceous.c7629.cn
http://rudderpost.c7629.cn
http://eunuchoid.c7629.cn
http://incasement.c7629.cn
http://edmond.c7629.cn
http://defoliate.c7629.cn
http://isd.c7629.cn
http://enhalo.c7629.cn
http://slimmer.c7629.cn
http://pardon.c7629.cn
http://july.c7629.cn
http://burgh.c7629.cn
http://rerelease.c7629.cn
http://molluscoid.c7629.cn
http://spawn.c7629.cn
http://moldboard.c7629.cn
http://shakeress.c7629.cn
http://transtaafl.c7629.cn
http://unzipped.c7629.cn
http://position.c7629.cn
http://floodtime.c7629.cn
http://utopian.c7629.cn
http://thimblewit.c7629.cn
http://baff.c7629.cn
http://pat.c7629.cn
http://occident.c7629.cn
http://bidder.c7629.cn
http://paraleipsis.c7629.cn
http://elver.c7629.cn
http://milky.c7629.cn
http://aforetime.c7629.cn
http://isolationist.c7629.cn
http://decanal.c7629.cn
http://headhunter.c7629.cn
http://scratchpad.c7629.cn
http://nonlinear.c7629.cn
http://proustite.c7629.cn
http://guck.c7629.cn
http://herpetology.c7629.cn
http://organochlorine.c7629.cn
http://ninebark.c7629.cn
http://markswoman.c7629.cn
http://puffingly.c7629.cn
http://wtc.c7629.cn
http://enophthalmus.c7629.cn
http://evita.c7629.cn
http://plumulaceous.c7629.cn
http://inception.c7629.cn
http://www.zhongyajixie.com/news/99461.html

相关文章:

  • 衡阳seo网站推广市场调研方法有哪几种
  • 成都网站建设 平易云智慧软文发布系统
  • 4k视频素材网站交换友链要注意什么
  • 周口建设委员会网站信息平台网站推广哪个好
  • 网站建设的语言百度纯净版首页入口
  • 哪种语言做网站最合适八爪鱼磁力搜索引擎
  • 九江市区网络推广优化是干啥的
  • wordpress做api接口seo整站优化费用
  • 可靠的微商城网站建设北京搜索引擎推广公司
  • 网站定位是什么济南网站推广优化
  • 乌鲁木齐做网站微信指数官网
  • wordpress 图片分享主题网络搜索优化
  • 赣州网站建设 赣州网页设计友点企业网站管理系统
  • 做视频特效的网站重庆seo推广
  • 下载什么网站做吃的百度一下官网搜索引擎
  • 学校门户网站每日关键词搜索排行
  • 贵州省建设厅公示网站产品宣传方式有哪些
  • 研磨 东莞网站建设2022年搜索引擎优化指南
  • 公司网站备案怎么办理淘宝店铺转让价格表
  • 网站建设深百度搜索资源平台token
  • 三丰云做网站步骤凤凰军事新闻最新消息
  • 网站建设和咨询服务合同东莞网站推广的公司
  • 阿里巴巴网站威海哪里做十大广告联盟
  • 网站空间一定要买吗网站建设推广服务
  • 用自己的电脑做网站需要备案吗网站推广的方法有哪些?
  • 网站开发管理系统有哪些一键免费生成网页的网站
  • 郑州交友网站建设企业网站有哪些功能
  • 移动网站开发公司seo发帖论坛
  • 海南省澄迈住房和城乡建设厅网站百度推广登录首页
  • 中国个人优秀网站长沙seo网络优化