面向儿童的 Arduino 编程:Arduino入门项目-LED条形图

面向儿童的 Arduino 编程:Arduino入门项目-LED条形图

这节课我们将展示如何读取模拟引脚 0 处的模拟输入,将 analogRead() 中的值转换为电压,并将其打印到 Arduino 软件 (IDE) 的串行监视器。

1、所需组件

  • 1 ×面包板
  • 1 × Arduino Uno R3
  • 1 × 5k 欧姆可变电阻器(电位器)
  • 2 ×跳线
  • 8 × LED 或使用(LED 条形图显示如下图所示)

2、电路程序

按照电路图将组件连接到面包板上,如下图所示。

LED条形图组件连接
LED条形图组件连接
LED条形图电路图
LED条形图电路图

3、新建编码草图

在计算机上打开Arduino IDE软件。用Arduino语言编码将控制您的电路。通过单击“新建”(New) 打开新的草图文件。

LED条形图新建草图
LED条形图新建草图

10段LED条形图

10段LED条形图
10段LED条形图

这些 10 段条形图 LED 有很多用途。它们占地面积小,连接简单,易于制作原型或成品。从本质上讲,它们是 10 个单独的蓝色 LED,每个 LED 都有一个单独的阳极和阴极连接。

它们也有黄色、红色和绿色可供选择。

 − 这些条形图上的引脚可能与数据表上列出的引脚不同。可将设备旋转 180 度,使引脚 11 成为第一个排队的引脚。

4、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);
        } 
    } 
}

注意事项:

草图的工作方式是这样的:首先,您阅读输入,将输入值映射到输出范围,在本例中为 10 个 LED。然后,设置一个 for 循环来遍历输出。如果序列中的输出小于映射的输入范围,则将其开启(灯亮起)。如果没有,请将其关闭(灯熄灭)。

5、执行结果

当模拟读数值增加时,您会看到 LED 一一亮起,当读数减小时,LED 会一一熄灭。

NCT考前练习

点图领0元编程课,学编程创造孩子终身价值

核桃编程免费课

更多课程

公众号

关注公众号

x