Arduino#
Arduino软件#
1.安装Windows驱动程序

1.1.下载安装arduino软件:#
(1)首先,进入arduino官方网站:https://www.arduino.cc/ ,点击“SOFTWARE”进入下载页面,如下图所示:


(2)然后,根据你的操作系统选择并下载相应的安装程序。如果你是Windows用户,请选择“Windows安装程序”下载正确的安装驱动程序。

选择点击Windows Win7 and newer下载Arduino 1.8.16版本的安装程序,需要手动安装。而当点击Windows ZIP file时,Arduino 1.8.16版本的zip文件将被直接下载,只需要解压缩它就可以完成安装。

一般情况下,点击JUST DOWNLOAD就可以下载了,当然如果你愿意,你可以选择小小的赞助,以帮助伟大的Arduino开源事业。
(3)Arduino软件下载完成后,继续安装,当你收到操作系统的警告时,请允许驱动程序安装。首先点击I Agree, 然后选择好要安装的组件后再点击Next。


(4)选择安装目录(我们建议保持默认目录),然后点击Install。

(5)如果出现以下界面,则应选择Install。

该过程将提取并安装所有必需的文件,以正确执行Arduino软件(IDE)。

安装完成后,会在桌面上生成一个Arduino 软件快捷方式。

在电脑桌面上点击Arduino 软件快捷方式打开Arduino IDE.

点击“File”→“Preferences”,选择“简体中文”之后点击“好”。这样就对语言进行设置好了。

关掉Arduino IDE,重新点击Arduino 软件快捷方式打开Arduino IDE。这样,英文页面就转化成中文页面。


A - 用于检查是否存在任何编译错误。
B - 用于将程序上传到Arduino控制板。
C - 用于创建新草图的快捷方式。
D - 用于直接打开示例草图之一。
E - 用于保存草图。
F - 用于从板接收串行数据并将串行数据发送到板的串行监视器。
1.2.安装开发板Pico#
(1)网络连接良好的情况下,打开Arduino IDE,单击“工具”→“开发板”→“开发板管理器…”。

在搜索框中输入Pico,选择Arduino Mbed OS RP2040 Boards,点击安装或更新。

(3)安装过程中,当你收到操作系统的安全警告时,请单击安装允许设备软件安装。

(4)安装完成后,单击关闭就可以了。

1.3.上传Arduino兼容的Pico固件#
如果你的树莓派Pico板是新的,想使用Arduino学习和开发,则需要上传一个Adruino兼容的Pico固件。请参考以下步骤配置:
(1)断开树莓派Pico板与电脑的连接。继续按树莓派Pico板上的白色按钮(BOOTSEL),并在松开按钮前将树莓派Pico板连接到电脑。(注意:MicroUSB线连接到树莓派Pico板前一定要一直按住按钮,否则固件下载不会成功)

(2)打开Arduino IDE,单击 文件→示例→01.Basics→Blink。

(3)单击工具→开发板:→Arduino Mbed OS RP2040 Boards→Raspberry Pi Pico。

(4)上传草图(Blink)到 Raspberry Pi Pico。

当草图完成上传时,可以看到以下提示。

树莓派Pico板上的指示灯开始闪烁。

1秒
单击工具→端口→COMx(Raspberry Pi Pico)。COMx的X在不同的电脑上是不同的。请在你的电脑上选择正确的COM口。在这个的例子中,它是COM15。

注意:
第一次使用Arduino上传Raspberry Pi Pico的草图时,不需要选择端口。之后,每次上传草图前,请检查端口是否已选择;否则可能导致代码上传失败。
有时在使用时,Raspberry Pi Pico可能会由于代码丢失固件而无法工作。此时,你可以如上所述步骤上传Raspberry Pi Pico的固件。
安装MAC驱动程序

2.1.下载安装Arduino IDE:#

接下来的操作类似于Windows系统,可以参考上面的Windows系统操作过程。
项目教程#
项目 01: Hello World#
项目介绍:
对于树莓派Pico初学者,我们将从一些简单的东西开始。在这个项目中,您只需要一个树莓派Pico板和USB线来完成“Hello World!”项目。它不仅是树莓派Pico板和PC的通信测试,也是树莓派Pico板的初级项目。
项目元件:
|
|
|---|---|
树莓派Pico板*1 |
USB 线*1 |
项目接线:
在本项目中,我们通过USB线将树莓派Pico板和电脑连接起来。


在上传项目代码到树莓派Pico板之前,请检查Arduino IDE的配置。
单击“工具”,确认板型和端口如下所示:

单击
将项目代码上传到树莓派Pico板。

项目代码上传成功!

项目结果:
项目代码上传成功后,单击
图标进入串行监视器,设置波特率为115200,在文本框输入字母“R”,单击“Send”,这样串口监视器打印“Hello World!”。

项目 02:板载灯闪烁#
项目介绍:
树莓派Pico板上有个板载LED,这个LED是固定接在树莓派Pico板上的GP25引脚,在这个项目中,我们将来学习使板载LED闪烁。
项目元件:
|
|
|---|---|
树莓派Pico板*1 |
USB 线*1 |
项目接线:
在本项目中,我们通过USB线将树莓派Pico板和电脑连接起来


树莓派Pico板上的板载LED是由GP25控制,当GP25输出高电平时,LED点亮;当输出低时,LED灯关闭。
在上传项目代码到树莓派Pico板之前,请检查Arduino IDE的配置。
单击“工具”,确认板型和端口如下所示:

单击
将项目代码上传到树莓派Pico板。

项目代码上传成功!

