So I have 4 leds,
1 pulses regularly like a heartbeat.
The other three are needed to go turnoff with 5 seconds in between each other.
I have only just started, however I have read a lot of coding throughout the arduino website to try and help me.
The program will easily time up to 5 seconds where the first led will turn off. However after that the other two do not go off at 10 seconds and then a gain at 15 seconds and I can't work out how.
I have never used timers before only delays. However for the pulse to keep pulsing I can not use delay.
Please note I am using an arduino lilypad if that makes any difference
For the timer I have used both
int interval = 5000; to create the 5 seconds pause
but then 9000 does not work for 9 seconds etc.
I did some research and saw how you use (60 * 60 * 1000);
to make it work, however I still don't know why, I have done loads of research, but I just can't get my head around it. I don't even know it I'm doing it the right way.
Any advice would be amazing to have
Thank you
here is the code
int led7 = 7;// light that will go off
int led8 = 8;// light that will go off
int led9 = 13; // light that will go off
const int LED = 9; // pulse led
unsigned long currentMillis;
unsigned long previousMillis = 0; // will store last time LED was updated
int interval = 5000; // interval at which to blink (milliseconds)
int interval2 = ( 9 * 1000);
int interval3 = (15 * 1000);
//sensor
int sensorPin = 0; // light sensor is connected to analog pin 0
int sensorValue; // variable to store the value coming from the sensor
void setup() {
digitalWrite(led7, HIGH); //makes leds default on
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
Serial.begin( 9600);
}
void loop ()
{
//for sensor
/*Serial.println("And the value is: ");
sensorValue = analogRead(sensorPin); // read the value of the sensor
if (sensorValue >= 100) { // if the number is above 100,
// digitalWrite(ledPin, HIGH); // turn the LED on
Serial.println("too bright"); // send that value to the computer
}
else { // otherwise,
//digitalWrite(ledPin, LOW); // turn the LED off
Serial.println(sensorValue); // send that value to the computer
}
*/
//for pulsing l.e.d
static float in = 4.712; // controls how bright the .e.d goes by setting parameters from 0 -19
float out;
// do input, etc. here - as long as you don't pause, the LED will keep pulsing
in = in + 0.0005; // changes speed of fade by a lot
if (in > 10.995)
in = 4.712;
out = sin(in) * 127.5 + 127.5;
analogWrite(LED,out);
//unsigned long currentMillis = millis();
currentMillis = millis();
//led7turnoff
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
digitalWrite(led7, LOW);
}
//led8 turnoff
if(currentMillis - previousMillis > interval2) {
previousMillis = currentMillis;
digitalWrite(led8, LOW);
}
if(currentMillis - previousMillis > interval3) {
previousMillis = currentMillis;
digitalWrite(led9, LOW);
}
}