Initialized
This commit is contained in:
206
src/main.cpp
Normal file
206
src/main.cpp
Normal file
@@ -0,0 +1,206 @@
|
||||
#include <Arduino.h>
|
||||
|
||||
int USER_STEPS = 5;
|
||||
int STAFF_STEPS = 25;
|
||||
|
||||
int maxVolume = 100;
|
||||
int userVolume = 100;
|
||||
int potPosition = 64;
|
||||
int oldUserVolume = userVolume;
|
||||
|
||||
void volumeUp();
|
||||
void volumeDown();
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(11, OUTPUT); // Green
|
||||
pinMode(12, OUTPUT); // Red LED (D4)
|
||||
pinMode(LED_BUILTIN, OUTPUT); // Green LED
|
||||
|
||||
pinMode(2, INPUT); // SW1
|
||||
pinMode(4, INPUT); // SW2
|
||||
|
||||
// RF Receiver
|
||||
pinMode(A0, INPUT); // Remote Button D
|
||||
pinMode(A1, INPUT); // Remote Button C
|
||||
pinMode(A2, INPUT); // Remote Button B
|
||||
pinMode(A3, INPUT); // Remote Button A
|
||||
|
||||
pinMode(10, OUTPUT); // D10 - CS
|
||||
pinMode(9, OUTPUT); // D9 - U/D
|
||||
digitalWrite(10, HIGH);
|
||||
digitalWrite(9, LOW);
|
||||
|
||||
for (int i = 0; i < 64; i++)
|
||||
{
|
||||
volumeUp();
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
switch (maxVolume)
|
||||
{
|
||||
case 100:
|
||||
digitalWrite(11, HIGH);
|
||||
digitalWrite(12, LOW);
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
break;
|
||||
case 75:
|
||||
digitalWrite(11, LOW);
|
||||
digitalWrite(12, HIGH);
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
break;
|
||||
case 50:
|
||||
digitalWrite(11, LOW);
|
||||
digitalWrite(12, LOW);
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
break;
|
||||
case 25:
|
||||
digitalWrite(11, HIGH);
|
||||
digitalWrite(12, HIGH);
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
break;
|
||||
}
|
||||
|
||||
// SW1 - Staff Volume Up
|
||||
if (!digitalRead(2))
|
||||
{
|
||||
if (maxVolume < 100)
|
||||
{
|
||||
maxVolume += STAFF_STEPS;
|
||||
delay(300);
|
||||
}
|
||||
}
|
||||
|
||||
// SW2 - Staff Volume Down
|
||||
if (!digitalRead(4))
|
||||
{
|
||||
if (maxVolume > 0)
|
||||
{
|
||||
maxVolume -= STAFF_STEPS;
|
||||
|
||||
if (userVolume > maxVolume)
|
||||
{
|
||||
userVolume = maxVolume;
|
||||
oldUserVolume = userVolume;
|
||||
}
|
||||
delay(300);
|
||||
}
|
||||
}
|
||||
|
||||
// Remote D - Mute
|
||||
if (digitalRead(A0))
|
||||
{
|
||||
|
||||
// Check if we are in a muted state
|
||||
if (oldUserVolume > userVolume)
|
||||
{
|
||||
if (oldUserVolume > maxVolume)
|
||||
{
|
||||
userVolume = maxVolume;
|
||||
}
|
||||
else
|
||||
{
|
||||
userVolume = oldUserVolume;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
oldUserVolume = userVolume;
|
||||
userVolume = 0;
|
||||
}
|
||||
|
||||
delay(300);
|
||||
}
|
||||
|
||||
// Remote A - Significantly Lower Volume
|
||||
if (digitalRead(A3))
|
||||
{
|
||||
if (oldUserVolume > userVolume)
|
||||
{
|
||||
if (oldUserVolume > maxVolume)
|
||||
{
|
||||
userVolume = maxVolume;
|
||||
}
|
||||
else
|
||||
{
|
||||
userVolume = oldUserVolume;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
oldUserVolume = userVolume;
|
||||
userVolume = 15;
|
||||
}
|
||||
|
||||
delay(300);
|
||||
}
|
||||
|
||||
// Remote B - Volume Up
|
||||
if (digitalRead(A2) && !(oldUserVolume > userVolume))
|
||||
{
|
||||
volumeUp();
|
||||
|
||||
if ((userVolume + USER_STEPS) > maxVolume)
|
||||
{
|
||||
userVolume = maxVolume;
|
||||
oldUserVolume = userVolume;
|
||||
}
|
||||
else
|
||||
{
|
||||
userVolume += USER_STEPS;
|
||||
oldUserVolume = userVolume;
|
||||
}
|
||||
|
||||
delay(300);
|
||||
}
|
||||
|
||||
// Remote C - Volume Down
|
||||
if (digitalRead(A1) && !(oldUserVolume > userVolume))
|
||||
{
|
||||
volumeDown();
|
||||
|
||||
if ((userVolume - USER_STEPS) < 0)
|
||||
{
|
||||
userVolume = 0;
|
||||
oldUserVolume = userVolume;
|
||||
}
|
||||
else
|
||||
{
|
||||
userVolume -= USER_STEPS;
|
||||
oldUserVolume = userVolume;
|
||||
}
|
||||
|
||||
delay(300);
|
||||
}
|
||||
}
|
||||
|
||||
void volumeUp()
|
||||
{
|
||||
digitalWrite(9, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(10, LOW);
|
||||
delay(1);
|
||||
digitalWrite(9, LOW);
|
||||
delay(1);
|
||||
digitalWrite(9, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(10, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(9, LOW);
|
||||
digitalWrite(10, HIGH);
|
||||
}
|
||||
|
||||
void volumeDown()
|
||||
{
|
||||
digitalWrite(9, LOW);
|
||||
delay(1);
|
||||
digitalWrite(10, LOW);
|
||||
delay(1);
|
||||
digitalWrite(9, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(9, LOW);
|
||||
delay(1);
|
||||
digitalWrite(10, HIGH);
|
||||
}
|
||||
Reference in New Issue
Block a user