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,单击“工具”→“开发板”→“开发板管理器…”。

  1. 在搜索框中输入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。

注意:

  1. 第一次使用Arduino上传Raspberry Pi Pico的草图时,不需要选择端口。之后,每次上传草图前,请检查端口是否已选择;否则可能导致代码上传失败。

  2. 有时在使用时,Raspberry Pi Pico可能会由于代码丢失固件而无法工作。此时,你可以如上所述步骤上传Raspberry Pi Pico的固件。

  3. 安装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的屏幕上显示热敏电阻的电压值和当前环境中的温度值。