Professional Documents
Culture Documents
#include<Wire.h>
#include<LiquidCrystal_l2C.h>
#define encoder_pin 2
LiquidCrystal_l2C lcd_20(0x20,16,2);
int PWM_OUT = 9;
int POT_IN = 3;
const byte ledPin = 13;
int val = 0;
volatile byte state = LOW;
float RPM = 0;
unsigned int pulsespertum = 100;
float e_speed=0;
void steup() {
lcd_20.init();
lcd_20.backlight();
lcd_20.clear();
lcd_20.setCursor(0,0);
lcd_20.print("Pulsos: ")
lcd_20.setCursor(0,1);
lcd_20.print("RPM: ")
pinMode(ledPin, OUTPUT);
pinMode(PWM_OUT, OUTPUT);
attachInterrupt(digitalPinToInterrupt(encoder_pin), ext_ISR, RISING);
timeold = millis();
void loop(){
tpo=millis();
if(tpo - timrold>=250)
{
datachInterrupt(0);
RPM = (60.0*1000.0/pulsespertum)/(tpo - timeold)*pulses;
timeold = millis();
pulses = 0;
attachInterrupt(digitalPinToInterrupt(encoder_pin), ext_ISR, RISING);
lcd_20.setCursor(5,1);
lcd_20.print(pulses);
val = analogRead(POT_IN);
analogWite(PWM_OUT, val/4);
digitalWrite(ledPin, state);
lcd_20.setCursor(8,0);
lcd_20.print(RPM);
void ext_ISR()
{
state = !state;
pulses++;