乐趣区

Arduino-制作第一个单LED闪烁电路

做这个实验前我们要先认识 Arduino,接触面包板,了解电路中的元件的工作电压和工作电流等。

实验材料

本次实验需要以下零部件

  • Arduino
  • LED 灯一枚
  • 电阻一枚
  • 连接线三根
  • 面包板一个

认识 Arduino

我需要先了解以下 Arduino 板上的组件具体由什么构成。我找了一个参考图。

序号 名称 描述
工作电压 5V
1 电源 USB Arduino 板可以通过计算机上的 USB 线供电
2 电源 电池插座 Arduino 可以通过电池电源供电
3 稳压器 稳压器的的功能是控制提供给 Arduino 的电压,并稳定处理器和其他元件使用的直流电压
4 晶体振荡器 晶体振荡器帮助 Arduino 处理时间问题。上面有数字标识 T16.000 代表频率是 16MHZ
5,17 重置 重置 Arduino
6,7,8,9 引脚 3.3V(6) 提供 3.3V 输出电压;5V(7) 提供 5V 输出电压;GND(8) 接地;VVin(9) 此引脚可以用于外部电源为 Arduino 供电
10 模拟引脚 A0-A5 这些引脚可以从模拟传感器读取信号,并将其转换为可以由微处理器读取的数字值
11 微控制器 Arduino 的大脑
12 ICSP 引脚 大多数情况下,ICSP(12)是一个 AVR,一个由 MOSI,MISO,SCK,RESET,VCC 和 GND 组成的 Arduino 的微型编程头。它通常被称为 SPI(串行外设接口),可以被认为是输出的“扩展”。实际上,你是将输出设备从属到 SPI 总线的主机。
13 电源 LED 指示灯 Arduino 插入电源时,此灯亮说明电路板正常通电
14 TX 和 RX LED 在你的板上,你会发现两个标签:TX(发送)和 RX(接收)。它们出现在 Arduino UNO 板的两个地方。首先,在数字引脚 0 和 1 处,指示引脚负责串行通信。其次,TX 和 RX LED(13)。发送串行数据时,TX LED 以不同的速度闪烁。闪烁速度取决于板所使用的波特率。RX 在接收过程中闪烁。
15 数字 I/O Arduino UNO 板有 14 个数字 I/O 引脚(15)(其中 6 个提供 PWM(脉宽调制)输出),这些引脚可配置为数字输入引脚,用于读取逻辑值(0 或 1);或作为数字输出引脚来驱动不同的模块,如 LED,继电器等。标有“〜”的引脚可用于产生 PWM。
16 AREF 模拟参考,它有时用于设置外部参考电压(0 至 5 伏之间)作为模拟输入引脚的上限。

面包板

如何将面包板和 Arduino 连接起来使用呢?
一般默认红色、黄色和绿色为正极,蓝色和黑色为负极。我们这里选择了一根红色一根蓝色的线来连接 Arduino 和面包板。
熟悉了面包板之后知道上下区域一致(“楚河分界”,选择一边作为工作区域)。电压红蓝线之间与工作插线区域是分开的,这里需要连接线连接一下。

LED

LED 两只脚长度不一致,长脚为正级,短脚为负极。

发光二极管的反向击穿电压大于 5V,由于我们的 Arduino 的工作电压是 5V,这里需要增加一个电阻来保证 LED 的安全,我们看来一下盒子里面的零件有 1K 4.7K 10K 的电阻,这里我选用了一个 1K 的。

备注:因为 LED 是负温度系数的 温度越高电流越大,电流越大发热越大,然后停不住就烧了。
串电阻就限制了这个过程,温度升高,电流增加,电阻上的分压增大,led 上的电压减小,电流就减小,温度就不会再上升。

程序

这里是在昨天的基础之上继续做的实验,只需要将昨晚的 Blink 代码修改一下即可使用。

拷贝一份示例代码

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

修改一下示例代码

int ledPin = 2;

void setup() {pinMode( ledPin, OUTPUT);
}

void loop() {digitalWrite( ledPin, HIGH);
    delay(2000);
    digitalWrite(ledPin, LOW);
    delay(1000);
}

末了

在线视频

通过本次实验我们熟悉了 Arduino 板的构造,了解了如何使用面包板,对于电学知识点进行了一个简单的回顾。

退出移动版