Arduino ile Takometre Yapımı

0 454

Uygulama İçeriği

Takometre, herhangi bir cihazın dönme hızını ölçmek için kullanılan cihazdır. Genellikle 1 dakikadaki devir adedini gösteren analog bir göstergedir ancak  bu uygulamada yapacağımız üzere dijital göstergeler de günümüzde yaygın olarak kullanılmaktadır.DC motorumuzun hızını potansiyometre ile kontrol edeceğiz  ve  hız değerini artırdığımızda anlık olarak ekrana yansıtacağız.

 

Malzemeler
  • 1 Adet Arduino UNO
  • 1 Adet LCD 16×2
  • 1 Adet Motor Sürücü
  • 1 Adet DC Motor
  • 1 Adet Potansiyometre
  • Jumper kablo

Elektronik Devre Şeması

                                                                                                                                                                                                                                  

 

Arduino yazılımı


#include <LiquidCrystal.h>

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int in1 = 9;
int in2 = 5;
int ena = 6;
const int dataIN = 2;

unsigned long prevmillis;
unsigned long duration;
unsigned long lcdrefresh;

int rpm;

boolean currentstate;
boolean prevstate;

void setup()
{
Serial.begin(9600);
lcd.begin();
lcd.backlight();
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(ena, OUTPUT);

digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
pinMode(dataIN,INPUT);
prevmillis = 0;
prevstate = LOW;
}

void loop()
{

currentstate = digitalRead(dataIN);
if( prevstate != currentstate)
{
if( currentstate == HIGH )
{
duration = ( micros() - prevmillis );
rpm = (6000000/duration);
prevmillis = micros();
}
}
prevstate = currentstate;

if( ( millis()-lcdrefresh ) >= 100 )
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Motor Hizi");
lcd.setCursor(0,1);
lcd.print("RPM = ");
lcd.print(rpm);
lcdrefresh = millis();
}

int pot_deger = analogRead(1);
int motor_hizi = map(pot_deger, 0, 1023, 255, 0);
analogWrite(ena, motor_hizi);

}
Bunlar da İlgini Çekebilir

Cevap bırakın

E-posta hesabınız yayımlanmayacak.