You are on page 1of 2

//LIBRERIAS

#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;

volatile byte pulses = 0;

float RPM = 0;
unsigned int pulsespertum = 100;

unsigned long tpo=0;


unsigned long timeold=0;

float set_speed = 30;


float kp=1;
unsigned int pwm_pulse_int=0;

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;

e_speed = set_peed - RPM;/////////////////

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++;

You might also like