Bu konudaki kullanıcılar: 2 misafir, 2 mobil kullanıcı
1
Cevap
269
Tıklama
0
Öne Çıkarma
3 Digit 7 Segment Surme

M mertblade Konu Sahibi
9 yıl (1392 mesaj)
Merhaba arkadaslar benim bir projem var. Bu projede 3 digitli bir segment surucem. simdi kodu yazdim Arduinoda soyle bir sorun var ben 2. basamaga yeni sayiyi bastirirken 1. basamaktaki sayiyi kaybediyorum. sorunu nasil cozebilirim. mesela 143 gormek istiyorum sirayla 1 - 4 - 3 goruyorum ama 4 u gorurken 1 kabediyorum.

int pins[] = {2,3,4,5,6,7,8};
byte digits[10][8] = {
// a b c d e f g .
{ 1, 1, 1, 1, 1, 1, 0, 0},
{ 0, 1, 1, 0, 0, 0, 0, 0},
{ 1, 1, 0, 1, 1, 0, 1, 0},
{ 1, 1, 1, 1, 0, 0, 1, 0},
{ 0, 1, 1, 0, 0, 1, 1, 0},
{ 1, 0, 1, 1, 0, 1, 1, 0},
{ 1, 0, 1, 1, 1, 1, 1, 0},
{ 1, 1, 1, 0, 0, 0, 0, 0},
{ 1, 1, 1, 1, 1, 1, 1, 0},
{ 1, 1, 1, 1, 0, 1, 1, 0} };

void setup(){
Serial.begin(9600);
for(int i=2; i<=12; i++){
pinMode(i,OUTPUT);
}
}

void loop(){
static int sayi1, sayi2, sayi3;
sayi1=random(1,9);
sayi2=random(1,9);
sayi3=random(1,9);
Serial.println(sayi1);
Serial.println(sayi2);
Serial.println(sayi3);

fonk(sayi1,sayi2,sayi3);

}

void fonk(int sayi1, int sayi2, int sayi3){

digitalWrite(10,LOW); // SUrmek istenilen segmenti LOW yap 1. digit
digitalWrite(11,HIGH); // icin 1. segment LOW
digitalWrite(12,HIGH);
sayilar(sayi1);
delay(300);

digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
sayilar(sayi2);
delay(300);

digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
sayilar(sayi3);
delay(300);


}


void sayilar(int sayi){
for (int i=0; i < 8; i++) {
digitalWrite(pins, ! digits[sayi]);
}
}


sorun oldugunu dusundugum kismi kalin yazdim




M mertblade Konu Sahibi
9 yıl (1392 mesaj)
tamamdir sorunu cozdum bir tarama for ekliyorum birde 3 farkli fonksiyona gonderiyorum. o zaman duzeliyor



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.