Arduino Lcd Bar Uygulaması

Arduino projerimde genellikle 16×2 lcd ekran kullanmaktayım. Bu lcd ekranın özelliklerini ve kullanım şeklini sizlere aktarmak istiyorum.

Ayrıntılı tüm bilgiler videoda mevcuttur. Buradan ise yazılıma ulaşabilirsiniz.

  • Arduino Uno

  • 16×2 lcd ekran

  • 2 adet 10k pot

  • kablolar


 

#include <LiquidCrystal.h>               
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);    // LCD pins: RS, ENABLE, D4, D5, D6, D7



unsigned int pot_alinan = 0;
unsigned int alinan_ref = 1;



int okunan_max_deger = 100;
int bar_uzunluk      =   10;
int sutun_hesap      = okunan_max_deger/bar_uzunluk;
int satir_hesap      = ((sutun_hesap/5)*10);




byte graph [5][8] = {                 
  // new LCD chars:   |,   ||,   |||, ||||, |||||
       {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00},  // 1 dikey çizgi
       {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00},  // 2 dikey çizgi
       {0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00},  // 3 dikey çizgi
       {0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x00},  // 4 dikey çizgi
       {0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00}   // 5 dikey çizgi
};
//-----------------------------------------------------------------------------
void setup() {

  lcd.begin(16, 2);                       
  
lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("lcd bar uygulama");
  delay(2000);
lcd.clear();
}
//---------------------------------------------------------------------------------
void loop() {

  pot_alinan = analogRead(A0);
  
 pot_alinan = map(abs(pot_alinan), 0, 1024, 0, 100);

    if (alinan_ref != pot_alinan) {
    cubuk(pot_alinan + 1);
    alinan_ref = pot_alinan;
 
}

}



//---------------------------------------------------------------------------


void cubuk(unsigned int atanan) {
  byte blok_sutun;                                
  byte blok_satir;                                 
  byte sayac;                                 


int sutun_hesap      = okunan_max_deger/bar_uzunluk;
int satir_hesap      = ((sutun_hesap/5)*10);


  lcd.setCursor(0, 0);

  lcd.print("pot_alinan ");
  lcd.print(pot_alinan);
  lcd.print("    ");
  
  lcd.setCursor(0, 1);
                     
  lcd.print("Volt =");     
  lcd.setCursor(6, 1);                       
 blok_sutun = atanan / sutun_hesap;                        
  for (sayac = 0; sayac < blok_sutun; sayac++)
    lcd.write(4);

 blok_satir = (10 * (atanan - blok_sutun * sutun_hesap)) / satir_hesap;      
  if (blok_satir > 0)
    lcd.write(blok_satir - 1);
  else
    lcd.write(' ');                       

  for (sayac = blok_sutun + 1; sayac < bar_uzunluk; sayac++)          
    lcd.write(' ');
    delay(200);
}

Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , , ,
Eklenme Tarihi: 10 Mart 2019

Konu hakkında yorumunuzu yazın

HOŞ GELDİNİZ

Youtube kanalıma Abone Olabilirsiniz.