项目结果:
项目代码上传成功后,利用USB线上电,可以看到的现象是:树莓派Pico板的LED开始闪烁,循环进行。

1秒
项目 03:外接灯闪烁#
项目介绍:
在这个项目中,我们将向你展示外接LED闪烁效果。我们使用树莓派Pico板的数字引脚打开LED,让它闪烁。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
USB 线*1 |
|
|
|
|
红色LED*1 |
220Ω电阻*1 |
面包板*1 |
元件知识:
(1)LED:

LED是一种被称为“发光二极管”的半导体,是一种由半导体材料(硅、硒、锗等)制成的电子器件。它有正极和负极。短腿为负极,接GND,长腿为正极,接3.3V或5V。

(2)五色环电阻
电阻是电路中限制或调节电流流动的电子元件。左边是电阻器的外观,右边是电阻在电路中表示的符号。电阻®的单位为欧姆(Ω),1 mΩ= 1000 kΩ,1kΩ= 1000Ω。

我们可以使用电阻来保护敏感组件,如LED。电阻的强度(以Ω为单位)用小色环标记在电阻器的主体上。每种颜色代表一个数字,你可以用电阻对照卡查找。
-色带1 – 1st Digit.
-色带 2 – 2nd Digit.
-色带 3 – 3rd Digit.
-色带 4 – Multiplier.
-色带 5 – Tolerance.

在这个套件中,我们提供了3个具有不同电阻值的五色环电阻。这里以3个五色环电阻为例:
220Ω 电阻*10

10KΩ 电阻*10

1KΩ 电阻*10

在相同的电压下,会有更小的电流和更大的电阻。电流(I)、电压(U)、电阻®之间的联系可以用公式表示:I=U/R。在下图中,假如电压为3V,则通过R1的电流: I = U / R = 3 V / 10 KΩ= 0.0003A= 0.3mA。

不要把电阻值很低的电阻直接连接在电源两极,这样会使电流过高而损坏电子元件。电阻是没有正负极之分。
(3)面包板
面包板是实验室中用于搭接电路的重要工具。面包板上有许多孔,可以插入集成电路和电阻等电路元件。熟练掌握面包板的使用方法是提高实验效率,减少实验故障出现几率的重要基础之一。下面就面包板的结构和使用方法做简单介绍。一个典型的面包板如下所示:

面包板的外观和内部结构如上图所示,常见的最小单元面包板分上、中、下三部分,上面和下面部分一般是由一行或两行的插孔构成的窄条,中间部分是由中间一条隔离凹槽和上下各5 行的插孔构成的条。

在面包板的两个窄条分别有两行插孔,两行之间是不连通的,一般是作为电源引入的通路。上方第一行标有“+”的一行有10组插孔(内部都是连通),均为正极;上方第二行标有“-”的一行有10组插孔,(内部都是连通),均为接地。面包板下方的第一行与第二行结构同上。如需用到整个面包板,通常将“+”与“+”用导线连接起来,“-”与“-”用导线连接起来。
中间部分宽条是由中间一条隔离凹槽和上下各5 行的插孔构成。在同一列中的5 个插孔是互相连通的,列和列之间以及凹槽上下部分则是不连通的。外观及结构如下图:

中间部分宽条的连接孔分为上下两部分,是面包板的主工作区,用来插接原件和跳线。在同一列中的5个插孔(即a-b-c-d-e,f-g-h-i-j)是互相连通的;列和列之间以及凹槽上下部分是不连通的。在做实验的时候,通常是使用两窄一宽组成的小单元,在宽条部分搭接电路的主体部分,上面的窄条取一行做电源,下面的窄条取一行做接地。中间宽条用于连接电路,由于凹槽上下是不连通的,所以集成块一般跨插在凹槽上。
(4)keyes 树莓派Pico板的扩展板使用方法
将树莓派Pico板堆叠在扩展板上即可使用,如下图:

(5)电源
在本项目中,我们用USB线将Raspberry Pi Pico和电脑连起来。连接方法请参照文档:开发环境设置

项目电路图和接线图:
首先,切断树莓派Pico板的所有电源。然后根据电路图和接线图搭建电路。电路搭建好并验证无误后,用USB线将树莓派Pico板连接到电脑上。注意:避免任何可能的短路(特别是连接3.3V和GND)!
警告:短路可能导致电路中产生大电流,造成元件过热,并对硬件造成永久性损坏。

电路图

接线图
注意:
怎样连接LED

怎样识别五色环220Ω电阻

项目代码:
根据电路图,当树莓派Pico板的GP16输出高电平时,LED点亮;当输出低电平时,LED灯关闭。因此,我们可以通过控制GP16重复输出高低电平,使LED反复闪烁。
在上传项目代码到树莓派Pico板之前,请检查Arduino IDE的配置。
单击“工具”,确认板型和端口如下所示:

单击
将项目代码上传到树莓派Pico板。

项目代码上传成功!

项目结果:
项目代码上传成功后,利用USB线上电,可以看到的现象是:电路中的LED开始闪烁,循环进行。

0.5秒
项目 04:呼吸灯#
项目介绍:
在之前的研究中,我们知道LED有亮/灭状态,那么如何进入中间状态呢?如何输出一个中间状态让LED“半亮”?这就是我们将要学习的。呼吸灯,即LED由灭到亮,再由亮到灭,就像“呼吸”一样。那么,如何控制LED的亮度呢?我们将使用树莓派Pico板的PWM来实现这个目标。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
USB 线*1 |
|
|
|
|
红色LED*1 |
220Ω电阻*1 |
面包板*1 |
元件知识:

