16x2_LCD_ye_basılan_butona_gore_deger_yazdırma

mylifese

Üye
Katılım
10 Ocak 2007
Mesajlar
310
Puanları
1
Konum
İstanbul
Kod:
#include "LiquidCrystal.h"

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#define btnApin 8

#define btnBpin 9

#define btnCpin 10

int btnAdurum=0;

int btnBdurum=0;

int btnCdurum=0;

int btnDeger=0;

void setup() {

lcd.begin(16, 2);

pinMode(btnApin,INPUT);

pinMode(btnBpin,INPUT);

pinMode(btnCpin,INPUT);

}

void loop() {

  btnAdurum=digitalRead(btnApin);

  btnBdurum=digitalRead(btnBpin);

  btnCdurum=digitalRead(btnCpin);

if(btnAdurum==HIGH){    lcd.clear();

    btnDeger=1; //LCD de sıcaklık ve nem gösterilmesi için

  }

 

  if(btnBdurum==HIGH){    lcd.clear();

    btnDeger=2; //LCD de gaz değeri gösterilmesi için

  }



  if(btnCdurum==HIGH){   lcd.clear();

    btnDeger=3;

  }

switch (btnDeger) {

    case 0:

        lcd.setCursor(0, 0);

        lcd.print("LCD");

        lcd.setCursor(0,1);

        lcd.print("Butonlar");

      break;

    case 1:

        lcd.setCursor(0, 0);

        lcd.print("Mod 1");

      break;

    case 2:



        lcd.setCursor(0, 0);

        lcd.print("Mod 2");

      break;

      break;

    case 3:



        lcd.setCursor(0, 0);

        lcd.print("Can");

      break;

    default:

        lcd.setCursor(0, 0);

        lcd.print("LCD");

        lcd.setCursor(0,1);

        lcd.print("Butonlar");

      break;



  } 

}
switch btndeger burada hata var nasıl düzeltilir.
 
Moderatör tarafında düzenlendi:
case 2 de 1 tane break fazla yazılmış.

Kod eklerken code tag kullanın,
okumamız daha kolay olur.
 
hatayı duzeltim. buna 4. buton eklemek istiyorum. hata veriyor.
yapmak istediğim 4 buton ile karşılığı lcd ekrana yazı yazacak .ve çıkış röle bağlayım kontrol etmek istiyorum.
 
Kod:
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define btnApin 8
#define btnBpin 9
#define btnCpin 10
Kodun bu kısmında fiziksel olarak mikrodenetleyiciye bağlı butonlar
mikrodenetleyicide hangi pinlere bağlı olduklarına göre ve
programcının anlayacağı ifadelerle tanımlanmış.
Sende burada boştaki bir pine yeni bağlayacağın butonu tanıtacaksın.

Kod:
int btnAdurum=0;
int btnBdurum=0;
int btnCdurum=0;
int btnDeger=0
Kodun bu kısmında butonlarla ilgili işlemlerde kullanmak için
her butona ait birer tane durum değişkeni tanımlanmış.
Yeni buton için bir değişken tanımlayacaksın.

Kod:
pinMode(btnApin,INPUT);
pinMode(btnBpin,INPUT);
pinMode(btnCpin,INPUT);
Kodun bu kısmında tanımlanmış pinlerin giriş çıkış durumları ayarlanmış.
Sende eklediğin pini aynı şekilde burada ayarlayacaksın.

Kod:
btnAdurum=digitalRead(btnApin);
btnBdurum=digitalRead(btnBpin);
btnCdurum=digitalRead(btnCpin);
Kodun bu kısmında butonların durumları okunup,
önceden tanımlanan buton durum bayrak değişkenlerine şu anki durumları kaydedilmiş.
Sende...

