Arduino内置教程-显示-LED流水灯条形图

这个条形图(一连串的LED灯在一条线上,就像你在音频显示器上面看到的)是一个用于模拟传感器的共用的硬件显示。它由一行LED灯,一个模拟输入如电位计,和一些代码组成。这个教程示范了怎么控制一行LED灯,而应用到任何数字输出。

简介

  • 这个条形图(一连串的LED灯在一条线上,就像你在音频显示器上面看到的)是一个用于模拟传感器的共用的硬件显示。它由一行LED灯,一个模拟输入如电位计,和一些代码组成。这个教程示范了怎么控制一行LED灯,而应用到任何数字输出。
  • 这个教程从for循环,数组和模拟输入的教程里借用一些代码
  • 条形图显示

硬件要求

  • Arduino or Genuino 开发板
  • LED 条形图显示 or 10 LEDs
  • 电位计
  • 10*220Ω 电阻
  • 连接线
  • 面包板

电路

Arduino内置教程-显示-条形图

 

原理图

Arduino内置教程-显示-条形图

样例代码

  • 程序像这样工作:首先你读取输入。你把输入值匹配到输出的范围,在这里就是10个LED灯。然后你设置一个循环重复这些输出。如果输出的数字比匹配输入范围要低时,打开LED灯。否则,关闭LED灯。
// these constants won't change:
const int analogPin = A0;   // the pin that the potentiometer is attached to
const int ledCount = 10;    // the number of LEDs in the bar graph

int ledPins[] = {
  2, 3, 4, 5, 6, 7, 8, 9, 10, 11
};   // 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);
    }
    // turn off all pins higher than the ledLevel:
    else {
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
}
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论