LAMPIRAN PROGRAM
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
long microSecs;
long freq;
int lastBit;
int nowVal;
long secs;
long maxHz;
long minHz;
long minmax;
void setup() {
pinMode(A0,INPUT);
pinMode(A5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
microSecs = micros();
freq = 0;
lastBit = 0;
maxHz=0;
minHz=0;
minmax=0;
secs = millis();
Serial.begin(9600);
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("alat deteksi");
lcd.setCursor(0, 1);
lcd.print("getaran");
delay (2000);
lcd.clear();
}
int x=0;
void loop() {
if ((microSecs+20)<micros()){
if (lastBit!=nowVal) {
lastBit=nowVal;
freq=freq+1;
}
if (freq>maxHz){
maxHz=freq;
}
if (freq<minHz){
minHz=freq;
}
//lcd.clear();
//lcd.print();
microSecs = micros();
}
if (secs+1000<millis()){
if (minmax+300000<millis())
{
minmax=millis();
minHz=freq;
maxHz=freq;
lcd.setCursor(0, 0);
lcd.print("Nilai sensor:");
lcd.setCursor(0, 1);
lcd.print(freq);
lcd.setCursor(10, 1);
lcd.print("Hz");
Serial.print((freq));
Serial.print("hz");
//Serial.setCursor(0,1);
//Serial.print("+: ");
//Serial.print(maxHz);
//Serial.print(" -: ");
//Serial.print(minHz);
if (freq>=10)
{digitalWrite (2,HIGH);
}
if (freq>=100)
{ digitalWrite (2,HIGH);
if (freq>=200)
{ digitalWrite (2,HIGH);
digitalWrite (4,HIGH);
digitalWrite (3,HIGH);
}
else
{
digitalWrite (2,LOW);
digitalWrite (3,LOW);
digitalWrite (4,LOW);
}
freq=0;
secs=millis();
}
delay (1000);
lcd.clear();