Analog & Digital
模拟信号在时间和数值上都是连续的信号。相反,数字信号或离散时间信号是由一系列数字组成的时间序列。生活中的大多数信号都是模拟信号。一个熟悉的模拟信号的例子是,全天的温度是如何不断变化的,而不是突然从0到10的瞬间变化。然而,数字信号的值可以瞬间改变,这个变化用数字表示为1和0(二进制代码的基础)。如下图所示,我们可以更容易地看出它们的差异。

在实际应用中,我们经常使用二进制作为数字信号,即一系列的0和1。由于二进制信号只有两个值(0或1),因此具有很大的稳定性和可靠性。最后,可以将模拟信号和数字信号相互转换。
PWM:
脉宽调制(PWM)是一种利用数字信号控制模拟电路的有效方法。普通处理器不能直接输出模拟信号。PWM技术使这种转换(将数字信号转换为模拟信号)非常方便。PWM技术利用数字引脚发送一定频率的方波,即高电平和低电平的输出,交替持续一段时间。每一组高电平和低电平的总时间一般是固定的,称为周期(注:周期的倒数是频率)。高电平输出的时间通常称为脉宽,占空比是脉宽(PW)与波形总周期(T)之比的百分比。高电平输出持续时间越长,占空比越长,模拟信号中相应的电压也就越高。下图显示了对应于脉冲宽度0%-100的模拟信号电压在0V-3.3V(高电平为3.3V)之间的变化情况.

PWM占空比越长,输出功率越高。既然我们了解了这种关系,我们就可以用PWM来控制LED的亮度或直流电机的速度等等。从上面可以看出,PWM并不是真实的模拟信号,电压的有效值等于相应的模拟信号。因此,我们可以控制LED和其他输出模块的输出功率,以达到不同的效果
树莓派Pico板与 PWM
树莓派Pico板有16个PWM通道,每个PWM通道可以独立控制频率和占空比,时钟频率范围为7Hz到125MHz。树莓派Pico板上的每个引脚都可以配置为PWM输出。
项目电路图和接线图:


项目代码:
本项目设计使GP16输出PWM,脉宽由0%逐渐增加到100%,再由100%逐渐减小到0%。
在上传项目代码到树莓派Pico板之前,请检查Arduino IDE的配置。
单击“工具”,确认板型和端口如下所示:

单击
将项目代码上传到树莓派Pico板。

项目代码上传成功!

项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:电路中的LED从暗逐渐变亮,再从亮逐渐变暗,就像呼吸一样,循环进行。

项目 05:交通灯#
项目介绍:
交通灯在我们的日常生活中很普遍。根据一定的时间规律,交通灯是由红、黄、绿三种颜色组成的。每个人都应该遵守交通规则,这可以避免许多交通事故。在这个项目中,我们将使用树莓派Pico板和一些led(红,黄,绿)来模拟交通灯。
项目元件:
|
|
|
|
|
|---|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
红色LED*1 |
黄色 LED*1 |
|
|
|
|
|
绿色LED*1 |
USB 线*1 |
220Ω电阻*3 |
面包板*1 |
跳线若干 |
项目电路图和接线图:


项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:1.首先,绿灯会亮5秒,然后熄灭;2.其次,黄灯会闪烁3次,然后熄灭;3.然后,红灯会亮5秒,然后熄灭;4.继续运行上述1-3个步骤。
项目 06:RGB#
项目介绍:

RGB led由三种颜色(红、绿、蓝)组成,通过混合这三种基本颜色可以发出不同的颜色。在这个项目中,我们将向你介绍RGB LED,并向你展示如何使用树莓派Pico板控制RGB LED发出不同的颜色光。即使RGB LED是非常基本的,但这也是一个介绍自己或他人电子和编码基础的伟大方式。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
RGB LED*1 |
|
|
|
|
220Ω电阻*3 |
面包板*1 |
USB 线*1 |
元件知识:
显示器大多遵循RGB颜色标准,电脑屏幕上的所有颜色都是由红、绿、蓝三种颜色以不同比例混合而成。


这个RGB LED有4个引脚,每个颜色(红,绿,蓝)和一个共同的阴极。为了改变RGB led的亮度,我们可以使用树莓派Pico板的PWM引脚。PWM引脚会给RGB led不同占空比的信号以获得不同的颜色。
如果我们使用3个10位PWM来控制RGBLED,理论上我们可以通过不同的组合创建210*210*210= 1,073,741,824(10亿)种颜色。
项目电路图和接线图:


项目代码:
我们需要创建三个PWM通道,并使用随机占空比来使RGB LED亮随机颜色灯。
项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:RGB LED开始显示随机颜色。
项目 07:流水灯#
项目介绍:
在日常生活中,我们可以看到许多由不同颜色的led组成的广告牌。他们不断地改变灯光(像流水一样)来吸引顾客的注意。在这个项目中,我们将使用树莓派Pico板控制10个leds实现流水的效果。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
红色LED*10 |
|
|
|
|
220Ω电阻*10 |
面包板*1 |
跳线若干 |
USB 线*1 |
项目电路图和接线图:


项目代码:
本项目是设计制作一个流水灯。这是这些行动:首先打开LED #1,然后关闭它。然后打开LED #2,然后关闭…并对所有10个LED重复同样的操作,直到最后一个LED关闭。这一过程反复进行,以实现流水的“运动”。
项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:10个LED将从左到右点亮,然后从右到左返回。

