7 SEGMENT DISPLAY ILE KRONOMETRE

Saniye basamağının sönüklüğü displayin kendisinden olmalı. 1 salise basamağı sabit kalsın, sönük yanan saniye basamamağının ve 10 saniye basamağının yerlerini değiştirdiğinde anlaşılır. 1 salise basamağındaki segment bazındaki farklılık için kolayca yapılabilecek bir şey olduğunu düşünmüyorum. Çok hızlı yanıp sönen bu segmentler ışığın ve gözümüzün tabiatından ötürü segmentleri farklı parlaklıkta yanan bir 8 gibi görünmeye devam edecektir.
 
Saniye basamağının sönüklüğü displayin kendisinden olmalı. 1 salise basamağı sabit kalsın, sönük yanan saniye basamamağının ve 10 saniye basamağının yerlerini değiştirdiğinde anlaşılır. 1 salise basamağındaki segment bazındaki farklılık için kolayca yapılabilecek bir şey olduğunu düşünmüyorum. Çok hızlı yanıp sönen bu segmentler ışığın ve gözümüzün tabiatından ötürü segmentleri farklı parlaklıkta yanan bir 8 gibi görünmeye devam edecektir.
7 segmentler için buffer entegresi araştırdım ama malesef bir sonuca varamadım.
Ben çok hızlı değiştirdiğim için özellikle milisaniye birler basamağını o kısım bir buffer üzerinden sürülürse bütün haneleri görebileceğimi düşünüyorum
 
Yazdırma işini loop'da yapınca parlaklır sorunu büyük ölçüde ortadan kalkıyor
 
O zaman benmim segment parlaklık farkı çıkarımım hatalı. Loopa alınca ne değişiyor ki. İki farklı kodu paylaşır mısın. Merak ediyorum yazdırma zamanlarının nasıl değiştiğini.
 
Salise birler basamağı hala sorunlu onuda çözmeyi deneyeceğim fakat yönergeden çıktım bunu yapınca @taydin abi yazdırma işlemi kesme içinde olacak demişti.

Parlaklık farkı bariz belli diğer attığım videolara kıyasla


C++:
static unsigned char bcd[] =
{
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
};

unsigned char _7seg[] =
{ //nGFEDCBA

  0b11000000,//sıfır/0
  0b11111001,//bir/1
  0b10100100,//iki/2
  0b10110000,//üç/3
  0b10011001,//dört/4
  //nGFEDCBA
  0b10010010,//beş/5
  0b10000010,//altı/6
  0b11111000,//yedi7
  0b10000000,//sekiz8
  0b10010000,//dokuz9
  0b00000000,//lamba TEST10
  0b11111111,//lamba OF11
};

//bool msb = 0;
//bool mso = 0;

bool snb = 0;
bool sno = 0;

static void bcd_inc(unsigned char* bcd)
{
  ++bcd[0];//her zaman kesmesinde 1 arttır
  // msb == 1;

  if (bcd[0] == 10)//10 kere zaman kesmesinde(100ms) olunca BİRLER BASAMAĞI
  {
    bcd[0] = 0;//1 LER BASAMAĞINI SIFIRLA
    ++bcd[1];//ONLAR BASAMAĞI 1 ARTTIR
    //mso == 1;

    if (bcd[1] == 10)//ONLAR BASAMAĞI 10 OLDUYSA 100x10 = 1000mS= 1 SANIYE
    {
      bcd[1] = 0; //10LAR BASAMAĞI SIFIRLAMA
      ++bcd[2]; // SANIYE BIRLER BASAMAĞI
      snb = 1;

      if (bcd[2] == 10)//SANIYE BIRLER BASAMAĞI 10 OLDUYSA
      {
        bcd[2] = 0;
        ++bcd[3];//SANİYE ONLAR BASAMAĞINI 1 ARTTIR
        sno = 1;

        if (bcd[3] == 6)//SANIYE 10LAR BASAMAĞI 6 OLDUYSA YANI 1 DAKIKA
        {
          bcd[3] = 0;
          ++bcd[4];//DAKIKA BİRLER BASAMAĞI 1 ARTTIR
          if (bcd[4] == 10)//DAKIKA BIRLER BASAMAĞI 10 OLDUYSA
          {
            bcd[4] = 0;
            ++bcd[5];//DAKIKA ONLAR BASAMAĞI 1 ARTTIR
            if (bcd[5] == 6)//DAKIKA ONLAR BASAMAĞI 6 OLDUYSA YANİ 1 SAAT
            {
              bcd[5] = 0;
              ++bcd[6];//SAAT BIRLER BASAMAĞI 1 ARTTIR
              if ((bcd[6] == 4) && (bcd[7] == 2)) // EĞER SAAT 24 OLDUYSA
              {
                bcd[6] = bcd[7] = 0;//SAATI SIFIRLA
              }
              else if (bcd[6] == 10)
              {
                bcd[6] = 0;
                ++bcd[7];
              }
            }
          }
        }
      }
    }
  }
}

