- Katılım
- 24 Şubat 2018
- Mesajlar
- 24,136
Şuanda herşey yolunda gibi.
Voltaj 30v dan fazla tuşlanmasın diye bir kaç önlem ekledim.
Küçük bir sıkıntı var. 00.00 yerine 0.00 görüyorum.
Mesela 5v ayarlamak istediğimde 05.00 şeklinde tuşluyorum ama baştaki eleman etkisiz olunca yazmıyor ekrana.
Keypad ile kullanım bakımından hiç bir sıkıntı yok ama bunu enkoder ile ayarlamak istediğimizde oradaki sıfırı görebilmemiz lazım.
16358 eklentisine bak
C++:float sayi1 = 0; float sayi2 = 0; float sayi3 = 0; float sayi4 = 0; int tur = 0; float voltaj = 00.00; if ( isdigit(kidx) ) { uint8_t sayi = kidx - '0'; if (tur == 0) { if (sayi <= 3) { sayi1 = sayi; }else{ tur = -1; } } else if (tur == 1) { if(sayi1 != 3){ sayi2 = sayi; }else{ tur = 0; } } else if (tur == 2) { sayi3 = sayi; } else if (tur == 3) { sayi4 = sayi; tur = -1; } tur++; voltaj = sayi1 * 10.0 + sayi2 * 1.0 + sayi3 * 0.1 + sayi4 * 0.01; Serial.print("voltaj: "); Serial.println(voltaj);
Bu kod çok fazla karmaşık, baya basitleştirilebilir. Basitleştirmede kasıt, daha az satır olması değil. Mantığı basit olacak:
1) Değişken sayısı az olacak.
2) Kodun dallanma sayısı az olacak (if else sayısı)