arduino入门很简单(中)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章发光二极管LEDO6.1使用到的专用器件O6.2驱动单个LED程序O6.3驱动LED点阵O6.4使用74HC595驱动LEDO6.5使用MAX7219驱动LEDO6.6RGB三色LEDO6.7七段数码管6.1使用到的专用器件O在本节中只需要使用到一个专用的器件——LED二极管。LED二极管的类型和规格有很多,这里使用的是一个蓝色的5MM发光二极管。6.2驱动单个LED程序O驱动LED的程序非常简单。要持续地点亮一个LED二极管,只需要为LED二极管提供一个额定范围内恒定的电压即可。Arduino开发板的针脚有输入和输出两种模式,将针脚设置为输出模式后就可以做为电源。指定Arduino针脚模式的函数原型如下:OpinMode(pin,mode)6.2.1使用数字针脚点亮LEDO由于数字针脚只能输出高电压和低电压,因此在不借用其他元件的情况下只可以点亮或者熄灭LED。1.电路图2.程序Ointpin=10;//指定LED连接的针脚Ovoidsetup(){OpinMode(pin,OUTPUT);//设置针脚模式为输出OdigitalWrite(pin,HIGH);//设置针脚输出电压O}Ovoidloop(){OO}6.2.2使用模拟针脚点亮LEDO经过前面讲解可以得知,analogWrite()函数可以修改针脚的输出电压(0~5V)。那么,就可以通过为analogWrite()函数传入不同的参数来控制针脚的输出电压,进而就可以控制LED的亮度。6.2.3使用LED发送S.O.S摩尔斯码O摩尔斯电码可以很方便地用来发送英文字母、数字以及部分符号。摩尔斯电码是通过控制电信号的长短来发声信息的。SOS这三个字母的摩尔斯电码表示如下:O···―――···6.2.4使用LED发送摩尔斯电码O从示例6-5中的代码中也可以看出dot()和dash()函数是非常类似的,只是等待的时间不同而已,而这个等待的时间也是以一个基准的时间变量stdd来设置的。那么,我们就可以进一步地将上面这两个个函数用一个函数来实现:Ovoiddot(intledPin,intlen,intstdd){OdigitalWrite(ledPin,HIGH);Odelay(stdd*len);OdigitalWrite(ledPin,LOW);Odelay(stdd*2);O}6.2.5LED跑马灯6.2.6使用LED模拟交通灯6.3驱动LED点阵O6.3.1LED点阵显示表情O6.3.2LED点阵跑马灯O6.3.3回纹灯O6.3.4矩形回缩灯6.3.1LED点阵显示表情6.3.2LED点阵跑马灯O在6.3.5小节中实现了由三个LED组成的简易跑马灯,在本节就在8*8的LED点阵上来实现跑马灯。这个示例的电路不需要改动,我们直接编写对应的程序就可以了。6.3.3回纹灯O回纹表示的是从外圈向中心回旋的方式,在我们将要实现的回纹灯就是使用LED点阵来实现这一描述。回纹灯的实现电路与之前的LED点阵示例接法相同,因此这里只需要重新设计程序即可。6.3.4矩形回缩灯O矩形回缩灯就是从LED点阵最外圈的8*8矩形回缩到最小的2*2的矩形(以8*8点阵为例),以这种形式来展现类似矩形缩放的效果。其电路接法与前面的所有示例相同,因此这里只需要重新编写程序即可。6.4使用74HC595驱动LEDO6.4.174HC595使用方式O6.4.2使用74HC595驱动LED点阵6.4.174HC595使用方式O74HC595是一个CMOS(ComplementaryMetal-Oxide-Semiconductor)器件6.4.2使用74HC595驱动LED点阵6.5使用MAX7219驱动LEDO6.5.1MAX7219LED显示驱动器O6.5.2MAX7219的数据格式O6.5.3MAX7219的寄存器O6.5.4LedControl库O6.5.5Arduino通过MAX7219控制8*8LED点阵O6.5.6MAX7219级联控制8*40LED点阵6.5.1MAX7219LED显示驱动器OMAX7219是小巧但功能强大的串行输入输出共阴极显示驱动器。它非常容易驱动七段LED数码管和LED点阵。6.5.2MAX7219的数据格式OMAX7219的数据是以16位为一个单位的。D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0XXXX寄存器地址数据6.5.3MAX7219的寄存器OMAX7219有14个可编址的寄存器,他们可以通过D11~D8的值来指定。寄存器寄存器地址16进制表示D15~D12D11D10D9D8No-OpX00000xX0Digit0X00010xX1Digit1X00100xX2Digit2X00110xX3Digit3X01000xX4Digit4X01010xX5Digit5X01100xX6Digit6X01110xX7Digit7X10000xX8DecodeModeX10010xX9IntensityX10100xXAScanLimitX10110xXBShutdownX11000xXCDisplayTestX11110xXF6.5.4LedControl库OLedControl函数库是一个可以全面控制MAX7219的一个第三方库,它可以从获取。6.5.5Arduino通过MAX7219控制8*8LED点阵O1.MAX7219控制8*8LED点阵的连接电路O2.Arduino通过MAX7219控制8*8LED的代码实现1.MAX7219控制8*8LED点阵的连接电路2.Arduino通过MAX7219控制8*8LED的代码实现6.5.6MAX7219级联控制8*40LED点阵O所谓级联就是将两个以上的设备通过某种方式连接起来,起到扩容的效果。MAX7219的级联非常容易,只需要将上一级的DOUT作为下一级的DIN,然后共用LOAD和CLK信号。O1.MAX7219级联电路O2.MAX7219级联的控制代码1.MAX7219级联电路2.MAX7219级联的控制代码6.6RGB三色LED6.7七段数码管O七段数码管是常用来显示数字的一类数码管。这类数码管是由多个发光二极管构成的。O6.7.1Arduino直接控制七段数码管O6.7.2Arduino通过74HC595控制一个七段数码管O6.7.3使用两个74HC595驱动4位七段数码管O6.7.4Arduino通过MAX7219控制七段数码管6.7.1Arduino直接控制七段数码管6.7.2Arduino通过74HC595控制一个七段数码管6.7.3使用两个74HC595驱动4位七段数码管O4位七段数码管通过多路复用技术将4个七段数码管封装在一起。6.7.4Arduino通过MAX7219控制七段数码管O1.MAX7219控制七段数码管的连接电路O2.MAX7219控制七段数码管的实现代码1.MAX7219控制七段数码管的连接电路2.MAX7219控制七段数码管的实现代码第7章蜂鸣器O7.1蜂鸣器的工作原理及分类O7.2驱动蜂鸣器程序O7.3蜂鸣器使用实例7.1蜂鸣器的工作原理及分类O蜂鸣器是通过给压电材料供电来发出声音的。压电材料可以随电压和频率的不同产生机械变形,从而产生不同频率的声音。蜂鸣器又分为有源蜂鸣器和无源蜂鸣器两种。7.2驱动蜂鸣器程序O7.2.1驱动有源蜂鸣器O7.2.2驱动无源蜂鸣器7.2.1驱动有源蜂鸣器7.2.2驱动无源蜂鸣器7.3蜂鸣器使用实例O7.3.1使用无源蜂鸣器输出7个基本音级O7.3.2使用无源蜂鸣器演奏音乐O7.3.3使用有源蜂鸣器发送S.O.S摩尔斯码7.3.1使用无源蜂鸣器输出7个基本音级O声音是由物体振动所产生的的。只是由于物体的材料以及振幅、频率不同,而产生不同的声音。声音的响度是由振幅决定的。而音调则是由频率决定的。音阶1(Do)2(Re)3(Mi)4(Fa)5(Sol)6(La)7(Si)频率2622943303493924404947.3.2使用无源蜂鸣器演奏音乐O有了上一个示例中的演奏7个基本音阶的经验后,我们就可以根据乐音知识来简易地演奏一些音乐。这里就以生日歌中的一个片段来进行演示。该示例的元器件接法同示例7-3相同。7.3.3使用有源蜂鸣器发送S.O.S摩尔斯码O使用有源蜂鸣器发送S.O.S莫尔斯码的接法如图7.4相同,读者参照其连接即可。使用有源蜂鸣器发送S.O.S莫尔斯码的程序与使用LED非常类似,只需稍作修改即可。第8章按钮O8.1按钮的作用及分类O8.2按钮的实质O8.3按钮的使用示例8.1按钮的作用及分类O按钮是一种非常常见而且形式多样的控制电器元件。它常用来接通或者断开控制电路。按钮可以分为如下的几种形式:O常开按钮:开关触点在默认状态下是断开的。O常闭按钮:开关触点在默认状态下是接通的。O常开/常闭按钮:在默认状态下有接通和断开的按钮。12348.2按钮的实质O按钮的实质就是用来发送一个电信号(低电平或者高电平),软件可以根据检测到的信号进行相应的操作。要在Arduino上正确地使用按钮,还需要了解两个个重要的概念——上拉电阻和下拉电阻。首先来看一个不使用下拉电阻的电路,它用一个常开按钮控制Arduino的板载LED(名为L)。按钮被按下时LED点亮,松开时熄灭。8.3按钮的使用示例O8.3.1使用按钮控制LED灯O8.3.2使用Arduino的中断O8.3.3按钮矩阵的使用O8.3.4使用按钮矩阵模拟钢琴8.3.1使用按钮控制LED灯8.3.2使用Arduino的中断O中断会在需要的时候向CPU发送请求以通知CPU处理。CPU在接收到中断后会暂停执行当前的任务转而处理中断,处理完成后继续执行之前的任务。而在中断未发送的时间段内,CPU可以执行其他的任务,这明显可以大幅度提高运行效率。OattachInterrupt(interrupt,ISR,mode)OdetachInterrupt(interrupt)8.3.3按钮矩阵的使用O在本小节中使用的是名为Keypad的第三方库。该库可以从下载。8.3.4使用按钮矩阵模拟钢琴第9章电位器O9.1普通电位器O9.2游戏摇杆O9.3使用示例9.1普通电位器O电位器是一种三端元件,它由两个固定端和一个滑动端组成。9.2游戏摇杆O游戏摇杆其实也是一种特殊的电位器。它的X轴和Y轴上分别装有一个电位器。9.3使用示例O9.3.1读取电位器的值O9.3.2使用电位器控制LED亮度O9.3.3使用电位器控制LED流水灯速度O9.3.4游戏摇杆的使用9.3.1读取电位器的值O电位器在旋转(旋转式电位器)和滑动(滑动式电位器)的过程中会将更大或者更小的电阻接入电路,而对应的电压则变小或者变大。通过Arduino的模拟输入端口,可以读取到这个电压,并为其映射一个相应的值。OanalogRead(pin)9.3.2使用电位器控制LED亮度9.3.3使用电位器控制LED流水灯速度9.3.4游戏摇杆的使用O1.获取游戏摇杆的XY轴方向的值O2.使用游戏摇杆控制4个LED1.获取游戏摇杆的XY轴方向的值2.使用游戏摇杆控制4个LED第10章光敏电阻和常见传感器O10.1光敏电阻O10.2火焰传感器O10.3温湿度传感器O10.4红外线收发O10.5液位传感器10.1光敏电阻O10.1.1光敏电阻应用原理O10.1.2光控灯10.1.1光敏电阻应用原理O根据串联电路的电压规律——串联电路的总电压等于各部分电路两端电压之和,也就是说,光敏电阻的阻值越大,则它分到的电压就越多,而总的电压是固定的。那么,其他部分电路的电压就必然会减小。10.1.2光控灯O光敏电阻在日常生活中最常见的一种应用就是声控灯,当然常见的声控灯中还使用到了声音传感器,因此在本小节中就实现一个光控灯。该光

1 / 92
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功