ISR(TIMER1_COMPA_vect) {


  bcd_inc(bcd);



}

void setup()
{
  DDRD = B11111111; //büTÜN D PORTI ÇIKIŞ
  DDRB = DDRB | B00001111;//8-9-10-11 çıkış

  noInterrupts();
  TCCR1A = 0;
  TCNT1 = 0;
  OCR1A = 16000000 / (100 * 64) - 1;
  TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  interrupts();
}

void loop()
{

  PORTB = 0B00001011;//10
  PORTD = _7seg[bcd[0]];
  delay(3);//tarama ayar;

  PORTB = 0B00000111;//11
  PORTD = _7seg[bcd[1]];
  delay(3);//tarama ayar

  if (snb == 1) {
    PORTB = 0B00001101;//9
    PORTD = _7seg[bcd[2]];
    delay(3);//tarama ayar
    snb == 0;
  }

  if (sno == 1) {
    PORTB = 0B00001110;//8
    PORTD = _7seg[bcd[3]];
    delay(3);//tarama ayar
    sno == 0;
  }
}


C++:
static unsigned char bcd[] =
{
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
};

unsigned char _7seg[] =
{ //nGFEDCBA

  0b11000000,//sıfır/0
  0b11111001,//bir/1
  0b10100100,//iki/2
  0b10110000,//üç/3
  0b10011001,//dört/4
  //nGFEDCBA
  0b10010010,//beş/5
  0b10000010,//altı/6
  0b11111000,//yedi7
  0b10000000,//sekiz8
  0b10010000,//dokuz9
  0b00000000,//lamba TEST10
  0b11111111,//lamba OF11
};

//bool msb = 0;
//bool mso = 0;

bool snb = 0;
bool sno = 0;

static void bcd_inc(unsigned char* bcd)
{
  ++bcd[0];//her zaman kesmesinde 1 arttır
  // msb == 1;

  if (bcd[0] == 10)//10 kere zaman kesmesinde(100ms) olunca BİRLER BASAMAĞI
  {
    bcd[0] = 0;//1 LER BASAMAĞINI SIFIRLA
    ++bcd[1];//ONLAR BASAMAĞI 1 ARTTIR
    //mso == 1;

    if (bcd[1] == 10)//ONLAR BASAMAĞI 10 OLDUYSA 100x10 = 1000mS= 1 SANIYE
    {
      bcd[1] = 0; //10LAR BASAMAĞI SIFIRLAMA
      ++bcd[2]; // SANIYE BIRLER BASAMAĞI
      snb = 1;

      if (bcd[2] == 10)//SANIYE BIRLER BASAMAĞI 10 OLDUYSA
      {
        bcd[2] = 0;
        ++bcd[3];//SANİYE ONLAR BASAMAĞINI 1 ARTTIR
        sno = 1;

        if (bcd[3] == 6)//SANIYE 10LAR BASAMAĞI 6 OLDUYSA YANI 1 DAKIKA
        {
          bcd[3] = 0;
          ++bcd[4];//DAKIKA BİRLER BASAMAĞI 1 ARTTIR
          if (bcd[4] == 10)//DAKIKA BIRLER BASAMAĞI 10 OLDUYSA
          {
            bcd[4] = 0;
            ++bcd[5];//DAKIKA ONLAR BASAMAĞI 1 ARTTIR
            if (bcd[5] == 6)//DAKIKA ONLAR BASAMAĞI 6 OLDUYSA YANİ 1 SAAT
            {
              bcd[5] = 0;
              ++bcd[6];//SAAT BIRLER BASAMAĞI 1 ARTTIR
              if ((bcd[6] == 4) && (bcd[7] == 2)) // EĞER SAAT 24 OLDUYSA
              {
                bcd[6] = bcd[7] = 0;//SAATI SIFIRLA
              }
              else if (bcd[6] == 10)
              {
                bcd[6] = 0;
                ++bcd[7];
              }
            }
          }
        }
      }
    }
  }
}





