Pages: [1]   Go Down
Author Topic: Sound input module + UNO board + LED .. Help !  (Read 324 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi all,

In my project I'm using a Sound input module + UNO board + LED

I'm trying to count a certain  number of pulses using an op-amp connected to the sound module.
In addition, I'm interested on counting these pulses on certain amount of duration.
The LED will turn on if this certain amount of pulses occurs on this duration.

I uploaded the following code :

------------------------------------------------------------------
const byte LED = 13;
const byte MIC = 2;
int count=0;
int time=0;
// Interrupt Service Routine (ISR)
void pinChange ()
{

 if(digitalRead (MIC) == HIGH)
 {
      count++;
      Serial.println(count);
         
   if (count==14)
   {
      count=0;
      digitalWrite (LED, HIGH);
      delay(100);
   }
 } 
else
 {
           
           digitalWrite (LED, LOW);
            delay(100);     
  }
   
}  // end of pinChange

void setup ()
{
  Serial.begin(9600);
  pinMode (LED, OUTPUT);  // so we can update the LED
  digitalWrite (MIC, HIGH);  // internal pull-up resistor
  attachInterrupt (0, pinChange, CHANGE);  // attach interrupt handler
}  // end of setup

void loop ()
{
  // loop doing nothing
}

------------------------------------------------------------------

This code counted the number of pulses and when reaching a 14 pulse LED turns on for a while and then start counting again.

The problem I'm facing now is how to count the pulses in certain amount of time. For example , count the number of pulses in 10 seconds only. If the number of pulses reaches 14 in these 10 seconds turn the LED on and start time and count again.

I tried some different loops like for, while but nothing works. I also tried to understand the timers but it was complicated specially that I'm still a beginner in Arduinos and  my time is limited.

I would be thankful if any one could help me.
Thanks in advance.
Logged

Offline Offline
Sr. Member
****
Karma: 12
Posts: 380
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This inbuilt function should give you what you need to determine when 10 seconds has passed:

http://arduino.cc/en/Reference/millis
Logged

Do not IM me. I will not respond. Ask questions in the forum.

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

This inbuilt function should give you what you need to determine when 10 seconds has passed:

http://arduino.cc/en/Reference/millis


I added this function, however, my time didn't return back to zero. It keeps counting the time.
I need it to count 10 seconds only and then start again from 0 to 10.

Thanks a lot ..
Logged

Offline Offline
Sr. Member
****
Karma: 12
Posts: 380
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It can do what you need. You just need to re-think how to use it. Look at how other people use the function. You don't need it to count 10 seconds, you need it to be able to tell when 10 seconds has passed.
Logged

Do not IM me. I will not respond. Ask questions in the forum.

Pages: [1]   Go Up
Jump to: