Rabu, 31 Maret 2021

Cara menghiting RPM dengan satu interupt revolusi

Coding untuk hitung RPM  dengan satu interupt satu revolusi






CATATAN:
  1. Hubungkan pin VCC pada LCD i2C ke pin 5V Arduino
  2. Hubungkan pin GND pada LCD i2C ke pin GND Arduino
  3. Hubungkan pin SCL pada LCD i2C ke pin SCL (atau bisa pake pin A5) Arduino
  4. Hubungkan pin SDA pada LCD i2C ke pin SDA (atau bisa pake pin A4) Arduino

/*
* http://elimelecsarduinoprojects.blogspot.co.id/2013/06/measure-rpms-arduino.html
*/
#include<LiquidCrystal.h>
//LiquidCrystal lcd(12,11,6,5,4,3);
LiquidCrystal lcd(12, 11, 5, 4, 3, 10);

volatile int rpmcount = 0;  //see http://arduino.cc/en/Reference/Volatile
int rpm = 0;
unsigned long lastmillis = 0;

void setup(){
 Serial.begin(9600); 
 lcd.begin(16,2); 
 attachInterrupt(0, rpm_fan, FALLING);//interrupt cero (0) is on pin two(2).
}

void loop(){

 if (millis() - lastmillis == 1000){  /*Uptade every one second, this will be equal to reading frecuency (Hz).*/

 detachInterrupt(0);    //Disable interrupt when calculating


 rpm = rpmcount * 60;  /* Convert frecuency to RPM, note: this works for one interruption per full rotation. For two interrups per full rotation use rpmcount * 30.*/

 Serial.print("RPM=\t"); //print the word "RPM" and tab.
 Serial.print(rpm); // print the rpm value.
 Serial.print("\t Hz=\t"); //print the word "Hz".
 Serial.println(rpmcount); /*print revolutions per second or Hz. And print new line or enter.*/

lcd.clear();
lcd.setCursor(1,0);
lcd.print("__TACHOMETER_V1");
lcd.setCursor(1,1);
lcd.print(rpm);
lcd.setCursor(6,1);
lcd.print(" RPM");
lcd.print("   ");

 rpmcount = 0; // Restart the RPM counter
 lastmillis = millis(); // Uptade lasmillis
 attachInterrupt(0, rpm_fan, FALLING); //enable interrupt
  }
}


void rpm_fan(){ /* this code will be executed every time the interrupt 0 (pin2) gets low.*/
  rpmcount++;
}

Cara menghiting RPM dengan satu interupt revolusi

Coding untuk hitung RPM  dengan satu interupt satu revolusi CATATAN: Hubungkan pin VCC pada LCD i2C ke pin 5V Arduino Hubungkan pin GND pada...