此示例显示如何读取模拟引脚0处的模拟输入,将值从analogRead()转换为电压,并将其输出到Arduino软件(IDE)的串行监视器。
必需的组件
您将需要以下组件 -
- 1 × Breadboard 面包板
- 1 × Arduino Uno R3
- 1 × 5k ohm variable resistor (potentiometer) 5k欧姆可变电阻器(电位器)
- 2 × Jumper 跳线
- 8 × LED(LED条形图显示如下图所示)
程序
按照电路图并连接面包板上的组件,如下图所示。


草图
在计算机上打开Arduino IDE软件。 在Arduino语言编码将控制你的电路。 通过单击新建打开一个新的草图文件。
10段LED条形图

这些10段条形图LED有许多用途。 具有紧凑的占地面积,简单的连接,它们易于原型或成品。 基本上,它们是容纳在一起的10个单独的蓝色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-loop 以迭代输出。 如果系列中的输出数量低于映射的输入范围,则将其打开。 如果没有,你把它关闭。
结果
当模拟读数的值增加时,您将看到LED逐个打开,而当读数减少时,LED逐个关闭。
转载本站内容时,请务必注明来自W3xue,违者必究。