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