/*
LED bar graph
https://wokwi.com/arduino/projects/309829489359061570
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 10
LEDs, 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.
The circuit:
- LEDs from pins 2 through 11 to ground
created 4 Sep 2010
by Tom Igoe
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/BarGraph
*/
//常数定义
const int analogPin = A0; // 模拟量输入为A0
const int ledCount = 10; // LED组,一组10个
const int Buzze = 1; //蜂鸣器,赋值为1
int ledPins[] = {
2, 3, 4, 5, 6, 7, 8, 9, 10, 11
}; // 用C的数组定义这组 LED,对应的针脚从2到11
void setup() {
// loop over the pin array and set them all to output:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
Serial.begin(115200);
}
pinMode(Buzze, OUTPUT);
}
void loop() {
// 从模拟量输入针脚读,放入变量
int sensorReading = analogRead(analogPin);
Serial.println(sensorReading );
// 把电位器滑动位置的阻值对应LED阵列发光的LED个数
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
Serial.println(ledCount);
// loop over the LED array:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
// 点亮滑动电阻值内的所有LED灯
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
// 关闭高于滑动电阻的LED
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
digitalWrite(Buzze, HIGH);
}