实验器材
af0934944994470893081c8510f97c45.png | fd2833d804024a5bbbd4769021ce6891.png | 5828c9873dae43709c1941a23d18eb75.png | c1c5fbc4321342d093a4d077ab856fe9.png | b8e380bce4e0457e9c6ac7115f1651bf.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 130电机模块*1 | 4P XH-2.54mm 黑红蓝黄硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
实验中,先在我们导入的库 sensor下的数字输出单元找到130电机即风扇模块我们这里电机IN+接模拟口A0,IN-接模拟口A1
,所以我们把管脚INA设置为A0,INB设置为A1,INA设置为高且INB设置为低时(A0~A7模拟口也可做数字口用),模块上电机逆时针旋转;INA设置为低且INB设置为高时,模块上电机顺时针旋转;INA设置为低且INB设置为低时,模块上电机停止转动。
测试结果
烧录好测试代码,按照接线图连接好线;上电后,风扇逆时针转动2秒;停止2秒;顺时针转动2秒;停止2秒;循环交替。
实验十六 插件RGB模块调节LED颜色
实验说明
在这个套件中,有一个 DIY电子积木 共阴RGB模块,它采用F10-全彩RGB雾状共阴LED元件。控制时,我们需要将模块R G B连接单片机PWM口,剩下那个管脚接GND(共阳RGB的话剩下那个管脚接VCC)。那么什么是PWM呢?PWM是使用数字手段来控制模拟输出的一种手段。使用数字控制产生占空比不同的方波(一个不停在高电平与低电平之间切换的信号)来控制模拟输出。一般来说端口的输入电压只有两个0V与5V,也就是低电平和高电平。如果想要改变灯的亮度怎么办呢个?有同学说串联电阻,对,这个方法是正确的。但是,如果想要得到不同的亮度,且在不同亮度之间来回变动怎么办呢?不可能不停地切换电阻吧。这种情况下就需要使用PWM了,那它是怎么控制的呢?
对于Arduino的数字端口电压输出只有LOW与HIGH两个,对应的就是0V与5V的电压输出,可以把LOW定义为0,HIGH定义为1,1秒内让Arduino输出500个0或者1的信号。如果这500个全部为1,那就是完整的5V,如果全部为0,那就是0V。如果010101010101这样输出,刚好一半,端口输出的平均电压就为2.5V了。这个和放映电影是一个道理,咱们所看的电影并不是完全连续的,它其实是每秒输出25张图片。在这种情况下,人的肉眼是分辨不出来的,看上去就是连续的了。PWM也是同样的道理,如果想要不同的电压,就控制0与1的输出比例控制就可以了。当然这和真实的连续输出还是有差别的,单位时间内输出的0,1信号越多,控制的就越精确。
实验中,我们通过测试代码,控制模块上RGB LED显示几个常用颜色。
实验原理
那么我们这个实验就是要通过调节3个PWM值,控制LED元件显示红光、绿光和蓝光的比例,从而控制RGB模块上LED显示不同颜色灯光。当设置的PWM值越大,对应显示的颜色比例越重。理论上来说,通过调节这3中颜色光的混合比例,可以模拟出所有颜色的灯光。
eafca12aa50d4e30ae7d1a32f8cc56ca.png |
实验器材
df577f5ff7e04464af27cf325b079446.png | 61c2a355f432425286f38e12d8ce3bdd.png | 2dd3348a93d242b6bd28ed8620a47ad9.png | 3cfafbec6c7249158b43afc0e2c875e8.png | 688d7499dfcb4eb3ae605a9bcdbf3fbb.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 共阴RGB模块*1 | 4P XH-2.54mm 黑红蓝黄硅胶线*1 | USB线*1 |
接线图
测试代码
代码1:
代码2:
代码说明
代码1说明:
- 在我们导入的库 sensor下的数字输出单元找到共阴RGB模块
我们这里R接数字口9,G接数字口10,B接数字口11,所以我们将管脚设置为。
,其中R G B代表控制模块上 LED对应的红绿蓝3种颜色对应的端口,根据接线图我们接到了D9 D10 D11,设置为9 10 11,后面设置对应高低,设置RGB LED中红绿蓝3个灯是否会亮,设置为高(共阴RGB对应数字口为高电平,共阳则相反),对应的颜色就亮。
- 现在观察代码,这个代码非常简单,只是简单的控制模块上RGB LED显示红色1秒、 绿色1秒、蓝色1秒,循环交替。
代码2说明:
同样在我们导入的库 sensor下的数字输出单元找到共阴RGB模块我们这里R接数字口9,G接数字口10,B接数字口11,所以我们将管脚设置为
。后面设置数据代表设置模块上LED 红绿蓝颜色的比例,设置的数据越大(对应的PWM值越大),设置该颜色的比例越大。
2.实验中我们通过参考下方常用RGB颜色表设置对应数值,调节RGB LED上红绿蓝颜色比例,从而控制RGB LED显示对应颜色。
常用RGB颜色表
R | G | B | R | G | B | R | G | B | |||
黑色 | 0 | 0 | 0 | 黄色 | 255 | 255 | 0 | 浅灰蓝色 | 176 | 224 | 230 |
象牙黑 | 41 | 36 | 33 | 香蕉色 | 227 | 207 | 87 | 品蓝 | 65 | 105 | 225 |
灰色 | 192 | 192 | 192 | 镉黄 | 255 | 153 | 18 | 石板蓝 | 106 | 90 | 205 |
冷灰 | 128 | 138 | 135 | dougello | 235 | 137 | 85 | 天蓝 | 135 | 206 | 235 |
石板灰 | 112 | 128 | 105 | forum gold | 255 | 227 | 132 | ||||
暖灰色 | 128 | 128 | 105 | 金黄色 | 255 | 215 | 0 | 青色 | 0 | 255 | 255 |
黄花色 | 218 | 165 | 105 | 绿土 | 56 | 94 | 15 | ||||
白色 | 255 | 255 | 255 | 瓜色 | 227 | 168 | 105 | 靛青 | 8 | 46 | 84 |
古董白 | 250 | 235 | 215 | 橙色 | 255 | 97 | 0 | 碧绿色 | 127 | 255 | 212 |
天蓝色 | 240 | 255 | 255 | 镉橙 | 255 | 97 | 3 | 青绿色 | 64 | 224 | 208 |
白烟 | 245 | 245 | 245 | 胡萝卜色 | 237 | 145 | 33 | 绿色 | 0 | 255 | 0 |
白杏仁 | 255 | 235 | 205 | 桔黄 | 255 | 128 | 0 | 黄绿色 | 127 | 255 | 0 |
cornsilk | 255 | 248 | 220 | 淡黄色 | 245 | 222 | 179 | 钴绿色 | 61 | 145 | 64 |
蛋壳色 | 252 | 230 | 201 | 翠绿色 | 0 | 201 | 87 | ||||
花白 | 255 | 250 | 240 | 棕色 | 128 | 37 | 37 | 森林绿 | 34 | 139 | 34 |
gainsboro | 220 | 220 | 220 | 米色 | 163 | 148 | 128 | 草地绿 | 124 | 252 | 0 |
ghostWhite | 248 | 248 | 255 | 锻浓黄土色 | 138 | 54 | 15 | 酸橙绿 | 50 | 205 | 50 |
蜜露橙 | 240 | 255 | 240 | 锻棕土色 | 135 | 51 | 36 | 薄荷色 | 189 | 252 | 201 |
象牙白 | 250 | 255 | 240 | 巧克力色 | 210 | 105 | 30 | 草绿色 | 107 | 137 | 35 |
亚麻色 | 250 | 240 | 230 | 肉色 | 255 | 125 | 64 | 暗绿色 | 48 | 128 | 20 |
navajoWhite | 255 | 222 | 173 | 黄褐色 | 240 | 230 | 140 | 海绿色 | 46 | 139 | 87 |
old lace | 253 | 245 | 230 | 玫瑰红 | 188 | 143 | 143 | 嫩绿色 | 0 | 255 | 127 |
海贝壳色 | 255 | 245 | 238 | 肖贡土色 | 199 | 97 | 20 | ||||
雪白 | 255 | 250 | 250 | 标土棕 | 115 | 74 | 18 | 紫色 | 160 | 32 | 240 |
乌贼墨棕 | 94 | 38 | 18 | 紫罗蓝色 | 138 | 43 | 226 | ||||
红色 | 255 | 0 | 0 | 赫色 | 160 | 82 | 45 | jasoa | 160 | 102 | 211 |
砖红 | 156 | 102 | 31 | 马棕色 | 139 | 69 | 19 | 湖紫色 | 153 | 51 | 250 |
镉红 | 227 | 23 | 13 | 沙棕色 | 244 | 164 | 96 | 淡紫色 | 218 | 112 | 214 |
珊瑚色 | 255 | 127 | 80 | 棕褐色 | 210 | 180 | 140 | 梅红色 | 221 | 160 | 221 |
耐火砖红 | 178 | 34 | 34 | ||||||||
印度红 | 176 | 23 | 31 | 蓝色 | 0 | 0 | 255 | ||||
栗色 | 176 | 48 | 96 | 钴色 | 61 | 89 | 171 | ||||
粉红 | 255 | 192 | 203 | dodger blue | 30 | 144 | 255 | ||||
草莓色 | 135 | 38 | 87 | jackie blue | 11 | 23 | 70 | ||||
橙红色 | 250 | 128 | 114 | 锰蓝 | 3 | 168 | 158 | ||||
蕃茄红 | 255 | 99 | 71 | 深蓝色 | 25 | 25 | 112 | ||||
桔红 | 255 | 69 | 0 | 孔雀蓝 | 51 | 161 | 201 | ||||
深红色 | 255 | 0 | 255 | 土耳其玉色 | 0 | 199 | 140 |
测试结果
上传测试代码1成功,上电后,模块上RGB LED循环显示红绿蓝3种颜色,间隔时间为1秒。上传测试代码2成功,上电后,模块上RGB LED显示红橙黄绿蓝青紫白7种颜色,循环不止,间隔时间为1秒。
实验十七 旋转电位器传感器读取模拟值
实验说明
前面我们学习过的传感器,都是数字传感器,在这个套件中,有一个 DIY电子积木 旋转电位器传感器,它与我们前面学到的传感器不同,它是一个模拟传感器,意思是例如我们前面学习的按键模块,当按键没有按下去时,我们读取到高电平(5V),当按键按下去时,我们读取到低电平(0V),而在05V中间的电压值,我们数字IO口无法读取到,当然按键模块也只能输出高低电平。而模拟传感器就可以通过我们plus板上的模拟口(A0A7)读取。
实验中,我们利用这个模块测试对应的模拟值;并且,我们在串口监视器上显示测试结果。
实验原理
我们学过滑动变阻器的就很好理解,随着滑动变阻器上的滑片移动,滑片上的电压随着改变。我们的旋转电位器原理也是如此,它主要采用一个10K可调电阻。通过旋转电位器,我们可以改变电阻大小,信号端S检测到电压变化(05V),而这个电压变化是一个连续变化的模拟量,也就是在05V内可以取任意值,我们必须先对这个模拟量进行ADC采集,来测量连续的这些模拟量,A/D 是模拟量到数字量的转换,依靠的是模数转换器(Analog to Digital Converter),简称ADC。我们的plus开发板已经集成了ADC采集,我们直接使用就可以。
我们plus开发板与UNO开发板的ADC位数都是10位,一个 n 位的 ADC 表示这个 ADC 共有 2 的 n 次方个刻度。10 位的 ADC,输出的是从 0~1023 一共 1024 个数字量,也就是 2 的 10 次方个数据刻度,那么每个刻度就是5V/1024=0.0049V,这个也叫分辨率。
实验器材
d0803225e4df478984ac5ac1ddffcc13.png | 78a7e2cb9e6c4353a1131e3978355e33.png | 6278571e4a264c0298e3846d695e81d9.png | 9be15ffb6b75482092d11ccba5e873bb.png | a84db4b632044cfcb17cc91e8d328ad6.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 旋转电位器传感器*1 | 3P XH-2.54mm 黑红蓝硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
- 在实验中,我们需要像前面学习的一样,创建一个整数变量item。
-
我初始化波特率设置,事实上我们这里不用手动初始化波特率也是可以的,当我们使用到串口打印时,代码块已经自动设置了。
-
在我们导入的库 sensor下的“模拟输入”单元找到旋转电位器模块
我们这里管脚接模拟口A0,所以我们不用更改。
-
读取的模拟值赋给变量item,串口监视器显示item的值,(我们默认设置为9600,可更改)。
-
延时100ms
测试结果
上传测试代码成功,利用USB线上电后,打开串口监视器,设置波特率为9600。串口监视器显示对应模拟值。实验中,顺时针旋转电位器,模拟值增大,逆时针旋转电位器,模拟值减小,范围为0-1023,如下图。
实验十八水滴水蒸气传感器
实验说明
这是一个 DIY电子积木 水滴传感器。它是一个模拟(数字)输入模块,也叫雨水、雨量传感器。可用于各种天气状况的监测,检测是否下雨及雨量的大小,转成数字信号(DO)和模拟信号(AO)输出,并广泛应用于Arduino 机器人套件,雨滴,下雨传感器,可用于各种天气状况的监测,并转成数定信号和 AO 输出,也可用于汽车自动刮水系统、智能灯光系统和智能天窗系统等。
实验中,我们将传感器信号端(S端)输入到plus 开发板的模拟口,感知模拟值的变化,并在串口监视器上显示出对应的模拟值。
实验原理
它的原理是通过电路板上裸露的印刷平行线检测水量的大小。水量越多,就会有更多的导线被联通,随着导电的接触面积增大,2脚输出的电压就会逐步上升。信号端S检测的模拟值就越大。除了可以检测水量的大小,它还可以检测空气中的水蒸气。传感器自带2个直径为4.8mm的定位孔,方便你将传感器固定在其他设备。
实验器材
90d958f16170487ab24856bba74d33dc.png | 4409d8d8ed4a4218bcf577792038e033.png | e65e2340d4ed4a3f9c59671120b372d3.png | c522f7e938fd4094a75c313071a7948d.png | ca18cee530ae4e5da20a2fd1475dfdac.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 水滴传感器*1 | 3P XH-2.54mm 黑红蓝硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
- 在实验中,我们需要像前面学习的一样,创建一个整数变量item。
-
我初始化波特率设置,事实上我们这里不用手动初始化波特率也是可以的,当我们使用到串口打印时,代码块已经自动设置了。
-
在我们导入的库 sensor下的“模拟输入”单元找到水蒸气传感器模块
我们这里管脚接模拟口A0,所以我们不用更改。
-
读取的模拟值赋给变量item,串口监视器显示item的值,(我们默认设置为9600,可更改)。
-
延时100ms
测试结果
烧录好测试代码,按照接线图连接好线;利用USB接口上电后,进入串口监视器,设置波特率为9600。当水蒸气传感器上检测到水分时,输出的模拟值在串口监视器显示出来,水分越多,模拟值越大,如下图。
实验十九 声音传感器检测声量
实验说明
在这个套件中,有一个 DIY电子积木 声音传感器,实验中,我们利用这个传感器测试当前环境中的声音大小对应的模拟值,声音越大,模拟值越大;并且,我们在串口监视器上显示测试结果。
实验原理
它主要采用一个高感度麦克风元件和LM386芯片。高感度麦克风元件用于检测外界的声音。利用LM386芯片搭建合适的电路,我们对高感度麦克风检测到的声音进行放大,最大倍数为200倍。使用时我们可以通过旋转传感器上电位器,调节声音的放大倍数。调节时,顺时针调节电位器到尽头,放大倍数最大。
实验器材
b3f4961d9feb4770b4a47141cd41a185.png | 9b22f2f156db457e9d3d24105b41a81b.png | 4d31deef5d924d9f891905bd837ca6e0.png | 66e8579baa5c46ccbde4dcbb8b84fbec.png | 4a2c73f571064def917312a210507fb9.png | |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 声音传感器*1 | 3P XH-2.54mm 黑红蓝硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
- 在实验中,我们需要像前面学习的一样,创建一个整数变量item。
2 在我们导入的库 sensor下的“模拟输入”单元找到声音传感器模块我们这里管脚接模拟口A0,所以我们不用更改。
- 读取的模拟值赋给变量item,串口监视器显示item的值,(我们默认设置为9600,可更改)。
测试结果
上传测试代码成功,利用USB线上电后,打开串口监视器,设置波特率为9600。串口监视器显示对应模拟值。实验中,我们顺时针旋转电位器和对准MIC头大声说话,可以看到模拟值数据变大,如下图。
实验二十 光敏电阻传感器
实验说明
在这个套件中,有一个 DIY电子积木 光敏电阻传感器,这是一个常用的光敏电阻传感器,它主要采用光敏电阻元件。该电阻元件电阻大小随着光照强度的变化而变化,该传感器就是利用光敏电阻元件这一特性,搭建电路将电阻变化转换为电压变化。光敏电阻传感器可以模拟人对环境光线的强度的判断,从而方便做出与人友好互动的应用。
接线时,我们将传感器信号端(S端)输入到arduino系列单片机的模拟口,感知模拟值的变化,并在串口监视器上显示出对应的模拟值。
实验原理
当没有亮光时,电阻大小为0.2MΩ,信号端(2点)检测的电压接近0,当随着光照抢度增大,光线传感器的电阻值越来越小,所以信号端检测的电压越来越小。
实验器材
43053a84ccfa494f913f516a7f9ca93b.png | 191434bfcdb645a197b8573e967ff519.png | 1533d2e0af7b482caab70cb14849bb6c.png | 84de8454f51f488a84a97040e9090654.png | 1d98b103ab894848a181eb39213e3a98.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 光敏电阻传感器*1 | 3P XH-2.54mm 黑红蓝硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
- 在实验中,我们需要像前面学习的一样,创建一个整数变量item。
2 在我们导入的库 sensor下的“模拟输入”单元找到光敏电阻传感器模块我们这里管脚接模拟口A0,所以我们不用更改。
- 读取的模拟值赋给变量item,串口监视器显示item的值,(我们默认设置为9600,可更改)。
测试结果
烧录好测试代码,按照接线图连接好线,利用USB线上电后,打开软件串口监视器,设置波特率为9600,我们可以看到对应光照强度的模拟值,光照越强,模拟值越大,如下图。
实验二十一 NTC-MF52AT模拟温度传感器
实验说明
在这个套件中,有一个 DIY电子积木 NTC-MF52AT模拟温度传感器,它的原理像光敏电阻传感器,只是感应的器件不同,实验中,我们将传感器信号端接到 Uno Plus 开发板模拟口,读出对应的模拟值。我们可以利用模拟值,通过特定公式,计算出当前环境的温度。由于温度计算公式比较复杂,这里就不多介绍了。实验中,我们只是读取对应的模拟值。
实验原理
这个模块主要采用NTC-MF52AT热敏电阻元件。NTC-MF52AT热敏电阻元件能够时感知周边环境温度的变化,电阻大小随着温度的变化而变化,从而引起信号端S的电压变化。该传感器就是利用NTC-MF52AT热敏电阻元件这一特性,搭建电路将电阻变化转换为电压变化。
实验器材
43053a84ccfa494f913f516a7f9ca93b.png | 191434bfcdb645a197b8573e967ff519.png | 1d1cc74c918c418382182c523855b57f.png | 84de8454f51f488a84a97040e9090654.png | 1d98b103ab894848a181eb39213e3a98.png |
Uno Plus 开发板*1 | 传感器扩展板*1 | DIY电子积木 光敏电阻传感器*1 | 3P XH-2.54mm 黑红蓝硅胶线*1 | USB线*1 |
接线图
测试代码
代码说明
- 在实验中,我们需要像前面学习的一样,创建一个整数变量item。
2 在我们导入的库 sensor下的“模拟输入”单元找到模拟温度传感器模块我们这里管脚接模拟口A0,所以我们不用