LCD de rakam azaltma artıma gibi yazıyı değiştirme Hak.

alio1984

Üye
Katılım
9 Ağu 2019
Mesajlar
46
Tepkime puanı
1
Puanları
8
Konum
istanbul
Merhaba,

Başlığa ne yazacağımı kestiremedim enterasan bir açıklama oldu. Aşağıda örnek bir rakam artırma fonksiyonu yazdım. Rakam yerine nesne adı kullanmak istiyorum. Örneğin ali, veli, deli gibi.. Seçime göre işlem yaptıracağım, rakamdan farksız olacak.

String deger[....] şeklinde yapmak çok uzun işlem, daha kısa bir yolu var mı? Bunlar AnaMenu veya alt menu olmayacak, doğrudan sonuç olacağı için, hangi isim seçilmiş ise, ona karşılık gelen değerler aktif olacak ve program devam edecek.

int button;
readKey = analogRead(0);
if (readKey < 555) {
delay(100);
readKey = analogRead(0);
}
button = evaluateButton(readKey);
switch (button) {
case 2:
button = 0;
save= constrain(save,0,8);
save= save + 1;

lcd.setCursor(4,0);
lcd.print(" ");
lcd.setCursor(4,0);
lcd.print(save);
lcd.print(" s ");
break;

En basiti şu şekilde olabiliyor, ama rakam yerine doğrudan nesne adı yazdırmak daha güzel olacak gibi.

1=ali
2=veli
3=deli
...

Teşekkürler,
Ali
 

amenofis

Üye
Katılım
18 Tem 2019
Mesajlar
39
Tepkime puanı
9
Puanları
8
Konum
Bursa
C++:
const char *isim[] = {"ali", "veli", "deli"};
...

for(byte i = 0; i < 3; ++i) {
    lcd.setCursor(4,0);
    lcd.print(isim[i]);
    delay(1000);
}
 

alio1984

Üye
Katılım
9 Ağu 2019
Mesajlar
46
Tepkime puanı
1
Puanları
8
Konum
istanbul
C++:
const char *isim[] = {"ali", "veli", "deli"};
...

for(byte i = 0; i < 3; ++i) {
    lcd.setCursor(4,0);
    lcd.print(isim[i]);
    delay(1000);
}

Amenofis yine imdadıma yetiştin üstad. Aşağıda ki şekilde uyarladım. En basit haliyle işim çözüldü. Ben doğrudan i gösteriyordum. Save ... dizinin içine koyduk işlem tamamlandı. Beynim durdu neden bunu düşünemedim :)

const char *save[] = {"ali", "veli", "deli"};
int button;
readKey = analogRead(0);
if (readKey < 555) {
delay(100);
readKey = analogRead(0);
}
button = evaluateButton(readKey);
switch (button) {
case 2:
button = 0;
i= constrain(i,0,2);
i= i+ 1;

lcd.setCursor(5,0);
lcd.print(" ");
lcd.setCursor(5,0);
lcd.print(save);
break;
 
Üst