项目 08:一位数码管#
项目介绍:
七段数码管是一种显示十进制数字的电子显示设备,广泛应用于数字时钟、电子仪表、基本计算器和其他显示数字信息的电子设备。甚至我们在电影中看到的炸弹也有七段数码管。也许七段数码管看起来不够现代,但它们是更复杂的点阵显示器的替代品,在有限的光线条件下和强烈的阳光下都很容易使用。在这个项目中,我们将使用树莓派Pico板控制一位数码管显示数字。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
一位数码管*1 |
|
|
|
|
220Ω电阻*8 |
面包板*1 |
USB 线*1 |
元件知识:

一位数码管显示原理:数码管显示是一种半导体发光器件。它的基本单元是一个发光二极管(LED)。数码管显示根据段数可分为7段数码管和8段数码管。8段数码管比7段多一个LED单元(用于小数点显示)。七段LED显示屏的每段是一个单独的LED。根据LED单元接线方式,数码管可分为共阳极数码管和共阴极书案管。
在共阴极7段数码管中,分段LED的所有阴极(或负极)都连接在一起,你应该把共阴极连接到GND,要点亮一个分段LED,你可以将其关联的引脚设置为HIGH。
在共阳极7段数码管中,所有段的LED阳极(正极)都连接在一起,你应该把共阳极连接到+5V。要点亮一个分段LED,你可以将其关联的引脚设置为LOW。

数码管的每个部分由一个LED组成。所以当你使用它的时候,你也需要使用一个限流电阻。否则,LED会被烧坏。在这个实验中,我们使用了一个普通的共阴极一位数码管。正如我们上面提到的,你应该将公共阴极连接到GND。要点亮一个分段LED,你可以将其关联的引脚设置为HIGH。
项目电路图和接线图:

注意:插入面包板的七段数码管方向与接线图一致,右下角多一个点。


项目代码:
数字显示分7段,小数点显示分1段。当显示某些数字时,相应的段将被点亮。例如,当显示数字1时,b和c段将被打开。
项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:一位数码管将显示从9到0的数字。
项目 09:四位数码管#
项目介绍:
四位数码管是一种非常实用的显示器件。电子时钟的显示,球场上的记分员,公园里的人数都是需要的。由于价格低廉,使用方便,越来越多的项目将使用4位数码管。在这个项目中,我们使用树莓派Pico板控制四位数码管来显示数字。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
220Ω 电阻*8 |
四位数码管*1 |
|
|
|
|
面包板*1 |
公对母杜邦线若干 |
USB 线*1 |
元件知识:

四位数码管:四位数码管有共阳极和共阴极两种四位数码管,显示原理是和一位数码管是类似的,都是8个GPIO口控制数码管的显示段,就是8个led灯,不过,这里是4位的,所以就还需要4个GPIO口来控制位选择端,就是选择哪个单个数码管亮,位的切换很快,肉眼区分不出来,就能看起来是多个数码管同时显示的了。
我们的四位数码管是共阴极的。
下图为4位数码管的引脚图,G1、G2、G3、G4就是控制位的引脚。

下图为4位数码管内部布线原理图


项目电路图和接线图:


项目现象:
项目代码上传成功后,利用USB线上电,你会看到的现象是:四位数码管显示数字,并在一个无限循环中重复这些动作。
项目 10:8×8 点阵显示#
项目介绍:
点阵屏是一种电子数字显示设备,可以显示机器、钟表、公共交通离场指示器和许多其他设备上的信息。在这个项目中,我们将使用树莓派Pico板控制8x8 LED点阵来显示数字0-9。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
88点阵屏1 |
USB 线*1 |
|
|
|
|
公对母杜邦线若干 |
220Ω 电阻*8 |
面包板*1 |
元件知识:
8*8LED Matrix:8*8点阵,就是由64个led灯组成,有行共阳极和行共阴极两种,我们的模块是行共阳极的,也就是每一行有一条线将LED的正极连到一起,列就是将LED灯的负极连接到一起,看下图:


项目电路图和接线图:


项目现象:
项目代码上传成功后,利用USB线上电,你会看到的现象是:8*8点阵屏显示数字0-9。
项目 11:74HC595N 控制 8 个灯#
项目介绍:
在之前的项目中,我们已经学过了怎样点亮一个LED。
树莓派Pico板上只有26个IO端口,我们如何点亮大量的led呢? 有时可能会耗尽树莓派Pico板上的所有引脚,这时候就需要用移位寄存器扩展它。你可以使用74HC595N芯片一次控制8个输出,而只占用你的微控制器上的几个引脚。你还可以将多个寄存器连接在一起,以进一步扩展输出,在这个项目中,我们将使用树莓派Pico板,74HC595芯片和LED制作一个流水灯来了解74HC595芯片的功能。
项目元件:
|
|
|
|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
74HC595N芯片*1 |
|
|
|
220Ω电阻*8 |
面包板*1 |
跳线若干 |
|
|
|
红色LED*8 |
USB 线*1 |
公对母杜邦线若干 |
元件知识:

74HC595N芯片:简单来说就是具有8 位移位寄存器和一个存储器,以及三态输出功能。移位寄存器和存储器同步于不同的时钟,数据在移位寄存器时钟SCK的上升沿输入,在存储寄存器时钟RCK的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入端(SI)和一个用于级联的串行输出端(SQH),8位移位寄存器可以异步复位(低电平复位),存储寄存器有一个8位三态并行的总线输出,当输出使能(OE)被使能(低电平有效)将存储寄存器中输出至74HC595N的引脚(总线)。

