Random LED Millis
The goal of this project is to create 4 LED that turn on randomly based on a random number generator and use an interval based on Millis. To create this project, you will need a push button, 4 led lights and the wires to hook them up.
Step 1
The first step is pretty simple. Connect 4 LEDs and and a push button to your Arduino. In our code, we will use the pushing of the button to start the LEDs.
An LED will light up after a two second interval as determined but Millis.
A random number generator will decided which led to turn on.
Code:
unsigned long wait = 2000;
unsigned long previousTime = 0; int buttonPin = 2; int buttonState = 0; int previousButton = 0; int pin1 = 13; int pin2 = 12; int pin3 = 11; int pin4 = 10; long randomNumber; boolean led1State = false; boolean led2State = false; boolean led3State = false; boolean led4State = false;
void setup() { pinMode(buttonPin, INPUT); pinMode(pin1, OUTPUT); pinMode(pin2, OUTPUT); pinMode(pin3, OUTPUT); pinMode(pin4, OUTPUT); }
void loop() { //read the button's state (on or off) buttonState = digitalRead(buttonPin); if(buttonState != previousButton) { if(buttonState == HIGH)//Button is pressed { unsigned long time = millis; randomNumber = random(0,3);
if(time - previousTime >= wait) { switch(randomNumber) { case 0: digitalWrite(pin1, HIGH); digitalWrite(pin2, LOW); digitalWrite(pin3, LOW); digitalWrite(pin4, LOW); previousTime = time; break;
case 1: digitalWrite(pin1, LOW); digitalWrite(pin2, HIGH); digitalWrite(pin3, LOW); digitalWrite(pin4, LOW); previousTime = time; break;
case 2: digitalWrite(pin1, LOW); digitalWrite(pin2, LOW); digitalWrite(pin3, HIGH); digitalWrite(pin4, LOW); previousTime = time; break;
case 3: digitalWrite(pin1, LOW); digitalWrite(pin2, LOW); digitalWrite(pin3, LOW); digitalWrite(pin4, HIGH); previousTime = time; break; } } } } }