Arduino项目04.Arduino LED条形图

此示例展示如何读取模拟引脚0处的模拟输入,将analogRead()中的值转换为电压,并将其输出到Arduino软件(IDE)的串口监视器。

必需的组件

你将需要以下组件:

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

程序

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

连接面包板
电路图

草图

在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。

Sketch

10段LED条形图

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逐个关闭。

发布者:suiyublg,转转请注明出处:https://huibian.net/1404-2/

赞 (0)
suiyublg的头像suiyublg
上一篇 2017年4月14日 16:45
下一篇 2017年4月16日 16:48

相关推荐

  • Arduino教程17.Arduino 布尔运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 and(与) && 称为逻辑运算符与。如果两个操作数都是非零,那么条件为真。 (A && B)为真 or(或) || 称为逻辑OR运算符。如果两个操作数中的任何一个非零,则条件变为真。 (A || B)为真 not(非) ! 称为逻辑运算符非。用于反转其…

    2017年3月23日
    65200
  • Arduino项目08.Arduino 键盘串口

    此示例监听来自串口的一个字节。当接收到时,电路板发送一个击键回到计算机。发送的击键比接收的击键高一个,因此如果从串口监视器发送“a”,你将从连接到计算机的电路板接收到“b”。“1”将返回“2”等。 警告 – 当你使用 Keyboard.print()命令时,Leonardo,Micro或Due板会接管你计算机的键盘。为确保在使…

    2017年4月19日
    75900
  • Arduino教程15.Arduino 算术运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 赋值运算符 = 将等号右侧的值存储在等号左边的变量中。 A = B 加号 + 两个操作两个操作数相加 A + B将得出30 减号 – 从第一个操作数中减去第二个操作数 A – B将得出-10 乘号 * 将两个操作数相乘 A * B将得出200 除号 / 用分母除…

    2017年3月23日
    67200
  • Arduino进阶02.Arduino 脉冲宽度调制

    无法量产的亮银版,价格据说10万元都搞不定。

    2017年4月6日
    80500
  • Arduino教程05.Arduino 数据类型

    C中的数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型确定它在存储器中占用多少空间以及如何解释存储的位模式。

    下表提供了你将在Arduino编程期间使用的所有数据类型。

    2017年3月21日
    90003

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!