In this lesson we will add two buttons to the LED sequencer circuit.
[ ] Install a tactile switch between D12 and ground.
[ ] Install a tactile switch between D11 and ground.
#define NUM_LEDS 4
int position;
int interval;
int ledState;
unsigned long ptime;
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
interval = 200;
}
void loop()
{
unsigned long ctime;
int i;
ctime = millis();
if (digitalRead(11))
{
interval--;
if (interval == 0)
interval = 1;
}
if (digitalRead(12))
{
interval++;
if (interval == 1000)
interval = 1000;
}
if (ctime - ptime >= interval)
{
Serial.println(interval);
ptime = ctime;
for (i = 0; i < NUM_LEDS; i++)
digitalWrite(i + 2, LOW);
digitalWrite(position + 2, HIGH);
position = position + 1;
if (position > NUM_LEDS - 1)
{
position = 0;
}
}
delay(10);
}