#include <LiquidCrystal_I2C.h>
// Instantiate the Objects
LiquidCrystal_I2C lcd(0x27, 16, 2); // 3F the address of the LCD
#define rpmInput 2
#define rpmInput2 3
int switchPin = 11; // choose the input pin (for a pushbutton)
int rpm = 0;
int rpm2 = 0;
//int pid;
unsigned long millisBefore;
volatile int objects;
volatile int objects2;
void setup(){
Serial.begin(57600);
Serial.println("Welcome to the Serial Monitor!");
Serial.println("---------------------------------");
attachInterrupt(digitalPinToInterrupt(rpmInput), count, FALLING);
delay(1000);
attachInterrupt(digitalPinToInterrupt(rpmInput2), count2, FALLING);
delay(1000);
pinMode(switchPin, INPUT); // declare as input
// Initialize the display
lcd.init();
lcd.init();
lcd.backlight();
lcd.noCursor();
pinMode(rpmInput, INPUT);
pinMode(rpmInput2, INPUT);
}//end setup
void loop() {
analogWrite(11,110);
if (millis() - millisBefore > 1000) {
rpm = (objects / 3.0)*60;
objects = 0;
rpm2 = (objects2 / 3.0)*60;
objects2 = 0;
millisBefore = millis();
}
delay(100);
lcd.setCursor(2, 0);
lcd.print("RPM1: ");
lcd.setCursor(10, 0);
lcd.print(rpm);
lcd.setCursor(2, 1);
lcd.print("RPM2: ");
lcd.setCursor(10, 1);
lcd.print(rpm2);
}
void count() {
objects++;
}
void count2() {
objects2++;
}