K.Makise
Kilopat
- Katılım
- 28 Kasım 2020
- Mesajlar
- 4.799
- Makaleler
- 4
- Çözümler
- 81
Daha fazla
- Cinsiyet
- Erkek
Arduino UNO ile ortak anot 7 segment 4 digit bir ekranı 0-20 arası kontrol etmeye çalıştım ve biraz başarısız oldum.
1 digit ile çalışırken sorun yok ama 2 digit ile çalışmam gerekince işler karışıyor mesela 10 yazmak istiyorum fakat 2 tarafta da aynı şey yazıyor.
Bir nebze giderdim fakat bazı iki basamaklı sayılarda yine fail oldum.
Bunu en iyi şekilde nasıl yapabilirim mantığını öğrenmek istiyorum, araştırdım bayağı fakat düzgün bir bilgiye erişemedim.
Yazdığım kodu aşağı bırakıyorum:
1 digit ile çalışırken sorun yok ama 2 digit ile çalışmam gerekince işler karışıyor mesela 10 yazmak istiyorum fakat 2 tarafta da aynı şey yazıyor.
Bir nebze giderdim fakat bazı iki basamaklı sayılarda yine fail oldum.
Bunu en iyi şekilde nasıl yapabilirim mantığını öğrenmek istiyorum, araştırdım bayağı fakat düzgün bir bilgiye erişemedim.
Yazdığım kodu aşağı bırakıyorum:
C++:
#define UST 2
#define SOL_U 3
#define SOL_A 5
#define ALT 6
#define SAG_U 4
#define SAG_A 7
#define ORT 8
#define D1 9
#define D2 10.
#define D3 11.
#define D4 12.
#define POT A0.
int sayi = 0;
void setup() {
pinMode(UST, OUTPUT);
pinMode(SOL_U, OUTPUT);
pinMode(SOL_A, OUTPUT);
pinMode(ALT, OUTPUT);
pinMode(SAG_U, OUTPUT);
pinMode(SAG_A, OUTPUT);
pinMode(ORT, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D4, OUTPUT);
}
void loop() {
sayi = map(analogRead(POT), 0, 1023, 0, 20);
switch (sayi) {
case (0):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 1);
break;
case (1):
digitalWrite(D4, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
break;
case (2):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 1);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (3):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (4):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 0);
break;
case (5):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 1);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (6):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 1);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (7):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
break;
case (8):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (9):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
break;
case (10):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (11):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (12):
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 1);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
break;
case (13):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (14):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (15):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 1);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (16):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 1);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (17):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (18):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (19):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
case (20):
digitalWrite(D4, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 0);
digitalWrite(SOL_U, 0);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 0);
digitalWrite(ALT, 0);
digitalWrite(ORT, 0);
delayMicroseconds(2500);
digitalWrite(D3, 1);
digitalWrite(SAG_U, 0);
digitalWrite(SAG_A, 1);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 0);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
delayMicroseconds(2500);
break;
default:
digitalWrite(SAG_U, 1);
digitalWrite(SAG_A, 1);
digitalWrite(SOL_U, 1);
digitalWrite(SOL_A, 1);
digitalWrite(UST, 1);
digitalWrite(ALT, 1);
digitalWrite(ORT, 1);
digitalWrite(D1, 0);
digitalWrite(D2, 0);
digitalWrite(D3, 0);
digitalWrite(D4, 0);
break;
}
}