Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
1010
Tıklama
0
Öne Çıkarma
3 Digit 7 Segment Surme
M
13 yıl
Binbaşı
Konu Sahibi

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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil