Puls-tæller med funktionen OneShoot (Læst 2816x)

Offline energy

  • Nyfødt El-Elsker
  • *
  • Indlæg: 14
  • Antal brugbare Indlæg: 0
    • Vis profil
Puls-tæller med funktionen OneShoot
« Dato: Marts 04, 2015, 13:58:55 »
Hej Alle
Har haft et indlæg under Generel Elektronik ved emne navn: LINAK-Actuator LA37 til SolarTracker.
Har dermed meget brug for en Puls-tæller med funktionen OneShoot...
Vil du være behjælpelig med, at lave coderne til en  Puls tæller med OneShoot ?

Har købt en 7-Segment enhed se her!
http://www.gravitech.us/7segmentshield.html

Jeg har meget svært med, at programmer Arduino Board Model UNO R3.

Med venlig hilsen
Monie

 

Offline energy

  • Nyfødt El-Elsker
  • *
  • Indlæg: 14
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: Puls-tæller med funktionen OneShoot
« Svar #1 Dato: Marts 04, 2015, 19:59:16 »
Tachometer til Puls-tæller
http://www.pyroelectro.com/tutorials/tachometer_rpm_arduino/software.html
Har fået Tachometer til, at køre på em Mega 2660 Display I2C
Skal havde Puls-tælleren til, at kunne måle hvor mange pulser der tælles ved, at Solartrackeren køre 180grader.
Vil du være behjælpelig med, at rette koderne herunder til en Puls-tæller?
Info: signal fra Hall sensor er 24Hz
Ville også kunne bruge Puls-tæller til vinmåler!

Kode:
/*
        Author: Chris @ PyroElectro.com
        Date: 4/03/2015
        Description:
        This project is meant to capture interrupt counts from an IR breakbeam circuit
        and display them as an RPM number on a 20x4 I2C LCD module.
       
        Full Project Details:
        http://www.pyroelectro.com/tutorials/tachometer_rpm_arduino/
*/
//Arduino Mega 2660

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

volatile float time = 0;
volatile float time_last = 0;
volatile int rpm_array[5] = {0,0,0,0,0};

void setup()
{
  //Digital Pin 2 Set As An Interrupt
 attachInterrupt(0, fan_interrupt, FALLING);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Current RPM:");
}

void loop()
{
  int rpm = 0;
 
  while(1){   

     //Slow Down The LCD Display Updates
  delay(400);
 
  //Clear The Bottom Row
  lcd.setCursor(0, 1);
  lcd.print("                ");   
 
  //Update The Rpm Count
  lcd.setCursor(0, 1);
  lcd.print(rpm);   

  ////lcd.setCursor(4, 1);
  ////lcd.print(time);   

  //Update The RPM
  if(time > 0)
  {
    //5 Sample Moving Average To Smooth Out The Data
      rpm_array[0] = rpm_array[1];
      rpm_array[1] = rpm_array[2];
      rpm_array[2] = rpm_array[3];
      rpm_array[3] = rpm_array[4];
      rpm_array[4] = 60*(1000000/(time*7));   
    //Last 5 Average RPM Counts Eqauls....
      rpm = (rpm_array[0] + rpm_array[1] + rpm_array[2] + rpm_array[3] + rpm_array[4]) / 5;
  }
 
 }
}

void fan_interrupt()
{
   time = (micros() - time_last);
   time_last = micros();
}

Med venlig hilsen
Monie
« Senest Redigeret: Marts 04, 2015, 20:10:34 af energy »

 

Offline energy

  • Nyfødt El-Elsker
  • *
  • Indlæg: 14
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: Puls-tæller med funktionen OneShoot
« Svar #2 Dato: Marts 05, 2015, 18:52:13 »
Hej
Er der nogle her der vil være behjælpelig med, at vise mig hvordan jeg skal implantere OneShoot funktionen i Puls-Tælleren.
Weblink til OneShoot materiale:
http://playground.arduino.cc/Code/Buttons

Med venlig hilsen
Monie