引脚说明:
13引脚OE |
是一个输出使能引脚,用于确保锁存器的数据是否输入到Q0-Q7引脚。在低电平时,不输出高电平。在本实验中,我们直接连接GND,保持低电平输出数据。 |
|---|---|
14引脚SI |
这是74HC595接收数据的引脚,即串行数据输入端,一次只能输入一位,那么连续输入8次,就可以组成一个字节了。 |
10引脚SCLR |
一个初始化存储寄存器管脚的管脚。在低电平时初始化内部存储寄存器。在这个实验中,我们连接VCC以保持高水平。 |
11引脚SCK |
移位寄存器的时钟引脚,上升沿时,移位寄存器中的数据整体后移,并接收新的数据输入 |
12引脚RCK |
存储寄存器的时钟输入引脚。上升沿时,数据从移位寄存器转存到存储寄存器中。这时数据就从Q0~Q7端口并行输出。 |
9引脚SQH |
引脚是一个串行输出引脚,专门用于芯片级联,接下一个74HC595的SI端 |
Q0–Q7(15引脚,1-7引脚) |
八位并行输出端,可以直接控制数码管的8个段 |
项目电路图和接线图:

注意:需要注意74HC595N芯片插入的方向


项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:8个LED开始以流水模式闪烁。
项目 12:有源蜂鸣器#
项目介绍:
有源蜂鸣器是一个发声组件。它被广泛用作电脑、打印机、报警器、电子玩具、电话、计时器等的发声元件。它有一个内在的振动源,只需连接5V电源,即可持续发出嗡嗡声。在这个项目中,我们将使用树莓派Pico板控制有源蜂鸣器发出“滴滴”声。
项目元件:
|
|
|
|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
面包板*1 |
|
|
|
NPN型晶体管(S8050)*1 |
1kΩ电阻*1 |
跳线若干 |
|
|
|
有源蜂鸣器*1 |
USB 线*1 |
公对母杜邦线若干 |
元件知识:

有源蜂鸣器内部有一个简单的振荡器电路,可以将恒定的直流电转换成特定频率的脉冲信号。一旦有源蜂鸣器收到一个高电平,它将产生声音。而无源蜂鸣器是一种内部没有振动源的集成电子蜂鸣器,它必须由2K-5K方波驱动,而不是直流信号。这两个蜂鸣器的外观非常相似,但是一个带有绿色电路板的蜂鸣器是无源蜂鸣器,而另一个带有黑色胶带的是有源蜂鸣器。无源蜂鸣器不能区分正极性而有源极性蜂鸣器是可以。如下所示:


晶体管: 由于蜂鸣器需要很大的电流,ESP32输出能力的GPIO不能满足要求,这里需要一个NPN型晶体管来放大电流。晶体管,全称:半导体晶体管,是一种控制电流的半导体器件。晶体管可以用来放大微弱信号,也可以用作开关。它有三个电极(pin):基极(b),集电极©和发射极(e)。当电流通过“be”之间时,“ce”将允许几倍的电流通过(晶体管放大),此时,晶体管在放大区工作。当“be”之间的电流超过某个值时,“ce”将不再允许电流增加,此时晶体管工作在饱和区。晶体管有两种类型如下所示:PNP和NPN

PNP晶体管 NPN晶体管
在我们的套件中,PNP晶体管标记为8550,NPN晶体管标记为8050。
基于晶体管的特性,它常被用作数字电路中的开关。由于单片机输出电流的能力很弱,我们将使用晶体管来放大电流和驱动大电流的元件。在使用NPN晶体管驱动蜂鸣器时,通常采用以下方法:如果GPIO输出高电平,电流将流过R1,晶体管将传导,蜂鸣器将发出声音。如果GPIO输出低电平,没有电流流过R1,晶体管就不会传导,蜂鸣器也不会响。在使用PNP晶体管驱动蜂鸣器时,通常采用以下方法:如果GPIO输出低电平,电流将流过R1,晶体管将传导,蜂鸣器将发出声音。如果GPIO输出高电平,没有电流流过R1,晶体管就不会传导,蜂鸣器也不会响。

项目电路图和接线图:


注意:1.该电路中蜂鸣器的电源为5V。在3.3V的电源下,蜂鸣器可以工作,但会降低响度。
2.VUSB应连接到USB线的正极,如果它连接到GND,它可能烧坏电脑或树莓派Pico板。同样,树莓派Pico板的36-40引脚接线时也要小心,避免短路。
3.有源蜂鸣器正极(“+”/长引脚)接引脚16,负极(短引脚)接GND。
项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:有源蜂鸣器发出“滴滴”声。
项目 13:无源蜂鸣器#
项目介绍
在之前的项目中,我们研究了有源蜂鸣器,它只能发出一种声音,可能会让你觉得很单调。这个项目将学习另一种蜂鸣器,无源蜂鸣器。与有源蜂鸣器不同,无源蜂鸣器可以发出不同频率的声音。在这个项目中,你将使用树莓派Pico板控制无源蜂鸣器发出警报声。
项目元件:
|
|
|
|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
面包板*1 |
|
|
|
NPN型晶体管(S8050)*1 |
1kΩ电阻*1 |
跳线若干 |
|
|
|
无源蜂鸣器*1 |
USB 线*1 |
公对母杜邦线若干 |
元件知识:

无源蜂鸣器是一种内部没有振动源的集成电子蜂鸣器。它必须由2K-5K方波驱动,而不是直流信号。这两个蜂鸣器的外观非常相似,但是一个带有绿色电路板的蜂鸣器是无源蜂鸣器,而另一个带有黑色胶带的是有源蜂鸣器。无源蜂鸣器不能区分正极性而有源极性蜂鸣器是可以。

晶体管: 请参考项目12.
项目电路图和接线图:


项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:无源蜂鸣器发出警报声。
项目 14:小台灯#
项目介绍:
你知道树莓派Pico板可以在你按下按键的时候点亮LED吗? 在这个项目中,我们将使用树莓派Pico板,一个按键开关和一个LED来制作一个迷你台灯。
|
|
|
|
|
|---|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
按键*1 |
红色 LED*1 |
10KΩ电阻*1 |
|
|
|
|
|
面包板*1 |
220Ω电阻*1 |
USB 线*1 |
公对母杜邦线若干 |
按键帽*1 |
元件知识:

按键:按键可以控制电路的通断,把按键接入电路中,不按下按键的时候电路是断开的,
一按下按键电路就通啦,但是松开之后就又断了。可是为什么按下才通电呢?这得从按键的内部构造说起。没按下之前,电流从按键的一端过不去另一端;按下的时候,按键内部的金属片把两边连接起来让电流通过。
按键内部结构如图:
,未按下按键之前,1、2就是导通的,3、4也是导通的,但是1、3或1、4或2、3或2、4是断开(不通)的;只有按下按键时,1、3或1、4或2、3或2、4才是导通的。
在设计电路时,按键开关是最常用的一种元件。
按键的原理图:

什么是按键抖动?
我们想象的开关电路是“按下按键-立刻导通”“再次按下-立刻断开”,而实际上并非如此。
按键通常采用机械弹性开关,而机械弹性开关在机械触点断开闭合的瞬间(通常 10ms左右),会由于弹性作用产生一系列的抖动,造成按键开关在闭合时不会立刻稳定的接通电路,在断开时也不会瞬时彻底断开。

那又如何消除按键抖动呢?
常用除抖动方法有两种:软件方法和硬件方法。这里重点讲讲方便简单的软件方法。
我们已经知道弹性惯性产生的抖动时间为10ms 左右,用延时命令推迟命令执行的时间就可以达到除抖动的效果。
所以我们在代码中加入了0.02秒的延时以实现按键防抖的功能。

项目电路图和接线图:


注意:
怎样连接LED

怎样识别五色环220Ω电阻和五色环10KΩ电阻


项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:按下按钮,LED亮起;当按钮松开时,LED仍亮着。再次按下按钮,LED熄灭;当按钮释放时,LED保持关闭。是不是很像个小台灯?
项目 15:模拟沙漏#
项目介绍:
古代人没有电子时钟,就发明了沙漏来测时间,沙漏两边的容量比较大,在一边装了细沙,中间有个很小的通道,将沙漏直立,有细沙的一边在上方,由于重力的作用,细沙就会往下流通过通道到沙漏的另一边,当细沙都流到下边了,就倒过来,把一天反复的次数记录下来,第二天就可以通过沙漏反复流动的次数而知道这一天大概的时间了。这一课我们将利用树莓派Pico板控制倾斜开关和LED灯来模拟沙漏,制作一个电子沙漏。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
倾斜开关*1 |
红色 LED*4 |
|
|
|
|
面包板*1 |
220Ω电阻*4 |
USB 线*1 |
|
|
|
|
|
10KΩ电阻*1 |
跳线若干 |
公对母杜邦线若干 |
元件知识:

倾斜开关也叫数字开关。里面有一个可以滚动的金属球。采用金属球滚动与底部导电板接触的原理来控制电路的通断。当倾斜开关是滚珠型倾斜感应单方向性触发开关,当倾斜传感器向触发端(两根金属脚端)倾斜时,倾斜开关处于闭路状态,模拟端口的电压约为5V(二进制数为1023)。这样,LED会亮起。当倾斜开关在水平位置或向另一端倾斜时,倾斜开关处于开路状态,模拟端口的电压约为0V(0二进制)。LED将会关闭。在程序中,我们根据模拟端口的电压值,是否大于2.5V(512二进制)来判断开关是开还是关。
这里用倾斜开关的内部结构来说明它是如何工作的,显示如下图:

项目电路图和接线图:


注意:
怎样连接LED

怎样识别五色环220Ω电阻和五色环10KΩ电阻


项目结果:
项目代码上传成功后,利用USB线上电,可以看到的现象是:将面包板倾斜到一定角度,led就会一个一个地亮起来。当回到上一个角度时,led会一个一个关闭。就像沙漏一样,随着时间的推移,沙子漏了出来。
项目 16: I2C 128×32 LCD#
项目介绍:
在生活中,我们可以利用显示器等模块来做各种实验。你也可以DIY各种各样的小物件。例如,用一个温度传感器和显示器做一个温度测试仪,或者用一个超声波模块和显示器做一个距离测试仪。下面,我们将使用LCD_128X32_DOT模块作为显示器,将其连接到树莓派Pico控制板上。将使用树莓派Pico主板控制LCD_128X32_DOT显示屏显示各种英文文字、常用符号和数字。
项目元件:
|
|
|
|---|---|---|
树莓派Pico板*1 |
LCD_128X32_DOT*1 |
树莓派Pico板的扩展板*1 |
|
|
|
4P 转杜邦线母单*1 |
USB 线*1 |
元件知识:

LCD_128X32_DOT:一个像素为128*32的液晶屏模块,它的驱动芯片为ST7567A。模块使用IIC通信方式,同时,代码中包含所有英文字母和常用符号的库,可以直接调用。使用时,我们还可以在代码中设置,让英文字母和符号显示不同文字大小。为了方便设置图案显示,我们还提供一个取模软件,可将特定的图案转化成控制代码,然后直接复制到测试代码中使用的。
LCD_128X32_DOT原理图:

