第07课:从Arduino获取额外的5V和GND | Arduino逐步课程
在本Robojax Arduino逐步课程中,我们探讨了一个常见问题的实用解决方案:Arduino板上5V和GND连接不够用。无论您是在构建需要为舵机、LCD显示屏、超声波传感器或多个设备组合供电的项目,Arduino Uno或Nano上有限的电源引脚很快就会成为瓶颈。本指南演示了如何创造性地使用任何数字I/O引脚作为额外的5V电源或接地连接,使您无需外部电源即可为低电流设备供电,从而获得更大的灵活性。
该技术对于多种实际应用特别有用,包括:
- 在单个项目中同时为小型OLED或LCD显示屏和舵机供电。
- 同时为多个传感器供电,例如超声波传感器和PIR运动检测器。
- 在面包板上创建临时测试设置,为新模块提供快速便捷的电源。
- 驱动需要干净5V参考电压的低功率LED或逻辑电平电路。
了解Arduino电源限制
在深入解决方案之前,了解Arduino板的电源架构至关重要。在标准Arduino Uno上,通常只有一个专用的5V引脚。如视频中所述,一些第三方板可能配备第二个5V引脚,但即便如此,您可能仍需要更多(视频中00:26处)。
您可以从这些引脚汲取的电流量取决于您的电源。如果您通过USB为板供电,电流受USB端口或充电器限制——例如,1A充电器允许高达1A,而2.4A充电器允许更多(视频中01:55处)。如果您使用7-12V电源的桶形插孔,电流由板载AMS1117稳压芯片调节,其典型电流限制为1.1A(视频中02:20处)。
还需要注意板上的ICSP接头。如视频中所述,该接头提供对SPI(串行外设接口)引脚的访问,右侧的引脚实际上是VCC(5V),而最后一个引脚是GND(视频中00:54处)。这为您提供了另一个物理位置来接入5V电源轨。
然而,最关键的限制定是数字I/O引脚。根据Arduino官方文档,每个数字引脚最多可提供或吸收20毫安(mA)电流(视频中03:30处)。这对于LED、逻辑电路和许多传感器来说绰绰有余,但对于电机或高功率舵机等高电流设备则不足。对于这些设备,应始终使用主5V引脚或外部电源。
硬件和组件
对于本演示,您需要以下组件:
- 1个Arduino板(Uno、Nano或类似型号)
- 1个LED(任意颜色)
- 1个1kΩ电阻
- 1个面包板
- 跳线
- (可选)用于演示的LCD 1602显示屏或继电器模块
接线指南
本项目的接线很简单,主要涉及将数字引脚连接到组件的电源轨,以及将另一个数字引脚连接到其接地端。在视频中,讲师通过为LED供电来演示这一点。
以下是设置方法:
- 连接LED:通过1kΩ限流电阻将LED的阳极(较长引脚)连接到Arduino上的数字引脚5。
- 连接接地:将LED的阴极(较短引脚)直接连接到Arduino上的数字引脚2。
这个简单电路使引脚5充当5V电源,引脚2充当接地,从而形成完整回路(视频中06:05处)。
对于更具扩展性的方法,您可以使用面包板来分配电源,如视频所示。通过将面包板的红色电源轨连接到引脚5,将蓝色/黑色接地轨连接到引脚2,您可以轻松地将多个组件插入各自的电源轨来为其供电(视频中06:59处)。
代码说明
本课程提供的代码非常简单,其唯一目的是配置两个数字引脚作为电源引脚。此功能的关键在于草图顶部定义的两个配置常量。
以下是代码中用户可配置的部分:
#define VCC2 5 // 在此处将引脚5或任何其他数字引脚定义为VCC2
#define GND2 2 // 在此处将引脚2或任何其他数字引脚定义为Ground 2
这两行是自定义的核心。#define指令是一个预处理器命令,告诉Arduino编译器在代码编译之前将每个VCC2实例替换为数字5,并将每个GND2实例替换为数字2。这使得更改用于电源的引脚变得非常容易。如果您想使用引脚8作为5V电源,只需将第一行中的5改为8。同样,您可以通过编辑第二行来更改接地引脚。
代码的其余部分只是setup()函数中的初始化逻辑。它将定义为VCC2的引脚设置为OUTPUT,然后写入HIGH,从而输出5V电压。相反,它将定义为GND2的引脚设置为OUTPUT,并写入LOW,使其充当接地连接。一旦在setup()中完成此操作,这些引脚将在Arduino通电期间保持其状态,你可以将主程序逻辑添加到loop()函数中。
实际项目演示
在视频中,讲师通过将代码加载到Arduino上来演示这一概念。上传后,连接在引脚5和引脚2之间的LED立即点亮,证明引脚5正在提供电压,而引脚2作为接地正在吸收电流。为了进一步说明这一点,他展示了将LED的电源连接移动到另一个未配置的数字引脚时,LED不会点亮,因为该引脚未设置为输出5V(视频中06:37处)。
演示还包括一个使用面包板的实际示例。通过将5V引脚连接到面包板的电源轨,将接地引脚连接到接地轨,他同时为1602 LCD显示屏和继电器模块供电。这展示了如何使用这种技术为低电流元件创建一个小型专用电源分配总线,使布线保持整洁有序(视频中06:59处)。
结论
本课提供了一个简单而强大的技巧,用于扩展Arduino板的功能。通过将数字引脚重新定义为电源,你可以解决5V和GND连接有限的常见问题。记住每个引脚20mA的关键限制,你就可以在未来的项目中安全地为各种传感器和小型模块供电。
章节
- [00:00] 5V引脚介绍与概述
- [00:54] 了解ICSP接头和SPI引脚
- [01:55] 基于电源的电流限制
- [03:30] 数字引脚的电流限制和使用场景
- [04:51] 创建额外5V和GND的代码解释
- [06:05] 使用LED的接线演示
- [06:59] 使用面包板电源分配进行扩展
/*
* S01-07 Additional 5V or GND pin.
If your Arduino board voltage is 3.3V, then we will get 3.3V and GND pin
* Arduino Sketch to give you extra 5V pin from Arduino
Please watch video instruction here https://youtu.be/pQKrl5Kpi50
This code is available at http://robojax.com/course1/?vid=lecture07
with over 100 lectures Free On YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339
* Written by Ahmad Shamshiri for Robojax, robojax.com http://youtube.com/robojaxTV
* on Jan 01, 2019 at 08:54 in Ajax, Ontario, Canada
*
*/
#define VCC2 5 // define pin 5 or any other digital pin here as VCC2
#define GND2 2 // define pin 2 or any other digital pin as Ground 2
void setup() {
pinMode(VCC2,OUTPUT);//define a digital pin as output
digitalWrite(VCC2, HIGH);// set the above pin as HIGH so it acts as 5V
pinMode(GND2,OUTPUT);//define a digital pin as output
digitalWrite(GND2, LOW);// set the above pin as LOW so it acts as Ground
}
void loop() {
//Robojax Step By Step Arduino Course http://robojax.com/L/?id=338
}
资源与参考
文件📁
没有可用的文件。