1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-04 15:24:12 +01:00
Arduino/build/shared/examples/07.Display/barGraph/barGraph.ino

62 lines
1.6 KiB
Arduino
Raw Normal View History

2009-07-11 02:34:59 +02:00
/*
LED bar graph
2009-07-11 02:34:59 +02:00
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.
2009-07-11 02:34:59 +02:00
This method can be used to control any series of digital outputs that
depends on an analog input.
2009-07-11 02:34:59 +02:00
The circuit:
* LEDs from pins 2 through 11 to ground
created 4 Sep 2010
by Tom Igoe
2010-02-24 04:26:52 +01:00
This example code is in the public domain.
2009-07-11 02:34:59 +02:00
http://www.arduino.cc/en/Tutorial/BarGraph
*/
// these constants won't change:
const int analogPin = A0; // the pin that the potentiometer is attached to
2009-07-11 02:34:59 +02:00
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
2009-07-11 02:34:59 +02:00
void setup() {
// loop over the pin array and set them all to output:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
2009-07-11 02:34:59 +02:00
}
}
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);
}
2009-07-11 02:34:59 +02:00
// turn off all pins higher than the ledLevel:
else {
digitalWrite(ledPins[thisLed], LOW);
2009-07-11 02:34:59 +02:00
}
}
}