Arduino - LED条形图

Arduino - LED条形图 首页 / Arduino入门教程 / Arduino - LED条形图

本示例说明如何读取模拟引脚0上的模拟输入,如何将AnalogRead()的值转换为电压并将其打印输出到Arduino软件(IDE)的串行监视器。

所需组件

您将需要以下组件-

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

电路图

遵循电路图,并将面包板上的组件连接起来,如下图所示。

Bar BreadboardConnection to Bar Breadboard

10段LED条形图

LED Bar Graph

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

它们也有黄色,红色和绿色。

注意-这些条形图上的引脚排列可能与数据表上列出的有所不同,将设备旋转180度将纠正更改,使插针11成为第一个插针。

链接:https://www.learnfk.comhttps://www.learnfk.com/arduino/arduino-led-bar-graph.html

来源:LearnFk无涯教程网

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.
*/

//这些常数不会改变:
const int analogPin=A0; //电位器连接到的引脚
const int ledCount=8; //条形图中的 LED 数量
int ledPins[]={2, 3, 4, 5, 6, 7, 8, 9}; //连接 LED 的引脚编号数组

void setup() {
   //循环引脚数组并将它们全部设置为输出:
   for (int thisLed=0; thisLed < ledCount; thisLed++) {
      pinMode(ledPins[thisLed], OUTPUT);
   }
}

void loop() {
   //读取电位器:
   int sensorReading=analogRead(analogPin);
   //将结果映射到从 0 到 LED 数量的范围:
   int ledLevel=map(sensorReading, 0, 1023, 0, ledCount);
   //循环 LED 阵列:
   for (int thisLed=0; thisLed < ledCount; thisLed++) {
      //如果数组元素的索引小于 ledLevel,
      //打开此元素的引脚:
      if (thisLed < ledLevel) {
         digitalWrite(ledPins[thisLed], HIGH);
      }else { //关闭所有高于 ledLevel 的引脚:
         digitalWrite(ledPins[thisLed], LOW);
      }
   }
} 

注意代码

代码的工作方式如下: 首先,您将输入值映射到输出范围,在这种情况下为十个LED,然后,设置一个 for循环以遍历输出,如果系列中的输出编号小于映射的输入范围,则将其打开。如果没有,请关闭它。

输出结果

当模拟读数的值增加时,您将看到LED一只一亮,而当读数减小时,LED则一一熄灭。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

快速上手Kotlin开发 -〔张涛〕

Web协议详解与抓包实战 -〔陶辉〕

Swift核心技术与实战 -〔张杰〕

编译原理之美 -〔宫文学〕

Netty源码剖析与实战 -〔傅健〕

基于人因的用户体验设计课 -〔刘石〕

攻克视频技术 -〔李江〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

零基础学Python(2023版) -〔尹会生〕

好记忆不如烂笔头。留下您的足迹吧 :)