ISR(TIMER1_COMPA_vect) {

  bcd_inc(bcd);
   PORTB = 0B00001011;//10
  PORTD = _7seg[bcd[0]];
  delay(3);//tarama ayar;

  PORTB = 0B00000111;//11
  PORTD = _7seg[bcd[1]];
  delay(3);//tarama ayar

  if (snb == 1) {
    PORTB = 0B00001101;//9
    PORTD = _7seg[bcd[2]];
    delay(3);//tarama ayar
    snb == 0;
  }

  if (sno == 1) {
    PORTB = 0B00001110;//8
    PORTD = _7seg[bcd[3]];
    delay(3);//tarama ayar
    sno == 0;
  }


}

void setup()
{
  DDRD = B11111111; //büTÜN D PORTI ÇIKIŞ
  DDRB = DDRB | B00001111;//8-9-10-11 çıkış

  noInterrupts();
  TCCR1A = 0;
  TCNT1 = 0;
  OCR1A = 16000000 / (100 * 64) - 1;
  TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  interrupts();
}

void loop()
{
}
 

Ekler

  • loop.mp4
    9.5 MB
Salise birler basamağı hala sorunlu onuda çözmeyi deneyeceğim fakat yönergeden çıktım bunu yapınca @taydin abi yazdırma işlemi kesme içinde olacak demişti.

Parlaklık farkı bariz belli diğer attığım videolara kıyasla


C++:
static unsigned char bcd[] =
{
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
};

unsigned char _7seg[] =
{ //nGFEDCBA

  0b11000000,//sıfır/0
  0b11111001,//bir/1
  0b10100100,//iki/2
  0b10110000,//üç/3
  0b10011001,//dört/4
  //nGFEDCBA
  0b10010010,//beş/5
  0b10000010,//altı/6
  0b11111000,//yedi7
  0b10000000,//sekiz8
  0b10010000,//dokuz9
  0b00000000,//lamba TEST10
  0b11111111,//lamba OF11
};

//bool msb = 0;
//bool mso = 0;

bool snb = 0;
bool sno = 0;

