SparkFun Forums 

Where electronics enthusiasts find answers.

For the discussion of Arduino related topics.
By BlueSails
Hey guys.

I've used an Arduino pro mini 3.3v together with a set of IR beam break sensors ... 4d40b9dc15

I want to have the Arduino turn a pin HIGH whenever the beam has been broken for 10 secs or more. I'm going to use it as an indicator for trucks waiting in a queue. Therefore it must NOT trigger the alarm if something just passes through the beam.

I'm not quiet sure if I should use a for loop or just a set of delays to manage this
So far I've managed to turn the alarm pin HIGH whenever the beam breaks.
Can you guys give some inputs as to how you would make the alarm only trigger after a 10 sec beam break?

My code looks like this:

#define IR_PIN 6
#define LED_PIN 13
#define ALARM_PIN 10
int val = 0;

void setup() {
Serial.begin(19200); //for debug
pinMode(ALARM_PIN, OUTPUT); //Alarm pin
pinMode(LED_PIN, OUTPUT); //setup the pin to light when set
pinMode(IR_PIN, INPUT); //from IR receiver

void loop() {

val = digitalRead(IR_PIN);

digitalWrite(ALARM_PIN, val);

By lyndon
Code: Select all
// Assuming active LOW logic

// 10 seconds == 100 0.1 second intervals
int count = 100;
while (digitalRead(IR_PIN) == LOW && count > 0)

if (count == 0)
    // Was LOW for 10 seconds
    digitalWrite(ALARM_PIN, HIGH);
Have fun :-)

BTW: did those sensors work out OK for you?
By BlueSails
Actually it's wired so that when the beam breaks the input pin on the arduino goes high.
I'll just switch that around.

What happens in your code when the count reaches 0? The ALARM_PIN will go high but will the counter reset to 100 automatically when the beam reestablishes?

I've only tested the sensors inside over a distance of a few metres. I'm hoping for success outside over 20m. If not I'll have a whole other problem
By BlueSails
I've tinkered a bit with it now.

Your code successfully turns the alarm_pin HIGH after 10 sec beam break. However, after that, the alarm_pin stays HIGH no matter what happens.

Also, I guess that if the beam breaks say five times for two secs each, the counter will reach 0 and turn the alarm_pin HIGH again.

I need something to "reset" the counter whenever the beam reestablishes
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]