Arduino Buton Kontrol 2
3 buton ile kontrol. Set, +, -
Ekrandaki 3 farklı değeri ayarlama
Ekrandaki 3 farklı değeri ayarlama
I2C LCD, 3 buton ve Arduino Uno kartı kullanılmıştır. Program kodlarında gerekli açıklamalar yapılmıştır.
ARDUINO IDE KODU:
/***************************************************************
* Arduino BUTON KONTROL
* 3 buton ile kontrol
* set,+,- (ayar, artır, eksilt)
* Eylül 2019
*
* Kodla Gitsin
* https://kodlagitsin.blogspot.com
*
*/
#include <LiquidCrystal_I2C.h> //I2C LCD kütüphanesini başlatıyoruz
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
//buton tanımlamaları ve pin atamaları
#define BTN_SET 3 //set(ayar) butonu
#define BTN_UP 4 //yukarı ayar ++1
#define BTN_DOWN 5 //aşağı ayar --1
int durum=0; //set butonunun basış sayısını saklar. 1.basış aa, 2.basış bb, 3.basış cc değişkenlerini kontrol etmemizi sağlar
int gecikme1=300; //delay komutunda kullanacağımz süremiz(ms)
int aa=0; // lcd'de göstereceğimiz 1.değişkenimiz
int bb=0; // lcd'de göstereceğimiz 2.değişkenimiz
int cc=0; // lcd'de göstereceğimiz 3.değişkenimiz
// SETUP
void setup(){
//LCD'yi ayarlıyoruz
lcd.begin(16, 2);
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
//Butonlarımız input_pullup ayarlıyoruz
pinMode(BTN_SET, INPUT_PULLUP);
pinMode(BTN_UP,INPUT_PULLUP);
pinMode(BTN_DOWN,INPUT_PULLUP);
//LCD ekrana başlangıç karakterlerini yazdırıyoruz( /10 onlar basamağını, %10 birler basamağını yazdırır)
lcd.setCursor(0,0);lcd.print(aa/10);lcd.print(aa%10);//1.değişkenimizi (aa) ekrana yazdırıyıruz
lcd.setCursor(4,0);lcd.print(bb/10);lcd.print(bb%10);//2.değişkenimizi (bb) ekrana yazdırıyıruz
lcd.setCursor(8,0);lcd.print(cc/10);lcd.print(cc%10);//3.değişkenimizi (cc) ekrana yazdırıyıruz
}
void loop() //ana döngümüz
{
if(digitalRead(BTN_SET)==LOW) {durum=durum+1;} // set butonuna basılırsa...
//aa değişkenini ayarlama...
if (durum==1){lcd.setCursor(0,1);lcd.print("--");lcd.setCursor(4,1);lcd.print(" ");lcd.setCursor(8,1);lcd.print(" ");delay(gecikme1);
if(digitalRead(BTN_UP)==LOW) { lcd.setCursor(0,0); bir_artir();}
if(digitalRead(BTN_DOWN)==LOW){ lcd.setCursor(0,0); bir_azalt();}
}
//bb değişkenini ayarlama...
if (durum==2){lcd.setCursor(0,1);lcd.print(" ");lcd.setCursor(4,1);lcd.print("--");lcd.setCursor(8,1);lcd.print(" ");delay(gecikme1);
if(digitalRead(BTN_UP)==LOW) { lcd.setCursor(4,0); bir_artir();}
if(digitalRead(BTN_DOWN)==LOW){ lcd.setCursor(4,0); bir_azalt();}
}
//cc değişkenini ayarlama...
if (durum==3){lcd.setCursor(0,1);lcd.print(" ");lcd.setCursor(4,1);lcd.print(" ");lcd.setCursor(8,1);lcd.print("--");delay(gecikme1);
if(digitalRead(BTN_UP)==LOW) { lcd.setCursor(8,0); bir_artir();}
if(digitalRead(BTN_DOWN)==LOW){ lcd.setCursor(8,0); bir_azalt();}
}
//set'den çıkıyoruz
if(durum>3) {lcd.setCursor(0,1);lcd.print("i$lem tamam ");delay(3*gecikme1);lcd.setCursor(0,1);lcd.print(" ");durum=0;}
}
void bir_artir() //birer birer artırma fonksiyonu
{
if (durum==1) {aa++;
if(aa>59) aa=0; lcd.print(aa/10);lcd.print(aa%10);delay(500);
}
if (durum==2) {bb++;
if(bb>59) bb=0; lcd.print(bb/10);lcd.print(bb%10);delay(500);
}
if (durum==3) {cc++;
if(cc>59) cc=0; lcd.print(cc/10);lcd.print(cc%10);delay(500);
}
}
void bir_azalt() //birer birer eksiltme fonksiyonu
{
if (durum==1) { aa--;
if(aa<0) aa=59; lcd.print(aa/10);lcd.print(aa%10);delay(500);
}
if (durum==2) { bb--;
if(bb<0) bb=59; lcd.print(bb/10);lcd.print(bb%10);delay(500);
}
if (durum==3) { cc--;
if(cc<0) cc=59; lcd.print(cc/10);lcd.print(cc%10);delay(500);
}
//diğer işlemleriniz...
}
KULLANILAN PROGRAMLAR: Arduino Ide 1.8.9
Yorumlar
Yorum Gönder