static void bcd_inc(unsigned char* bcd)
{
  ++bcd[0];//her zaman kesmesinde 1 arttır
  // msb == 1;

  if (bcd[0] == 10)//10 kere zaman kesmesinde(100ms) olunca BİRLER BASAMAĞI
  {
    bcd[0] = 0;//1 LER BASAMAĞINI SIFIRLA
    ++bcd[1];//ONLAR BASAMAĞI 1 ARTTIR
    //mso == 1;

    if (bcd[1] == 10)//ONLAR BASAMAĞI 10 OLDUYSA 100x10 = 1000mS= 1 SANIYE
    {
      bcd[1] = 0; //10LAR BASAMAĞI SIFIRLAMA
      ++bcd[2]; // SANIYE BIRLER BASAMAĞI
      snb = 1;

      if (bcd[2] == 10)//SANIYE BIRLER BASAMAĞI 10 OLDUYSA
      {
        bcd[2] = 0;
        ++bcd[3];//SANİYE ONLAR BASAMAĞINI 1 ARTTIR
        sno = 1;

        if (bcd[3] == 6)//SANIYE 10LAR BASAMAĞI 6 OLDUYSA YANI 1 DAKIKA
        {
          bcd[3] = 0;
          ++bcd[4];//DAKIKA BİRLER BASAMAĞI 1 ARTTIR
          if (bcd[4] == 10)//DAKIKA BIRLER BASAMAĞI 10 OLDUYSA
          {
            bcd[4] = 0;
            ++bcd[5];//DAKIKA ONLAR BASAMAĞI 1 ARTTIR
            if (bcd[5] == 6)//DAKIKA ONLAR BASAMAĞI 6 OLDUYSA YANİ 1 SAAT
            {
              bcd[5] = 0;
              ++bcd[6];//SAAT BIRLER BASAMAĞI 1 ARTTIR
              if ((bcd[6] == 4) && (bcd[7] == 2)) // EĞER SAAT 24 OLDUYSA
              {
                bcd[6] = bcd[7] = 0;//SAATI SIFIRLA
              }
              else if (bcd[6] == 10)
              {
                bcd[6] = 0;
                ++bcd[7];
              }
            }
          }
        }
      }
    }
  }
}

ISR(TIMER1_COMPA_vect) {


  bcd_inc(bcd);



}

void setup()
{
  DDRD = B11111111; //büTÜN D PORTI ÇIKIŞ
  DDRB = DDRB | B00001111;//8-9-10-11 çıkış

  noInterrupts();
  TCCR1A = 0;
  TCNT1 = 0;
  OCR1A = 16000000 / (100 * 64) - 1;
  TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  interrupts();
}

void loop()
{

  PORTB = 0B00001011;//10
  PORTD = _7seg[bcd[0]];
  delay(3);//tarama ayar;

  PORTB = 0B00000111;//11
  PORTD = _7seg[bcd[1]];
  delay(3);//tarama ayar

  if (snb == 1) {
    PORTB = 0B00001101;//9
    PORTD = _7seg[bcd[2]];
    delay(3);//tarama ayar
    snb == 0;
  }

  if (sno == 1) {
    PORTB = 0B00001110;//8
    PORTD = _7seg[bcd[3]];
    delay(3);//tarama ayar
    sno == 0;
  }
}


C++:
static unsigned char bcd[] =
{
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
};

unsigned char _7seg[] =
{ //nGFEDCBA

  0b11000000,//sıfır/0
  0b11111001,//bir/1
  0b10100100,//iki/2
  0b10110000,//üç/3
  0b10011001,//dört/4
  //nGFEDCBA
  0b10010010,//beş/5
  0b10000010,//altı/6
  0b11111000,//yedi7
  0b10000000,//sekiz8
  0b10010000,//dokuz9
  0b00000000,//lamba TEST10
  0b11111111,//lamba OF11
};

//bool msb = 0;
//bool mso = 0;

bool snb = 0;
bool sno = 0;

static void bcd_inc(unsigned char* bcd)
{
  ++bcd[0];//her zaman kesmesinde 1 arttır
  // msb == 1;

  if (bcd[0] == 10)//10 kere zaman kesmesinde(100ms) olunca BİRLER BASAMAĞI
  {
    bcd[0] = 0;//1 LER BASAMAĞINI SIFIRLA
    ++bcd[1];//ONLAR BASAMAĞI 1 ARTTIR
    //mso == 1;

    if (bcd[1] == 10)//ONLAR BASAMAĞI 10 OLDUYSA 100x10 = 1000mS= 1 SANIYE
    {
      bcd[1] = 0; //10LAR BASAMAĞI SIFIRLAMA
      ++bcd[2]; // SANIYE BIRLER BASAMAĞI
      snb = 1;

      if (bcd[2] == 10)//SANIYE BIRLER BASAMAĞI 10 OLDUYSA
      {
        bcd[2] = 0;
        ++bcd[3];//SANİYE ONLAR BASAMAĞINI 1 ARTTIR
        sno = 1;

        if (bcd[3] == 6)//SANIYE 10LAR BASAMAĞI 6 OLDUYSA YANI 1 DAKIKA
        {
          bcd[3] = 0;
          ++bcd[4];//DAKIKA BİRLER BASAMAĞI 1 ARTTIR
          if (bcd[4] == 10)//DAKIKA BIRLER BASAMAĞI 10 OLDUYSA
          {
            bcd[4] = 0;
            ++bcd[5];//DAKIKA ONLAR BASAMAĞI 1 ARTTIR
            if (bcd[5] == 6)//DAKIKA ONLAR BASAMAĞI 6 OLDUYSA YANİ 1 SAAT
            {
              bcd[5] = 0;
              ++bcd[6];//SAAT BIRLER BASAMAĞI 1 ARTTIR
              if ((bcd[6] == 4) && (bcd[7] == 2)) // EĞER SAAT 24 OLDUYSA
              {
                bcd[6] = bcd[7] = 0;//SAATI SIFIRLA
              }
              else if (bcd[6] == 10)
              {
                bcd[6] = 0;
                ++bcd[7];
              }
            }
          }
        }
      }
    }
  }
}





