摘要:开关旋钮电位器的实验视频已经购买开发版的同学开始上课来一场紧张刺激的之旅吧前言开发工具的下载安装使用都很简单我这里就不赘述了附上官方的说明跟着步骤来十分钟搞定相关连接下载官方为什么成为开发函数
开关+led+旋钮电位器的实验视频
已经购买Arduino开发版的同学,开始上课~来一场紧张刺激的hello Arduino之旅吧~
开发工具的下载,安装,使用都很简单,我这里就不赘述了,附上官方的说明,跟着步骤来,十分钟搞定~
通过开关,来控制整体的通电功能
通过旋钮电位器实现灯的亮度
开关灯的时候,使用呼吸的方式
开关灯的时候,根据旋钮电位器当前的位置来决定最高亮度
异步做开关监听
开灯关灯无异常
本实验中,对开关没有使用电阻,而是采用的高拉电阻的方式.通过这种方式,并且采用死循环卡点方式,实现类似于监听开关按钮的能力.
普通电阻功能: 当开关不按下去的时候,开关处于低电荷情况,按下去时,处于高电荷.
不带电阻功能: 开关不管是否按下去,都处于不稳定电荷状态.
高拉电阻功能: 开关不按下去,开关稳定处于高电荷位,按下去后,使之变为高电荷位.
末尾白色led灯为rgb三色灯,放在4号引脚,4号引脚没有pwm功能,不支持呼吸.黄色5号引脚,红色9号引脚,绿色10号引脚.
提供PWM功能的引脚为3、5、6、9、10、11。 亮度取值范围0~255
白色灯自由闪烁,不做特殊处理,黄色,红色,绿色灯使用pwm功能,让亮度产生一个渐变过程,从而达到类似于呼吸的功能.
通过读取旋钮电位器的阻值,通过比例转换为亮度.然后对led灯做修改亮度操作,达到旋钮控制亮度的功能.
Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1023的整数形式表示。
/* * 开关控制灯 开和关 * * 通过旋钮电位器来控制灯的亮度. * * 通过呼吸的方式将灯缓慢开启 和 缓慢关闭. * */// 设置各引脚别名const int buttonPin = 2; // 连接按键的引脚const int ledPin[3] = {6,9,10}; // 连接LED 具有 PWM功能的引脚 const int ledPin2 = 4; // 白色rgb三色闪烁ledconst int pot=A0; //旋钮电位器引脚int fadeValueMax = 255; //最大亮度// 变量定义//int buttonState = 0; // 存储按键状态的变量boolean ledState=false; // 记录LED状态boolean buttonState=true; // 记录按键状态/** * 程序执行之前都会先执行该方法 */void setup() { // 初始化LED引脚为输出状态 for(int i=0; i<3; i++){ pinMode(ledPin[i], OUTPUT); } pinMode(ledPin2, OUTPUT); // 监听9600 串口 Serial.begin(9600); // 初始化按键引脚为输入状态 pinMode(buttonPin, INPUT_PULLUP); }/** * 程序会一直循环的调用该方法 */void loop(){ //按照比例计算当前的最大亮度 fadeValueMax = analogRead(pot)/4; //如果当前按钮处于高电荷状态,就一直循环该方法,实现类似于监听功能 while(digitalRead(buttonPin)==HIGH){ if(ledState){ //如果当前led处于开启状态,让旋钮电位器控制led的亮度 int fadeValue = analogRead(pot)/4; analogWrite(ledPin[0], fadeValue); analogWrite(ledPin[1], fadeValue); analogWrite(ledPin[2], fadeValue); Serial.println(fadeValue); //稍稍停一下,防止太快发生意想不到的问题 delay(50); } } // 当按键按下时,点亮或熄灭LED if(ledState==true){ //如果当前处于亮灯状态,就让所有设备处于低电荷状态 digitalWrite(ledPin2,LOW); delay(1000);// digitalWrite(ledPin[0],LOW); //呼吸的方式关闭led灯 int i = fadeValueMax; do{ analogWrite(ledPin[0], i); i= i - 5; delay(30); }while(i>=0); delay(1000);// digitalWrite(ledPin[1],LOW); i = fadeValueMax; do{ analogWrite(ledPin[1], i); i= i - 5; delay(30); }while(i>=0); delay(1000);// digitalWrite(ledPin[2],LOW); i = fadeValueMax; do{ analogWrite(ledPin[2], i); i= i - 5; delay(30); }while(i>=0); delay(1000); //状态取反 ledState=!ledState; } else { //如果当前是关闭状态,就让所有设备处于高电荷状态 // digitalWrite(ledPin[2],HIGH); //呼吸的方式缓慢开启led灯 int i = 5; while(i<=fadeValueMax){ analogWrite(ledPin[2], i); i= i+ 5; delay(30); } delay(30);// digitalWrite(ledPin[1],HIGH); i = 0; while(i<=fadeValueMax){ analogWrite(ledPin[1], i); i= i+ 5; delay(30); } delay(30); digitalWrite(ledPin[0],HIGH); i = 0; while(i<=fadeValueMax){ analogWrite(ledPin[0], i); i= i+ 5; delay(30); } delay(1000); digitalWrite(ledPin2,HIGH);//// i = 0;// analogWrite(ledPin2, i);// while(i<255){// i+=5;// delay(30);// } delay(1000); //状态取反 ledState=!ledState; } delay(500);}
光说不练假把式,记得练习哦~
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119227.html
摘要:写一个正则表达式来测试变量中是否包含字符串。用函数给出不使用字符,但和等价的正则表达式。第十四课标志全局匹配标志第二个常用的标志是全局匹配标志,用字母表示。写出一个正则表达式来检验合法性。非捕获组的主要用途是给一个组赋予量词。 TRY REGEX 是一个交互式的正则表达式学习项目项目地址:https://github.com/callumacra...在线地址:http://tryre...
摘要:之前写了一个电商爬虫系列的文章,简单的给大家展示了一下爬虫从入门到进阶的路径,但是作为一个永远走在时代前沿的科技工作者,我们从来都不能停止。金融数据实在是价值大,维度多,来源广。由于也是一种,因此通常来说,在中抽取某个元素是通过来做的。 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战...
摘要:之前写了一个电商爬虫系列的文章,简单的给大家展示了一下爬虫从入门到进阶的路径,但是作为一个永远走在时代前沿的科技工作者,我们从来都不能停止。金融数据实在是价值大,维度多,来源广。由于也是一种,因此通常来说,在中抽取某个元素是通过来做的。 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战...
摘要:通知由于本周六场地申请没通过,所以本周的培训临时取消。下载后直接双击该文件,进入下一步,下一步,一切按照默认走。注意,如果输入出现不是命令的错误,请把的目录加入环境变量比如 通知:由于本周六场地申请没通过,所以本周的培训临时取消。 今天给大家带来的是Android入门的第一课,由于教室申请的不确定性,因此,每次培训的内容都会在博客先提前释放出来。首先Android的APP是基于Java...
阅读 3076·2021-10-13 09:40
阅读 3901·2021-09-22 15:51
阅读 1470·2021-09-22 15:48
阅读 1035·2021-09-06 15:00
阅读 1776·2019-08-30 15:43
阅读 2339·2019-08-29 18:35
阅读 1636·2019-08-29 16:18
阅读 3578·2019-08-29 12:49