Loading...
Pages: [1]   Go Down
Author Topic: An LED flash question!  (Read 253 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

How do I flash an LED on for 100ms and off for 3000ms without using delay?

Thanks in advance.
Logged

Sydney
Offline Offline
God Member
*****
Karma: 14
Posts: 717
Big things come in large packages
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Look at the blink without delay example.
Logged


Johannesburg UTC+2
Offline Offline
Edison Member
*
Karma: 34
Posts: 1705
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Look at the blink without delay example.

But you'll need to think about how to have two different intervals for on = 100ms and off = 3000ms. As that example stands, the led is off and on for the same interval...
Logged

IT Crowd:
Roy... "Have you tried turning it off and on again?"
Moss.. "Have you tried forcing an unexpected reboot?"

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Could someone point me in the right direction. I have uploaded the blink without delay, but cannot see how to get the 'short on' and 'long off'
Logged

UK
Offline Offline
Sr. Member
****
Karma: 9
Posts: 351
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You'll need to keep two delays, timers and a state record

E.g.

delayBlinkOn
delayBlinkOff
timerBlinkOn
timerBlinkOff
stateBlinkOn
stateBlinkOff

1) Turn your LED on and set stateBlinkOn to True and timerBlinkOn to the current millis().
2) While stateBlinkOn is true then you want to check timerBlinkOn each loop until it's equal or greater than millis() + delayBlinkOn.
3) Once the condition is met, turn your LED off and set stateBlinkOff to True and timerBlinkOff to current millis().
4) While stateBlinkOff is true then check the timerBlinkOff each loop until it's equal or greater than millis() +  delayBlinkOff.
5) Once the condition is met, you're back to turn your LED on at Step 1 above and the sequence repeats.

Now, go code that up. ;-)
Logged

Global Moderator
UK
Online Online
Brattain Member
*****
Karma: 137
Posts: 19015
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

All you need to do in the blink without delay is change the value of "interval" when you change the LED state.
Logged

Pete, it's a fool looks for logic in the chambers of the human heart.

Pages: [1]   Go Up
Print
 
Jump to: