Arduino LED條形圖

2018-11-20 18:18 更新

此示例展示如何讀取模擬引腳0處的模擬輸入,將analogRead()中的值轉(zhuǎn)換為電壓,并將其輸出到Arduino軟件(IDE)的串口監(jiān)視器。

必需的組件

你將需要以下組件:

  • 1 × Breadboard 面包板
  • 1 × Arduino Uno R3
  • 1 × 5k歐姆可變電阻(電位器)
  • 2 × 跳線
  • 8 × LED(LED條形圖顯示如下圖所示)

程序

按照電路圖連接面包板上的組件,如下圖所示。

連接面包板

電路圖

草圖

在計(jì)算機(jī)上打開(kāi)Arduino IDE軟件。使用Arduino語(yǔ)言進(jìn)行編碼控制你的電路。通過(guò)單擊“New”打開(kāi)一個(gè)新的草圖文件。

Sketch

10段LED條形圖

LED條形圖

這10段條形圖LED有許多用途。緊湊的占用空間,簡(jiǎn)單的連接,它們易用于原型或成品。實(shí)質(zhì)上,它們是10個(gè)獨(dú)立的藍(lán)色LED,每個(gè)都有獨(dú)立的陽(yáng)極和陰極連接。

它們也有黃色,紅色和綠色。

注意 - 這些條形圖上的引腳可能與數(shù)據(jù)表中列出的內(nèi)容不同。將設(shè)備旋轉(zhuǎn)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);
      }
   }
} 

代碼說(shuō)明

草圖的工作方式是這樣的:首先,你閱讀輸入。將輸入值映射到輸出范圍,在這種情況下為十個(gè)LED。然后,你設(shè)置一個(gè) for-loop 以迭代輸出。如果系列中的輸出數(shù)量低于映射的輸入范圍,則將其打開(kāi)。如果沒(méi)有,則將其關(guān)閉。

結(jié)果

當(dāng)模擬讀數(shù)的值增加時(shí),你將看到LED逐個(gè)打開(kāi),而當(dāng)讀數(shù)減少時(shí),LED逐個(gè)關(guān)閉。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)