ISR(TIMER1_COMPA_vect) {

  bcd_inc(bcd);
   PORTB = 0B00001011;//10
  PORTD = _7seg[bcd[0]];
  delay(3);//tarama ayar;

  PORTB = 0B00000111;//11
  PORTD = _7seg[bcd[1]];
  delay(3);//tarama ayar

  if (snb == 1) {
    PORTB = 0B00001101;//9
    PORTD = _7seg[bcd[2]];
    delay(3);//tarama ayar
    snb == 0;
  }

  if (sno == 1) {
    PORTB = 0B00001110;//8
    PORTD = _7seg[bcd[3]];
    delay(3);//tarama ayar
    sno == 0;
  }


}

void setup()
{
  DDRD = B11111111; //büTÜN D PORTI ÇIKIŞ
  DDRB = DDRB | B00001111;//8-9-10-11 çıkış

  noInterrupts();
  TCCR1A = 0;
  TCNT1 = 0;
  OCR1A = 16000000 / (100 * 64) - 1;
  TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  interrupts();
}

void loop()
{
}
Farkın neden kaynaklandığını anlamak da bir kazanımdır. Proje tamamlandığında alacağı nihai hal kesme içinde olabilir.
 
Farkın neden kaynaklandığını anlamak da bir kazanımdır. Proje tamamlandığında alacağı nihai hal kesme içinde olabilir.
Sebebi anladım aslında
kesmemiz 10mS kurulu 10ms'de 1 kez güncelleme yapıyor display birde benim eklediğim delaylar var süre gittikçe uzuyor
 
Sebebi anladım aslında
kesmemiz 10mS kurulu 10ms'de 1 kez güncelleme yapıyor display birde benim eklediğim delaylar var süre gittikçe uzuyor
O zaman zamanı kesmelerde sayıp ekranı loopda sürmenin sayaç isabetliliğinde olumsuz etkisi olmaz herhalde.
 
Loop'da çekilen akım'da arttı

Normalde hepsi aktif sayarken 80-85 mA arası geziyorken 95'e çıktı(Bütün devre akımı)
 
@taydin abi saatlerdir uğraşıyorum loop'da ortaya çıkan parlaklığı kesme içinde yakalayamıyorum.
Loop içinde kalsa ne gibi sorunlar ortaya çıkar
 
@taydin abi saatlerdir uğraşıyorum loop'da ortaya çıkan parlaklığı kesme içinde yakalayamıyorum.
Loop içinde kalsa ne gibi sorunlar ortaya çıkar

Loop içinde olmaz. İstikrarlı bir parlaklık için bütün 7 segment işinin kesmede yapılması lazım. Yoksa ana döngüde o anda programın ne yaptığına bağlı olarak display parlaklığında sürekli değişimler olur.

Şunu dene kesme içinde (başlangıçta bütün ortak anotlar OFF olsun).

birinci 7segment verisini yaz
birinci 7segment ON yap
5 mikrosaniye tut
birinci 7segment OFF yap

