arduino学习之led相关--跑马灯+电位器控制led亮灭
2017-05-21 15:53
656 查看
引子
一直挺喜欢搞点硬件的东西,可是每次都坚持不了多久。不过人总是要寻找写改变的,之前未能坚持下去的不代表现在以及将来不能坚持下去,于是开始新的一波学习之旅。开始
之前本来入了一块开发板(51和单片机都有),最近重拾单片机,顺带入了一块arduino的板子,这两天稍微学了一点便能做出一点自己认为有趣的东西,遂开贴记录之。板子接电并开始第一个测试程序
很简单,1. usb接口插入电脑;
2. 打开arduino.exe;
3. 运行自带的示例程序:文件->示例->01Basics->Blink
示例程序很简单设置13端口为输出,并每隔1s切换亮灭(为什么是13号端口,应该是由于板子默认带了一个led与13号端口相连)。
void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
自己点亮第一个外接led
由于上面的示例代码已经将13号led点亮,及周期的将13号端口电平拉高,只要将13号端口和地直接接入一个led即可。另外由于限流的考虑,需要在led两端串入一个阻值大小合适的电阻。由于13号端口高电压为5v,LED正常工作压降为1.5v,正常工作电力为10mA。可以计算出串入的电阻阻值在350欧姆附件。参考板子配套教程中内容,arduino提供拉电流时是有限值的,一般不会超过20mA,而一般LED的极限电流为30mA,所以即使直接接入也不会引起烧坏,但是出于安全和功耗的考虑仍需要较为精确地计算电阻。
tb店家提供的电阻阻值为330欧姆,没有什么问题。顺便学习了下如何读取电阻的阻值,贴出一张阻值表便可说明一切:(注意依据两侧色环的间距判断哪边为第一段,即最后一段距离前一段的距离较大)
另外附上面包板的使用:百度知道有一篇文章写得挺好http://jingyan.baidu.com/article/851fbc37a8b5053e1f15abb0.html ;其实记住除了两边的用线标出连接的,其余均为纵向连接。
还有led长引脚为正级。
有以上只是,相信自己连线点亮一个led已经不是问题了。
led流水灯 & 电位器控制led亮灭
其实流水灯只是将在一个led灯的基础上加入了多个led灯,并且时序并不相同而已。电位器控制led灯的亮灭,这个其实还是蛮有意思的,通过这个实验可以让我们理解部分通过旋钮控制灯亮度的问题。
电路图绘制使用 Python库SchemDraw,上电路图:
具体使用可以参考:http://blog.csdn.net/skyztttt/article/details/72598851
上代码:
const int ledCount = 8; void setup() { // put your setup code here, to run once: for (int i = 0; i < ledCount; ++i) { pinMode(i, OUTPUT); } } void loop() { // put your main code here, to run repeatedly: int sensorRead = analogRead(A0); // 获取A0端口的模拟量值 int ledLevel = map(sensorRead, 0, 1023, 0, 8); // 进行map转换,教材中说arduino使用10bitADC,最大精度为2^10 即1024,故map函数中范围为0~1023,输出值在0~8之间(这里为什么前面是0~1023包含了1023,而后面却不包含8,需要等后面知识丰富了再考察) for (int i = 0; i < ledCount; ++i) { digitalWrite(i, i < ledLevel ? HIGH : LOW); } }
相关文章推荐
- arduino入门学习实现语音控制LED灯
- Arduino学习笔记一,电位器控制步进电机。
- arduino学习系列——按键控制LED灯
- Arduino学习笔记——按钮控制LED
- 2440裸机学习之——LED灯的控制
- Arduino学习笔记二:修改LED点灯程序
- 树莓派linux驱动学习之LED控制
- arduino 红外遥控器控制LED灯
- Linux之ubuntu学习笔记(二):一些常用快捷键和相关命令来控制系统任务ctr+z,ctr+c,ctrl+d
- arduino 控制led灯亮度强弱变化的经典代码
- App Inventor (4-2)經由藍牙控制 Arduino LED 漸明漸暗
- 嵌入式Linux学习入门:控制LED灯
- ARM嵌入式学习--OK6410裸板程序--2.GPIO控制LED跑马灯(从ARM汇编跳转到C语言)
- arduino学习笔记1 hello world和LED灯的使用
- 2.5 使用ARDUINO做主控,手机发送短信控制开关LED
- arduino 学习相关网址
- JQuery学习之控制相关控件的隐藏
- Linux学习记录--进程控制相关系统调用
- 用C#控制TQ2440开发板上的LED小灯(C# GPIO学习笔记)
- 树莓派学习笔记——yeelink 远程控制LED