Files
arduino-libs/arduino-cli/libraries/LEDbar/examples/VUmeter/VUmeter.ino
2024-07-20 22:09:06 +08:00

55 lines
1.5 KiB
C++

/*****************************************************************
| LEDbar Arduino library - based on the 74HC164 shift register |
| Developed and maintained by MCUdude |
| https://github.com/MCUdude/LEDbar |
| Released to the public domain |
| |
| VU meter example - Read analog pin A0 and display the level |
| on the LED bar. |
*****************************************************************/
// Include the library code
#include "LEDbar.h"
// Pin definitions
byte CLK = 5;
byte DATA = 4;
byte DIM = 3;
byte analogPin = A0;
// Constants
const byte numberOfLEDs = 40; // My module has 40 LEDs
// Global variables
byte vuData = 0;
// Initialize the library with dim pin
LEDbar led(CLK, DATA, DIM);
// Alternative without dim pin (tie the dimm pin on the LED bar to Vcc)
//LEDbar led(CLK, DATA);
void setup()
{
// Initialize the LED bar with 40 LEDs
led.begin(numberOfLEDs);
// Set the brightness to 100 (8-bit --> 0 - 255)
led.brightness(100);
}
void loop()
{
// Map the analog value (0 - 1023 steps) to fit the LED bar (0 - 40 steps)
vuData = map(analogRead(analogPin), 0, 1023, 0, numberOfLEDs);
// Display vuData on the LED bar
led.setLevel(vuData);
// Alternative way to run from the oposite direction
//led.setLevel(-vuData);
// Slow down a little
delay(5);
}