Kod:
if(btnAdurum==HIGH){ lcd.clear();btnDeger=1; //LCD de sıcaklık ve nem gösterilmesi için }
if(btnBdurum==HIGH){ lcd.clear(); btnDeger=2; //LCD de gaz değeri gösterilmesi için }
if(btnCdurum==HIGH){ lcd.clear(); btnDeger=3; }
Kodun bu kısmında
buton bayrak değişkenlerine bakılarak
genel buton durumunun 1 mi 2 mi 3 mü olduğu anlaşılmış ve
bu btnDeger değişkenine yazılmış.
Sende burada genel buton durumu 4 ü ekleyeceksin.

Kod:
switch (btnDeger) { case 0:
...
case1
case2
...
Buradada btnDeger içinde hangi sayı varsa
o sayılı case ifadesine atlanması için
switch case yapısı kurulmuş.
Artık senin düzenlemenle btnDeger 4 sayısıda olabileceği için case 4 ekleyeceksin
ve burada eklediğin bu buton 4 e basılırsa ne yapmasını istiyorsan onu yapacaksın.

Role içinde buton input tanımı gibi
bir çıkış pini tanımı yapacaksın.

------------------
Emin ol yukarıdakileri yazana kadar
10 defa istediğin işi yapacak programı yazardım,
maksat öğrenmeye ve kendin bir şeyler yapabilmeye teşvik etmek.
Umarım sende bir gün bize veya birilerine bir bildiğini aktarırsın.

İyi çalışmalar.
 
Kod:
#include <Wire.h>

#include <LiquidCrystal_I2C.h>



LiquidCrystal_I2C lcd(0x3f, 16, 2);



int buton1 = 2;

int buton2 = 3;

int buton3 = 4;

int buton4 = 5;

int buton5 = 6;



int led1 = 8;

int led2 = 9;

int led3 = 10;

int led4 = 11;



int buton1durumu=0;

int buton2durumu=0;

int buton3durumu=0;

int buton4durumu=0;

int buton5durumu=0;

int btnDeger=0;



void setup()

{

lcd.begin();

pinMode(buton1 , INPUT);

pinMode(buton2 , INPUT);

pinMode(buton3 , INPUT);

pinMode(buton4 , INPUT);

pinMode(buton5 , INPUT);



pinMode(led1 , OUTPUT);

pinMode(led2 , OUTPUT);

pinMode(led3 , OUTPUT);

pinMode(led4 , OUTPUT);

}

void loop()

{

buton1durumu = digitalRead(buton1);

buton2durumu = digitalRead(buton2);

buton3durumu = digitalRead(buton3);

buton4durumu = digitalRead(buton4);

buton5durumu = digitalRead(buton5);

 

if (buton1durumu == HIGH)

digitalWrite(led1 , HIGH);

lcd.clear();

btnDeger=1;

}

else if (buton2durumu == HIGH)

{

digitalWrite(led1 , LOW);

digitalWrite(led2 , HIGH)

lcd.clear();

btnDeger=2;

}



else if (buton3durumu == HIGH)

{

digitalWrite(led1 , LOW);

digitalWrite(led2 , LOW);

digitalWrite(led3 , HIGH);

lcd.clear();

btnDeger=3;

}

else if (buton4durumu == HIGH)

{

digitalWrite(led1 , LOW);

digitalWrite(led2 , LOW);

digitalWrite(led3 , LOW);

digitalWrite(led4 , HIGH);

lcd.clear();

btnDeger=4;

}

else if (buton5durumu == HIGH)

{

digitalWrite(led1 , HIGH);

delay(500);

digitalWrite(led1 , LOW);

digitalWrite(led2 , HIGH);

delay(500);

digitalWrite(led2 , LOW);

digitalWrite(led3 , HIGH);

delay(500);

digitalWrite(led3 , LOW);

digitalWrite(led4 , HIGH);

delay(500);

digitalWrite(led4 , LOW);

}

 

switch (btnDeger) {

    case 0:

        lcd.setCursor(0, 0);

        lcd.print("GOKMEN");

        lcd.setCursor(0,1);

        lcd.print("ELEKTRONIK");

      break;

    case 1:

        lcd.setCursor(0, 0);

        lcd.print("MOD_1");

      

        lcd.setCursor(0, 1);

        lcd.print ("SOLA GIT");

      break;

    case 2:



        lcd.setCursor(0, 0);

        lcd.print("MOD_2");

        lcd.setCursor(0, 1);

        lcd.print ("SAGA GIT ");

      break;

    

    case 3:



        lcd.setCursor(0, 0);

        lcd.print("MOD_3");

        lcd.setCursor(0, 1);

        lcd.print ("YUKARI GIT");

      break;



    case 4:



        lcd.setCursor(0, 0);

        lcd.print("MOD-4");

        lcd.setCursor(0, 1);

        lcd.print ("ASAGI GIT ");

      break;



    

    default:

        lcd.setCursor(0, 0);

        lcd.print("LCD");

        lcd.setCursor(0,1);

        lcd.print("Butonlar");

      break;

  } 

  }
DERLEME HATASI VERIYOR. NEREDE HATA YAPIYORUM .YARDIMCI OLURMUSUNUZ
 
Moderatör tarafında düzenlendi:
DERLEME HATASI VERIYOR. NEREDE HATA YAPIYORUM .YARDIMCI OLURMUSUNUZ
200 küsür mesajın var,
tamamen büyük harflerle yazmak bağırmak demek forumlarda.

Derleme hata mesajı nerede?

Kod:
if (buton1durumu == HIGH)

digitalWrite(led1 , HIGH);

lcd.clear();

btnDeger=1;

}
Yukarısı yanlış, aşağıdaki gibi olmalı:
Kod:
if (buton1durumu == HIGH)
{
digitalWrite(led1 , HIGH);

lcd.clear();

btnDeger=1;

}

Böyle başka hataların olabilir bakmadım.

Sora sora bitmez böyle,
basit hatalar bunlar, kendin biraz dikkat edip çözebilirsin.
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,242
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst