- Arduino 教程
- Arduino - 首页
- Arduino - 概述
- Arduino - 开发板描述
- Arduino - 安装
- Arduino - 程序结构
- Arduino - 数据类型
- Arduino - 变量与常量
- Arduino - 运算符
- Arduino - 控制语句
- Arduino - 循环
- Arduino - 函数
- Arduino - 字符串
- Arduino - 字符串对象
- Arduino - 时间
- Arduino - 数组
- Arduino 函数库
- Arduino - I/O 函数
- Arduino - 高级I/O函数
- Arduino - 字符函数
- Arduino - 数学库
- Arduino - 三角函数
- Arduino 高级应用
- Arduino - Due & Zero
- Arduino - 脉宽调制 (PWM)
- Arduino - 随机数
- Arduino - 中断
- Arduino - 通信
- Arduino - I2C (集成电路)
- Arduino - SPI (串行外设接口)
- Arduino 项目
- Arduino - 闪烁LED
- Arduino - 渐变LED
- Arduino - 读取模拟电压
- Arduino - LED条形图
- Arduino - 键盘注销
- Arduino - 键盘消息
- Arduino - 鼠标按键控制
- Arduino - 键盘串口
- Arduino 传感器
- Arduino - 湿度传感器
- Arduino - 温度传感器
- Arduino - 水位检测/传感器
- Arduino - PIR传感器
- Arduino - 超声波传感器
- Arduino - 连接开关
- 电机控制
- Arduino - 直流电机
- Arduino - 伺服电机
- Arduino - 步进电机
- Arduino 与声音
- Arduino - 音调库
- Arduino - 无线通信
- Arduino - 网络通信
- Arduino 有用资源
- Arduino - 快速指南
- Arduino - 有用资源
- Arduino - 讨论
Arduino - LED条形图
此示例演示如何读取模拟引脚 0 上的模拟输入,将 `analogRead()` 的值转换为电压,并将其打印到 Arduino 软件 (IDE) 的串口监视器。
所需组件
您将需要以下组件:
- 1 个 面包板
- 1 个 Arduino Uno R3
- 1 个 5kΩ 可变电阻器(电位器)
- 2 个 跳线
- 8 个 LED 或您可以使用(如下所示的 LED 条形图显示)
步骤
按照电路图,将组件连接到面包板,如下图所示。
程序
在您的计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。点击“新建”打开一个新的程序文件。
10 段 LED 条形图
这些 10 段条形图 LED 具有多种用途。它们具有紧凑的尺寸和简单的连接方式,易于用于原型设计或成品。本质上,它们是 10 个独立的蓝色 LED 集成在一起,每个 LED 都有独立的阳极和阴极连接。
它们也有黄色、红色和绿色。
注意 - 这些条形图的引脚排列可能与数据表上的说明有所不同。将器件旋转 180 度可以纠正此差异,使引脚 11 成为第一个引脚。
Arduino 代码
/* LED bar graph Turns on a series of LEDs based on the value of an analog sensor. This is a simple way to make a bar graph display. Though this graph uses 8LEDs, you can use any number by changing the LED count and the pins in the array. This method can be used to control any series of digital outputs that depends on an analog input. */ // these constants won't change: const int analogPin = A0; // the pin that the potentiometer is attached to const int ledCount = 8; // the number of LEDs in the bar graph int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // an array of pin numbers to which LEDs are attached void setup() { // loop over the pin array and set them all to output: for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); } } void loop() { // read the potentiometer: int sensorReading = analogRead(analogPin); // map the result to a range from 0 to the number of LEDs: int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); // loop over the LED array: for (int thisLed = 0; thisLed < ledCount; thisLed++) { // if the array element's index is less than ledLevel, // turn the pin for this element on: if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH); }else { // turn off all pins higher than the ledLevel: digitalWrite(ledPins[thisLed], LOW); } } }
代码说明
程序的工作原理如下:首先,读取输入。将输入值映射到输出范围,在本例中为十个 LED。然后设置一个for 循环来迭代输出。如果系列中的输出编号小于映射的输入范围,则将其打开。否则,将其关闭。
结果
当模拟读取值增加时,您将看到 LED 一个接一个地亮起;当读取值减少时,LED 一个接一个地熄灭。
广告