Omdrejningstæller til drejebænk (Læst 8762x)

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Omdrejningstæller til drejebænk
« Dato: November 09, 2013, 16:02:46 »
Min drejebænk er ombygget til direkte drift, altså uden gearkasse. Med frekvensomformer kan jeg justere hastigheden, men hvor stærkt kører den ?
Jeg søgte inspiration på nettet, og faldt over en Arduino omdrejningstæller der kunne tilpasses mit behov. http://www.pyroelectro.com/tutorials/tachometer_rpm_arduino/software.html
Med lidt eksperimenteren og uvurderlig hjælp fra Gerd og BWS, er resultatet en omdrejningstæller, med fortløbende tæller der kan nulstilles (feks ved vikling af spoler).
Som føler har jeg anvendt en hallgiver fra en Peugeot/Citroën 2,0 HDI. Den sidder og måler på knastakslen, og kører 5V, perfekt til mit formål.
Der er en kort video her: http://youtu.be/a2LCdWgaBQA

Kode:
#include <LiquidCrystal.h>
LiquidCrystal lcd(3, 5, 9, 10, 11, 12);

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

// digital pin 3 has a pushbutton (reset counts) attached to it. Give it a name:
int resetCntButton = 3;

void setup()
{
  // make the pushbutton's pin an input:
  pinMode(resetCntButton, INPUT);

  //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("RPM:");
}

//Main Loop To Calculate RPM and Update LCD Display
void loop()
{
  int rpm = 0;
  
  while(1){    

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

  //Clear The Second Row
  lcd.setCursor(0, 1);
  lcd.print("CNT:                ");   

  lcd.setCursor(4, 1);
  lcd.print(cnt);   

  //Update The RPM
  if(time > 0)
  {
      rpm = 60*(1000000/(time));    
  }
  else rpm = 0;
  
  // Reset the counter by pressing the resetCntButton
  if (digitalRead(resetCntButton)) 
  {
    cnt = 0;
  }

 }
}

//Capture The IR Break-Beam Interrupt
void fan_interrupt()
{
   time = (micros() - time_last); 
   time_last = micros();

   //Count the rotations
   cnt ++;
}

Flere billeder kommer når jeg får bygget det hele pænt ind.

Så blev jeg færdig :) Resultatet kan ses her: https://www.youtube.com/watch?v=s8taHjReOqE
« Senest Redigeret: November 21, 2013, 18:47:30 af martinbjerre »

 

Offline Jesper_Munkholm

  • µProcessoren
  • *
  • Indlæg: 351
  • Antal brugbare Indlæg: 30
  • Alt er Volt
    • Vis profil
Sv: Omdrejningstæller til drejebænk
« Svar #1 Dato: November 23, 2013, 09:16:03 »
Fedt project!   :)
Du kunne putte den her ind et sted efter den har regnet "rpm" ud! så rydder den "last-count"!
Kode:
  lcd.setCursor(4, 1);
  lcd.print("    ");     //ryd display

Jeg har brugt den til et Temp.reg/lcd/pwm-project med succes! :)
"Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime." :)

 

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Sv: Omdrejningstæller til drejebænk
« Svar #2 Dato: November 24, 2013, 09:23:06 »
Hmm...jeg havde faktisk funderet over hvordan jeg fik ryddet displayet. Det er lidt forvirrende når sidste tal bliver stående. Det må prøves en af dagene :)

 

Offline Jesper_Munkholm

  • µProcessoren
  • *
  • Indlæg: 351
  • Antal brugbare Indlæg: 30
  • Alt er Volt
    • Vis profil
Sv: Omdrejningstæller til drejebænk
« Svar #3 Dato: November 24, 2013, 10:37:07 »
Arduino er sjovt!  ;D
Det er bare med at lave en masse fejl, det lære man en masse af! (det er sådan jeg lære bedst!)
"Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime." :)

 

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Sv: Omdrejningstæller til drejebænk
« Svar #4 Dato: November 24, 2013, 10:54:43 »
Helt enig ! Men som automekaniker, der har passeret de 40, er det ikke helt nemt at lære nye tricks :)

 

Offline janengelbrecht

  • Op-amp
  • ***
  • Indlæg: 211
  • Antal brugbare Indlæg: 23
    • Vis profil
    • Personlig hjemmeside
Sv: Omdrejningstæller til drejebænk
« Svar #5 Dato: December 28, 2013, 12:42:00 »
Uh egen drejebænk...jeg sidder her og savler for vildt :) Sådan en har jeg ønsket mig i mange år :)

 

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Sv: Omdrejningstæller til drejebænk
« Svar #6 Dato: Januar 08, 2014, 18:16:23 »
Jan:
Det kan jeg godt forstå, men så undlader jeg at fortælle at jeg har både en stor og en lille drejebænk ;)