LCD_128X32_DOT技术参数:
显示像素:128*32 字符
芯片工作电压:4.5 ~ 5.5V
工作电流:100mA (5.0V)
模块最佳工作电压:5.0V
项目接线图:

添加lcd128_32_io库:
本项目代码使用了一个名为“lcd128_32_io”库。如果你还没有添加,请在学习之前添加它。添加第三方库的步骤如下:
打开Arduino IDE,单击“项目”→“加载库”→“添加 .ZIP 库…”。在弹出窗口中找到该目录下名为:4. Arduino 教程\1. Windows 系统\3. 库文件\LCD_128X32.ZIP的文件,先选中LCD_128X32.ZIP文件,再单击“打开”。


项目现象:
项目代码上传成功后,利用USB线上电,你会看到的现象是:128X32LCD模块显示屏第一行显示“keyes”、第二行显示“ABCDEFGHIJKLMNOPQR”、第三行显示“123456789±*/<>=$@”、第四行显示“%^&(){}:;'|?,.~\[]”。
项目 17:小风扇#
项目介绍:
在炎热的夏季,需要电扇来给我们降温,那么在这个项目中,我们将使用树莓派Pico板控制直流电机模块和小扇叶来制作一个小电扇。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
跳线若干 |
S8050三极管*1 |
|
|
|
|
二极管*1 |
面包板*1 |
USB 线*1 |
S8550三极管*1 |
|
|
|
|
直流电机*1 |
风扇片*1 |
公对母杜邦线若干 |
项目电路图和接线图1:
(这个实验是使用S8050(NPN型三极管)控制电机)


项目现象1:
项目代码上传成功后,利用USB线上电,你会看到的现象是:将小风扇片安装到直流电机上,上电后,可以看到电机转动4秒,停止2秒,以此规律重复执行。
项目电路图和接线图2:
(这个实验是使用S8550(PNP型三极管)控制电机)


项目现象2:
项目代码上传成功后,利用USB线上电,你会看到的现象是:将小风扇片安装到直流电机上,上电后,可以看到电机转动4秒,停止2秒,以此规律重复执行。
项目18:调光灯#
项目介绍:
电位器是一个带有滑动或旋转触点的三端电阻器,它形成一个可调的分压器。它的工作原理是在均匀电阻上改变滑动触点的位置。在电位器中,整个输入电压被施加到电阻的整个长度上,输出电压是固定触点和滑动触点之间的电压值。在这个项目中,我们将学习使用树莓派Pico板读取电位器的值,并结合LED制作一个调光灯。
项目元件:
|
|
|
|
|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
可调电位器*1 |
红色 LED*1 |
|
|
|
|
面包板*1 |
220Ω电阻*1 |
公对母杜邦线若干 |
USB 线*1 |
元件知识:

- 可调电位器:可调电位器是电阻和模拟电子元件的一种,具有0和1两种状态(高电平和低电平)。模拟值不同,其数据状态呈现为1
1024等线性状态。
读取电位器的ADC值和电压值:
我们将电位器连接到树莓派Pico板的模拟IO口上来读取电位器的ADC值和电压值。接线请参照以下接线图:

上传代码成功之后,利用USB线上电,打开串口监视器,设置波特率为115200。可以看到的现象是:串口监视器窗口将打印出电位器的ADC值和电压值,转动电位器手柄时,ADC值和电压值发生变化。如下图所示:

调光灯的电路图和接线图:
在前面一步,我们读取了电位器的ADC值和电压值,现在我们需要将电位器的ADC值转换成LED的亮度,来做成一个亮度可调的灯。见如下所示接线图:


项目现象:
下载项目代码到树莓派Pico板,通过转动电位器手柄改变GP26的输入电压,树莓派Pico板根据这个电压值改变GP16的输出电压,从而改变LED的亮度。

项目 19:火焰警报器#
项目介绍:
火灾是一种可怕的灾害,火灾报警系统在房屋,商业建筑和工厂中是非常有用的。在本项目中,我们将使用树莓派Pico板控制火焰传感器,蜂鸣器和LED来模拟火灾报警装置。这是一个有意义的创客活动。
项目元件:
|
|
|
|
|
|---|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
火焰传感器*1 |
红色 LED*1 |
有源蜂鸣器*1 |
|
|
|
|
|
面包板*1 |
220Ω电阻*1 |
10KΩ电阻*1 |
跳线若干 |
USB 线*1 |
|
|
|
||
NPN型晶体管(S8050)*1 |
1kΩ电阻*1 |
公对母杜邦线若干 |
元件知识:

火焰会发出一定程度的IR光,这种光人眼是看不到的,但我们的火焰传感器可以检测到它,并提醒微控制器(如树莓派Pico板)已经检测到火灾。它有一个专门设计的红外接收管来探测火焰,然后将火焰亮度转换为波动水平信号。接收三极管的短引脚是负极,另一个长引脚是正极。我们应该连接短引脚(负极)到5V,连接长 引脚(正极)到模拟引脚,一个电阻和GND。如下图所示:

注意:火焰传感器应避开日光、汽车头灯、白炽灯直接照射,也不能对着热源(如暖气片、加热器)或空调,以避免环境温度较大的变化而造成误报。同时还易受射频辐射的干扰。
读取火焰传感器的ADC值和电压值:
我们首先用一个简单的代码来读取火焰传感器的模拟值,并将其打印出来。接线请参照以下接线图:


