Arduino 简明教程
Arduino - LED Bar Graph
此示例向您展示如何读取模拟针脚 0 上的模拟输入,将 analogRead() 中的值转换成电压,并将其打印到 Arduino 软件 (IDE) 的串口监视器中。
This example shows you how to read an analog input at analog pin 0, convert the values from analogRead() into voltage, and print it out to the serial monitor of the Arduino Software (IDE).
Components Required
您将需要以下组件:
You will need the following components −
-
1 × Breadboard
-
1 × Arduino Uno R3
-
1 × 5k ohm variable resistor (potentiometer)
-
2 × Jumper
-
8 × LED or you can use (LED bar graph display as shown in the image below)
Procedure
按照电路图并将组件连接到面包板上,如下图所示。
Follow the circuit diagram and hook up the components on the breadboard as shown in the image given below.


Sketch
在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击“新建”以新建一个草图文件。
Open the Arduino IDE software on your computer. Coding in the Arduino language will control your circuit. Open a new sketch File by clicking New.

10 Segment LED Bar Graph

这些 10 段条形图 LED 有多种用途。它们占用空间小、连接简单,无论是用于原型设计还是成品都很容易使用。从本质上说,它们是 10 个单独的蓝色 LED 组合在一起,每个 LED 都具有一个单独的阳极和阴极连接。
These 10-segment bar graph LEDs have many uses. With a compact footprint, simple hookup, they are easy for prototype or finished products. Essentially, they are 10 individual blue LEDs housed together, each with an individual anode and cathode connection.
它们还有黄色、红色和绿色。
They are also available in yellow, red, and green colors.
Note − 这些条形图上的引脚分配可能与数据表上列出的不同。将设备旋转 180 度将更正更改,使引脚 11 成为第一引脚。
Note − The pin out on these bar graphs may vary from what is listed on the datasheet. Rotating the device 180 degrees will correct the change, making pin 11 the first pin in line.
Arduino Code
/*
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);
}
}
}
Code to Note
该草图的作用如下:首先,您读取输入。您将输入值映射到输出范围,在本例中为十个 LED。然后,您设置一个 for-loop 在输出上进行迭代。如果输出在序列中的数字低于映射的输入范围,则将其打开。否则,将其关闭。
The sketch works like this: first, you read the input. You map the input value to the output range, in this case ten LEDs. Then you set up a for-loop to iterate over the outputs. If the output’s number in the series is lower than the mapped input range, you turn it on. If not, you turn it off.