#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Define Circular LED Ring
#define LED_1_PIN 2
#define LED_2_PIN 3
#define LED_3_PIN 4
#define LED_4_PIN 5
#define LED_5_PIN 6
#define LED_NUMBER 5
#define POTENTIOMETER_PIN A0
// Define LED Matrix
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 10
#define DATA_PIN 11
#define CLK_PIN 12
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup()
{
pinMode(LED_1_PIN, OUTPUT);
pinMode(LED_2_PIN, OUTPUT);
pinMode(LED_3_PIN, OUTPUT);
pinMode(LED_4_PIN, OUTPUT);
pinMode(LED_5_PIN, OUTPUT);
// Intialize LED Matrix:
myDisplay.begin();
// Set the intensity
myDisplay.setIntensity(0);
// Clear the display
myDisplay.displayClear();
}
void loop()
{
int potentiometerValue = analogRead(POTENTIOMETER_PIN);
int ledChoice = potentiometerValue / (1024 / LED_NUMBER);
if (ledChoice > LED_NUMBER - 1) {
ledChoice = LED_NUMBER - 1;
}
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.print("1");
delay(2000);
myDisplay.setTextAlignment(PA_LEFT);
myDisplay.print("2");
delay(2000);
myDisplay.setTextAlignment(PA_RIGHT);
myDisplay.print("3");
delay(2000);
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.setInvert(true);
myDisplay.print("4");
delay(2000);
myDisplay.setInvert(false);
myDisplay.print(5);
delay(2000);
if (ledChoice == 0) {
digitalWrite(LED_1_PIN, HIGH);
digitalWrite(LED_2_PIN, LOW);
digitalWrite(LED_3_PIN, LOW);
digitalWrite(LED_4_PIN, LOW);
digitalWrite(LED_5_PIN, LOW);
}
else if (ledChoice == 1) {
digitalWrite(LED_1_PIN, LOW);
digitalWrite(LED_2_PIN, HIGH);
digitalWrite(LED_3_PIN, LOW);
digitalWrite(LED_4_PIN, LOW);
digitalWrite(LED_5_PIN, LOW);
}
else if (ledChoice == 2) {
digitalWrite(LED_1_PIN, LOW);
digitalWrite(LED_2_PIN, LOW);
digitalWrite(LED_3_PIN, HIGH);
digitalWrite(LED_4_PIN, LOW);
digitalWrite(LED_5_PIN, LOW);
}
else if (ledChoice == 3) {
digitalWrite(LED_1_PIN, LOW);
digitalWrite(LED_2_PIN, LOW);
digitalWrite(LED_3_PIN, LOW);
digitalWrite(LED_4_PIN, HIGH);
digitalWrite(LED_5_PIN, LOW);
}
else {
digitalWrite(LED_1_PIN, LOW);
digitalWrite(LED_2_PIN, LOW);
digitalWrite(LED_3_PIN, LOW);
digitalWrite(LED_4_PIN, LOW);
digitalWrite(LED_5_PIN, HIGH);
}
}