上传代码成功之后,利用USB线上电,打开串口监视器,设置波特率为115200。可以看到的现象是:串口监视器窗口将打印出火焰传感器读取的模拟值,当火焰靠近火焰传感器时,模拟值增大;反之,模拟值减小。

火焰报警的电路图和接线图:
接下来,我们将使用火焰传感器和蜂鸣器、LED制作一个有趣的项目——火灾报警装置。当火焰传感器检测到火焰时,LED闪烁,蜂鸣器报警。


项目代码:(注意:
代码中的阀值500可以根据实际情况自己重新设置)
项目现象:
项目代码上传成功后,利用USB线上电,可以看到的现象是:当火焰传感器检测到火焰时,LED闪烁,蜂鸣器报警;否则,LED不亮,蜂鸣器不响。
项目 20:小夜灯#
项目介绍:
传感器或元件在我们的日常生活中是无处不在的。例如,一些公共路灯在晚上会自动亮起,而在白天会自动熄灭。为什么呢? 事实上,这些都是利用了一种光敏元件,可以感应外部环境光强度的元件。晚上,当室外亮度降低时,路灯会自动打开;到了白天,路灯会自动关闭。这其中的原理是很简单的,在本实验中我们使用树莓派Pico板控制LED就来实现这个路灯的效果。
项目元件:
|
|
|
|
|
|---|---|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
光敏电阻*1 |
红色 LED*1 |
10KΩ电阻*1 |
|
|
|
|
|
面包板*1 |
公对母杜邦线若干 |
跳线若干 |
USB 线*1 |
220Ω电阻*1 |
元件知识:

光敏电阻:是一种感光电阻,其原理是光敏电阻表面上接收亮度(光)降低电阻,光敏电阻的电阻值会随着被探测到的环境光的强弱而变化。有了这个特性,我们可以使用光敏电阻来检测光强。光敏电阻及其电子符号如下

下面的电路是用来检测光敏电阻电阻值的变化:

在上述电路中,当光敏电阻的电阻因光强的变化而改变时,光敏电阻与电阻R2之间的电压也会发生变化。因此,通过测量这个电压就可以得到光的强度。
读取光敏电阻的ADC值和电压值:
我们首先用一个简单的代码来读取光敏电阻模拟值,并将其打印出来。接线请参照以下接线图:


上传代码成功之后,利用USB线上电,打开串口监视器,设置波特率为115200。可以看到的现象是:串口监视器窗口将打印光敏电阻读取的模拟值,当逐渐减弱光敏电阻所处环境中的光线强度时,模拟值逐渐增大;反之,模拟值逐渐减小。

光控灯的电路图和接线图:
我们在前面做了一个小小的调光灯,现在我们来做一个光控灯。它们的原理是相同的,即通过树莓派Pico板获取传感器的模拟值,然后调节LED的亮度。


项目结果:
项目代码上传成功后,利用USB线上电,可以看到的现象是:当减弱光敏电阻所处环境中的光线强度时,LED变亮,反之,LED变暗。
项目 21:温度仪表#
项目介绍:
热敏电阻是一种电阻,其阻值取决于温度和温度的变化,广泛应用于园艺、家庭警报系统等装置中。因此,我们可以利用这一特性来制作温度计。
项目元件:
|
|
|
|---|---|---|
树莓派Pico板*1 |
树莓派Pico板的扩展板*1 |
公对母杜邦线若干 |
|
|
|
LCD_128X32_DOT*1 |
面包板*1 |
热敏电阻*1 |
|
|
|
4P 转杜邦线母单*1 |
USB 线*1 |
10KΩ电阻*1 |
元件知识:
热敏电阻:热敏电阻是一种温度敏感电阻。当热敏电阻感应到温度的变化时,它的电阻就会发生变化。我们可以利用热敏电阻的这种特性来检测温度强度。热敏电阻及其电子符号如下所示。

热敏电阻的电阻值与温度的关系为:
式中:
Rt为热敏电阻在T2温度下的电阻;
R为热敏电阻在T1温度下的标称阻值;
EXP[n]是e的n次幂;
B为温度指数;
T1,T2是开尔文温度(绝对温度),开尔文温度=273.15 +摄氏温度。对于热敏电阻的参数,我们使用:B=3950, R=10KΩ,T1=25℃。热敏电阻的电路连接方法与光敏电阻类似,如下所示:

我们可以利用ADC转换器测得的值来得到热敏电阻的电阻值,然后利用公式来得到温度值。因此,温度公式可以推导为:
读取热敏电阻的值:
首先我们学习了热敏电阻读取当前的ADC值、电压值和温度值,并将其打印出来。请按下面的接线图接好线:


代码上传到树莓派Pico板成功之后,利用USB线上电,打开串口监视器,设置波特率为115200。你会看到的现象是:串口监视器窗口将不断显示热敏电阻当前的电压值和温度值。试着用食指和拇指捏一下热敏电阻(不要碰触导线)一小段时间,你应该会看到温度值增加。

温度仪表电路图和接线图:


添加lcd128_32_io库:
前面已经添加过lcd128_32_io库,可以不用重复添加。如果没有添加,就需要添加lcd128_32_io库,添加第三方库的步骤如下:
打开Arduino IDE,单击“项目”→“加载库”→“添加 .ZIP 库…”。在弹出窗口中找到该目录下名为:4. Arduino 教程\1. Windows 系统\3. 库文件\LCD_128X32.ZIP的文件,先选中LCD_128X32.ZIP文件,再单击“打开”。


项目现象:
项目代码上传成功后,利用USB线上电,你会看到的现象是:LCD 128X32 DOT的屏幕上显示热敏电阻的电压值和当前环境中的温度值。



































































