#include <LiquidCrystal_I2C.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define TONE_PITCH 440
#define TONE_USE_INT
#include <TonePitch.h>
LiquidCrystal_I2C display(0x27, 16, 2);
#define ThisDotMatrix MD_MAX72XX::PAROLA_HW
#define howManyScreens 8
#define dataPin_DM 11
#define csPin_DM 9
#define clkPin_DM 13
MD_Parola dotMatrix(ThisDotMatrix, csPin_DM, howManyScreens);
#define knobPin A0
#define speaker 8
int amountOfLed = 10;
int ledPins[] = {
1, 2, 3, 4, 5, 6, 7, 10, 11, 12
};
void setup() {
for(int led: ledPins){
pinMode(led, OUTPUT);
}
pinMode(knobPin, INPUT);
pinMode(speaker, OUTPUT);
display.init();
display.backlight();
display.setCursor(0,0);
display.print("Current Value:");
dotMatrix.begin();
dotMatrix.setIntensity(15);
dotMatrix.displayClear();
dotMatrix.displayText("DOOHICKEY IN PROGRESS!!", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
void loop() {
int knobValue = analogRead(knobPin);
int barValue = map(knobValue, 0, 1023, 0, amountOfLed);
display.setCursor(0,1);
display.print(barValue);
for(int currentBar = 0; currentBar < amountOfLed; currentBar++)
{
if(currentBar < barValue){
digitalWrite(ledPins[currentBar], HIGH);
}else {
digitalWrite(ledPins[currentBar], LOW);
}
}
if(barValue == 10){
tone(speaker, 46.25, 150);
}
if (dotMatrix.displayAnimate()) {
dotMatrix.displayReset();
}
}