ikinci 7segment verisini yaz
ikinci 7segment ON yap
5 mikrosaniye tut
ikinci 7segment OFF yap

*
*
*

Böyle yapınca bütün segmentlerin parlaklığının çok az olması lazım. Ama hepsinin EŞİT parlaklıkta olması lazım.
 
Loop içinde olmaz. İstikrarlı bir parlaklık için bütün 7 segment işinin kesmede yapılması lazım. Yoksa ana döngüde o anda programın ne yaptığına bağlı olarak display parlaklığında sürekli değişimler olur.

Şunu dene kesme içinde (başlangıçta bütün ortak anotlar OFF olsun).

birinci 7segment verisini yaz
birinci 7segment ON yap
5 mikrosaniye tut
birinci 7segment OFF yap

ikinci 7segment verisini yaz
ikinci 7segment ON yap
5 mikrosaniye tut
ikinci 7segment OFF yap

*
*
*

Böyle yapınca bütün segmentlerin parlaklığının çok az olması lazım. Ama hepsinin EŞİT parlaklıkta olması lazım.
Şunu bir kez izleyip denyeceğim abi kafam bulandı toparlar bu beni
 
par.jpeg

Parlaklık aslında benim için daha hoş böyle çok parlamayıp mat kalınca daha canlı bir nesne gibi gözüküyor.
 
O dediğimi yapınca şu anda parlaklık az ama her basamak için eşit mi?
 
O dediğimi yapınca şu anda parlaklık az ama her basamak için eşit mi?
Evet abi.

Kesme içinde delayları 400uS yaptım
Seri dirençlerini 330R yerine 100R yaptım
şuan hepsi eşit parlaklıkta ve yeterince yanıyor.

Bu şemadaki R1--->100R
 
400 us çok. Aslında 5 us bile çok, onu bile sonradan azaltmayı dene diyecektim. Dirençleri de iyice azalt. 22 Ω veya daha az yap. O zaman hem yeterince parlak olur hem de eşit parlaklıkta olur.

Ama dirençleri 22 Ω yapınca dikkat etmen lazım. ortak anot transistörlerinin bazına pull down koyman lazım ki karta ilk enerji verildiğinde kazara transistörler ON olmasın. 22 Ω direnç ile 7 segmenti sadece çok kısa süre yakabilirsin, yoksa hem LED gider hem de Atmega328 pini gider.
 
400 us çok. Aslında 5 us bile çok, onu bile sonradan azaltmayı dene diyecektim. Dirençleri de iyice azalt. 22 Ω veya daha az yap. O zaman hem yeterince parlak olur hem de eşit parlaklıkta olur.

Ama dirençleri 22 Ω yapınca dikkat etmen lazım. ortak anot transistörlerinin bazına pull down koyman lazım ki karta ilk enerji verildiğinde kazara transistörler ON olmasın. 22 Ω direnç ile 7 segmenti sadece çok kısa süre yakabilirsin, yoksa hem LED gider hem de Atmega328 pini gider.
azaltayım.
süreyide azaltırım daha arge yapıyoruz

pull-up yapıyorum abi hali hazırda
 
pull-up yapıyorum abi hali hazırda

Atmega328 resetten çıkınca ortak anot transistörlerini süren pinler high Z durumda olacak, ve transistörler bu durumda ON duruma gelebilir. Amaç bunu engellemek. Pull up mı gerekiyor pull down mu onu sen biliyorsundur zaten.
 
Atmega328 resetten çıkınca ortak anotları transistörlerini süren pinler high Z durumda olacak, ve transistörler bu durumda ON duruma gelebilir. Amaç bunu engellemek. Pull up mı gerekiyor pull down mu onu sen biliyorsundur zaten.
abi transistörüm pnp iletime geçmesi için 0a çekilmesi gerekiyor.
ben pull-up yaparsam kendiliğinden iletime geçemez boşta olacağı her durumda 1 konumunda olur
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,847
Mesajlar
99,732
Üyeler
2,482
Son üye
ilker29

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top