Ana içeriğe git
Konu: Dijital Ses Kontrolü (977 Kez okunmuş)

Ynt: Dijital Ses Kontrolü

Yanıt #45
Hocam TDA7315 devresi 9V ile çalışıyor, bu durumda direnç bağlamam lazım değil mi?
Bir de, direnci hem SDA hem de SCL pinlerine bağlıyorum, değil mi?

Evet pull-up hem SDA hemde SCL bağlanıyor. 
I2C protokolün'de kullanılan Serial Clock frekansına göre standartlamış Direnc değerleride şöyledir.

1- STANDART MOD  - 100KHZ - (5K-10K) OHM DİRENC.
2- HIZLI MOD - 400KHZ - (2K-5K) OHM DİRENC.
3-YÜKSEK HIZLI MOD - 3.4 MHZ - (1K ) OHM DİRENC.

Ayrıca I2C protokolü 4 adet hız aralıklarına sahiptir.

-100 kbit/s
-400 kbit/s
-1 mbit/s
-3,2 Mbit/s 

Sen standart mod kullandığın için. 5k-10k ohm arası direnc atman lazım ben genellikle 10k ohm atıyorum.

 ayrıca Proteusta I2C test edebilirsin verilen nasıl gittiğine bakabilirsin. illa entegreyi beklemene gerek yok. ayrıca özelden bana attığın kodda da mantık hatası vardı şimdi hazır interneti bulmuşken yazayım.

Mesela şurası ilk dikkatimi ceken yer oldu ;

  if (VolumeUp == HIGH && volume < 0) { 
   volume--;
  } else if (VolumeUp == HIGH && volume == 0) {

    volume = 0;

  }
Volume arttırma tuşuna basılmışsa ve volume değeri sıfırdan kücükse ( ki volume değeri 0 dan kücük olamaz ) volumeyi azalt demişsin burda 2 hata var volumei azalatmak yerin arttırman lazım ve    volume < 60 dan demen lazımdı ( yani volume < MAX_VALUE_VOLUM )
Demen gerekiyordu.

buraları tekrar gözden gecirip düzelt.
Mekatronik Teknikeri.
Elektrik-Elektronik Teknisyeni.

Ynt: Dijital Ses Kontrolü

Yanıt #46
Datasheet'e bakarsak, lojik 1 ve 0 seviyelerinin 5V besleme voltajına uyumlu olduğunu görüyoruz. Bu durumda bu entegre, arduino tarafından hiçbir pull up'a gerek kalmadan sürülebilir.

X
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #47
@taydin @Furkan41
Hocam kodu düzenledim, volume artırma azaltma işlemi yapılırken aynı zamanda LCD'deki değer de değişecek, map fonksiyonunu kaldırdım yani :)
Ancak sorun LCD veya LCD'nin kodlarında değil.
Sorun, butonlara bastığım zaman hiçbir değerin değişmemesi.
Seri Port Ekranı açıp, butonlara basıyorum. Ancak hiçbir değerde değişim yok.
Bu sebepten dolayı sorunum LCD'nin kodları değil, değerlerin değişmemesi.
Kod: [Seç]
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);

byte volume = 30;
byte leftmute = 128;
byte rightmute = 160;
byte loud = 68;
byte bass = 111;
byte treble = 127;

int VolumeUp = 2;
int VolumeDown = 3;
int Mute = 4;
int Loudness = 5;
int BassUp = 6;
int BassDown = 7;
int TrebleUp = 8;
int TrebleDown = 9;
int lcdvolume = 30;

void SendData(byte data) {
  Wire.beginTransmission(128);
  Wire.write(data);
  Wire.endTransmission();
}

void setup() {

  pinMode(VolumeUp, INPUT);
  pinMode(VolumeDown, INPUT);
  pinMode(Mute, INPUT);
  pinMode(Loudness, INPUT);
  pinMode(BassUp, INPUT);
  pinMode(BassDown, INPUT);
  pinMode(TrebleUp, INPUT);
  pinMode(TrebleDown, INPUT);
 
  Serial.begin(9600);
 
  Wire.begin();
  Wire.setClock(100000);
  Wire.beginTransmission(128);
  Wire.write(volume);
  Wire.write(leftmute);
  Wire.write(rightmute);
  Wire.write(loud);
  Wire.write(bass);
  Wire.write(treble);
  Wire.endTransmission();
 
  lcd.begin();
  lcd.setCursor(0,0);
  lcd.print("H_SerhatY DSP v1.0");
  lcd.setCursor(0,1);
  lcd.print("Volume, Mute, Bass,");
  lcd.setCursor(0,2);
  lcd.print("Treble and Loudness");
  lcd.setCursor(5,3);
  lcd.print("Controller");
  delay(1000);
  lcd.clear();
}

void loop() {
 
  Serial.println(volume);
  Serial.println(leftmute);
  Serial.println(rightmute);
  Serial.println(loud);
  Serial.println(bass);
  Serial.println(treble);
 
  if (VolumeUp == HIGH) {
    if (volume > 0) {
      volume--;
      lcdvolume++;
    }
  }
  if (VolumeDown == HIGH) {
    if (volume < 60) {
      volume++;
      lcdvolume--;
    }
  }
   
  if (Mute == HIGH) {
    leftmute = 159;
    rightmute = 191;
  } else {
    leftmute = 128;
    rightmute = 160;
  }
 
  if (Loudness == HIGH) {
    loud = 64;
  } else {
    loud = 68;
  }
 
  if (BassUp == HIGH && bass == 104) {
    bass = 104;
  } else if (BassUp == HIGH && bass <= 111 && bass >= 104) {
    bass--;
  } else if (BassUp == HIGH && bass == 102) {
    bass + 9;
  } else if (BassUp == HIGH && bass <= 102 && bass >= 96) {
    bass++;
  }
  if (BassDown == HIGH && bass == 96) {
    bass = 96;
  } else if (BassDown == HIGH && bass > 96 && bass <= 102) {
    bass--;
  } else if (BassDown == HIGH && bass == 111) {
    bass - 9;
  } else if (BassDown == HIGH && bass <= 111 && bass >= 104) {
    bass++;
  }
 
 
 
  if (TrebleUp == HIGH && treble == 120) {
    treble = 120;
  } else if (TrebleUp == HIGH && treble <= 127 && treble >= 120) {
    treble--;
  } else if (TrebleUp == HIGH && treble == 118) {
    treble + 9;
  } else if (TrebleUp == HIGH && treble <= 118 && treble >= 112) {
    treble++;
  }
  if (TrebleDown == HIGH && treble == 112) {
    treble = 112;
  } else if (TrebleDown == HIGH && treble > 112 && treble <= 127) {
    treble--;
  } else if (TrebleDown == HIGH && treble == 127) {
    treble - 9;
  } else if (TrebleDown == HIGH && treble <= 127 && treble >= 120) {
    treble++;
  }
 
  SendData(volume);
  SendData(leftmute);
  SendData(rightmute);
  SendData(loud);
  SendData(bass);
  SendData(treble);
 
  lcd.setCursor(0,0);
  lcd.print("Volume = ");
  lcd.setCursor(9,0);
  lcd.print(lcdvolume);
 
  if (leftmute == 128 && rightmute == 160) {
    lcd.setCursor(0,3);
    lcd.print("Mute:0");
  } else if (leftmute == 159 && rightmute == 191) {
    lcd.setCursor(0,3);
    lcd.print("Mute:1");
  }
 
  if (loud == 68) {
    lcd.setCursor(10,3);
    lcd.print("Loudness:0");
  } else if (loud == 64) {
    lcd.setCursor(10,3);
    lcd.print("Loudness:1");
  }
 
  if (bass == 104) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +7");
  } else if (bass == 105) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +6");
  } else if (bass == 106) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +5");
  } else if (bass == 107) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +4");
  } else if (bass == 108) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +3");
  } else if (bass == 109) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +2");
  } else if (bass == 110) {
    lcd.setCursor(0,1);
    lcd.print("Bass = +1");
  } else if (bass == 111) {
    lcd.setCursor(0,1);
    lcd.print("Bass = 0");
  } else if (bass == 102) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -1");
  } else if (bass == 101) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -2");
  } else if (bass == 100) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -3");
  } else if (bass == 99) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -4");
  } else if (bass == 98) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -5");
  } else if (bass == 97) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -6");
  } else if (bass == 96) {
    lcd.setCursor(0,1);
    lcd.print("Bass = -7");
  }
 
  if (treble == 120) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +7");
  } else if (treble == 121) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +6");
  } else if (treble == 122) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +5");
  } else if (treble == 123) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +4");
  } else if (treble == 124) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +3");
  } else if (treble == 125) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +2");
  } else if (treble == 126) {
    lcd.setCursor(0,2);
    lcd.print("Treble = +1");
  } else if (treble == 127) {
    lcd.setCursor(0,2);
    lcd.print("Treble = 0");
  } else if (treble == 118) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -1");
  } else if (treble == 117) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -2");
  } else if (treble == 116) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -3");
  } else if (treble == 115) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -4");
  } else if (treble == 114) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -5");
  } else if (treble == 113) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -6");
  } else if (treble == 112) {
    lcd.setCursor(0,2);
    lcd.print("Treble = -7");
  }
 
  delay(500);
 
}
Dijital Ses Kontrolü : %90 Tamamlandı
TEA2025B Ampli : %70 Tamamlandı
LM1875 2.1 Ampli : %40 Tamamlandı
Transistörlü Ampli v1.0 : Hazırda Bekliyor
Sırada : STK4191II Ampli

Ynt: Dijital Ses Kontrolü

Yanıt #48
Öncelikle dediğim gibi kodu basitleştirmen lazım. volume değişkeni ile ilgili gereksiz işlem yapıyorsun demiştim. Onu düzeltmişsin. Ama diğer değişkenler için aynı problem devam ediyor. Ayrıca treble ve bass kontrolünde her değer için ayrı if var. Bunları da düzelt.

Bir programda kesinlikle kaçınılması gereken birşey, aynı kodun kopyala yapıştır ile değişik yerlerde tekrar edilmesidir. Değişik yerlerde aynı iş yapılması gerekiyorsa, o işi bir fonksiyon haline getir ve o fonksiyonu çağır.

Birde volume ve lcdvolume diye iki ayrı değişken yapmışsın. Bu da çok yanlış birşey. Ses seviyesi bir tane ise, onun değişkeni de bir tane olmalı. Bu basit programda belki hataya sebep olmaz, ama daha karmaşık programlarda bir bugdan ötürü umulmadık bir şekilde bu iki değişken birbiri ile uyumsuz hale gelebilir. Birisi "volüm maksimumda" derken diğeri "volüm ortada" diyebilir. Daha önceki gibi tek değişken olsun ve bunu TDA'ya yazan fonksiyon ve ekrana yazan fonksiyon olsun (gerekli dönüşümleri yaptıktan sonra tabiki).
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #49
LCD ekran olarak hangi shield'i kullanıyorsun? Ben de orijinal arduino uno ve "LCD Keypad Shield" var. Bu LCD, paralel arabirime sahip. Ayrıca butonlar da dijital portlara değil, ACD'ye bağlı. Senin LCD herhalde seri arabirime sahip. Butonlar da muhtemelen dijital portlara bağlı olabilir. Yani senin kod benim arduino'da çalışmaz, benimki de senin arduino'da çalışmaz. O yüzden kodu basitleştir ki hata analizi kolay olsun. Dediğim gibi o kodun tamamının 50 satırdan aşağıya düşmesi lazım.

X
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #50
I2C protokolün'de kullanılan Serial Clock frekansına göre standartlamış Direnc değerleride şöyledir.
 
 

Pull up dirençlerinin belirlenmesinde esas etken, pulse'ların yükselme süresidir (rise time) Furkan. Burada da belirleyici olan, I2C bus'taki kaçak kapasitedir. Şöyle bir örnek vereyim: Bir I2C master'a bir I2C slave bağlı ise, kaçak kapasiteler düşüktür, yüksek değerli pull up konulabilir. Ama diyelim bir I2C master'a 8 tane I2C slave bağlı ise, kaçak kapasite oldukça yüksektir ve oldukça düşük değerli bir pull up gerekir.

Düşük değerli pull up kullanırsan, I2C nin çalışması garantidir. Güç tüketimini azaltmak için pull up değerini yükseltirsin, ama işte burada I2C bus kaçak kapasitesi belirleyicidir.
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #51
Öncelikle dediğim gibi kodu basitleştirmen lazım. volume değişkeni ile ilgili gereksiz işlem yapıyorsun demiştim. Onu düzeltmişsin. Ama diğer değişkenler için aynı problem devam ediyor. Ayrıca treble ve bass kontrolünde her değer için ayrı if var. Bunları da düzelt.

Bir programda kesinlikle kaçınılması gereken birşey, aynı kodun kopyala yapıştır ile değişik yerlerde tekrar edilmesidir. Değişik yerlerde aynı iş yapılması gerekiyorsa, o işi bir fonksiyon haline getir ve o fonksiyonu çağır.

Birde volume ve lcdvolume diye iki ayrı değişken yapmışsın. Bu da çok yanlış birşey. Ses seviyesi bir tane ise, onun değişkeni de bir tane olmalı. Bu basit programda belki hataya sebep olmaz, ama daha karmaşık programlarda bir bugdan ötürü umulmadık bir şekilde bu iki değişken birbiri ile uyumsuz hale gelebilir. Birisi "volüm maksimumda" derken diğeri "volüm ortada" diyebilir. Daha önceki gibi tek değişken olsun ve bunu TDA'ya yazan fonksiyon ve ekrana yazan fonksiyon olsun (gerekli dönüşümleri yaptıktan sonra tabiki).
Kodu basitleştirmek mümkün tabii ki, ancak 50 satırdan aşağıya düşmesi mümkün değil zira zaten değişkenleri tanımladığım kısım ile setup kısmının toplamı 50 satırdan fazla. Setup kısmındaki herhangi bir şeyi çıkaramayacağıma göre(başlangıçta gelen yazı çıkarılabilir ama estetik benim için önemli) zaten kod doğal olarak 50 satırdan uzun oluyor.

Hocam siz LCD'de volume göstermek için bir fonksiyon yazmıştınız, onu kullandığım zaman ekranda hiçbir şey görünmüyor ancak bu şekilde ekranda volume görünüyor.
Yanlız meselemiz LCD falan değil, butonlara bastığım zaman byte olarak tanımladığım değişkenlerde herhangi bir hareketlilik yok.

LCD fonksiyonları vs. halledilir ama şu anki durumu düzeltmek için yardıma ihtiyacım var, zira önceden de belirttiğim gibi hayatımda ilk defa kod yazdım. Tabii ki ilk defadan kastım kendi oluşturduğum kodlar olarak, yoksa daha önceden Java'da basit bir şeyler yazıyordum, ancak internetten vs. bakarak yaptığım şeylerdi.

Ayrıca şu an kurulu olan sistemi sormuşsunuz, bendeki Arduino CH340 USB-Seri dönüştürücülü klon bir model, butonlar dijital pinlere bağlı, ve LCD olarak 4x20 LCD kullanıyorum, üstünde I2C dönüştürücü var, I2C olarak kullanmamın sebebi zaten hali hazırda 8 adet dijital pini butonların kullanıyor olması.
Dijital Ses Kontrolü : %90 Tamamlandı
TEA2025B Ampli : %70 Tamamlandı
LM1875 2.1 Ampli : %40 Tamamlandı
Transistörlü Ampli v1.0 : Hazırda Bekliyor
Sırada : STK4191II Ampli

Ynt: Dijital Ses Kontrolü

Yanıt #52
Programlama işini öğrenmek için başından beri doğru alışkanlıkları ve disiplini kazanmak önemlidir Serhat. Ben seni bu doğrultuda yönlendirirken, sen "Boşver disiplini, doğru alışkanlıkları, bu kod olduğu şekilde çalışsın" diyorsan, o konuda yardımcı olamayacağım malesef. Benim ipuçlarını vermem lazım, senin kendi çabanla sonuca gitmen lazım. Bu iş böyledir.
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #53
Programlama işini öğrenmek için başından beri doğru alışkanlıkları ve disiplini kazanmak önemlidir Serhat. Ben seni bu doğrultuda yönlendirirken, sen "Boşver disiplini, doğru alışkanlıkları, bu kod olduğu şekilde çalışsın" diyorsan, o konuda yardımcı olamayacağım malesef. Benim ipuçlarını vermem lazım, senin kendi çabanla sonuca gitmen lazım. Bu iş böyledir.
Hocam ben LCD düzenini halletmeyeceğim demedim ki. Ben sadece önce bu sorunu halletmeliyim dedim. Ayrıca kodu dikkatlice incelerseniz zaten sadece değişken tanımı ve setup kısmı 50 satırdan daha uzun, benim buradaki herhangi bir fonksiyonu çıkarmam mümkün değil.
Zaten ben niye bu işe bulaştım ki.
Neyse, zaten Arduino'yu çöpe atacağım, bu tip şeyler benim gibi birisi için fazla.
Dijital Ses Kontrolü : %90 Tamamlandı
TEA2025B Ampli : %70 Tamamlandı
LM1875 2.1 Ampli : %40 Tamamlandı
Transistörlü Ampli v1.0 : Hazırda Bekliyor
Sırada : STK4191II Ampli

Ynt: Dijital Ses Kontrolü

Yanıt #54
Diyelim bir arabayı tamir ediyorsun. Arabanın genel görünüşü iyi, ama motoru yok, 4 yerine 8 tekerlek takılmış, fren hidroliği boşaltılmış. Burada önce neyi düzeltmek lazım?

Yeni multimedya sistemi, klima, falan mı takmak lazım? Wax cila mı atmak lazım? Bunlar keyifli işler tabi, insan önce bunları yapmak istiyor. Ayrıca bunları yapınca gösterilecek birşey de oluyor ortada.

Yoksa temel yapısal sorunları mı çözmek lazım? Bunlar angarya işler, çünkü kimse senin bunları ne kadar iyi yaptığını görüp takdir etmeyecek. Ama iyi bir ürünü de gerçekten iyi yapan da bunlar.

Eğer bu işi öğrenmek için giriştiysen bu projeye, vaktini ayır, emek ver ve hakkıyla yapmaya çalış. Derinlemesine bilgi böyle öğrenilir.

Ama hemen birşey ortaya çıksın, arkadaşlara hava atayım diyorsan, internette araştır, birisi kesin hazır bir kod yazmıştır. Hemen yükle elindeki karta ve kullan. Ama sonra da birşeyler öğrendim deme.
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #55
Bana yardım eden, etmeyen herkese çok teşekkür ederim.
En basit olayı atlayınca hiçbir şeyin çalışmaması gibi bir durum açığa çıkabiliyor.
Kod: [Seç]
digitalRead
Bu da insanın canını sıkıyor tabii.
Aşağıya dosyaları bırakıyorum. İsteyen kullansın.
Yanlız daha önceden Arduino'nun EEPROM'una hiçbir şey yazılmamış olması lazım.
Önce zip dosyası içindeki EEPROM Setup kodunu Arduino'ya yükleyin.
LCD üzerinde "EEPROM Setup is Completed." diye bir yazı gelecek.
Sonrasında normal kodu Arduino'nun içine atın.
EEPROM ömrünü uzatmak adına sadece değişkenler EEPROM'daki değerden farklı olunca EEPROM'a yazma yapıyor, böylece daha uzun ömürlü çalışabiliyor.
Ha bir de, LCD kütüphanesi de dosyanın içinde.
Dijital Ses Kontrolü : %90 Tamamlandı
TEA2025B Ampli : %70 Tamamlandı
LM1875 2.1 Ampli : %40 Tamamlandı
Transistörlü Ampli v1.0 : Hazırda Bekliyor
Sırada : STK4191II Ampli

Ynt: Dijital Ses Kontrolü

Yanıt #56
Ne oldu serhat yine efkarlanmissin kodun mu calismiyor. 😀

Taydin abinin dediklerini dikkate al. Boyle basit seyler de bir sekilde kodu yazdim desende ilerde karisik bir sey yapmak istediginde. Hata cozmekten kodu calistiramazsin. Derlesen bile dunya kadsr bug cikar.


Her neyse ben suan terminaldeyim cihazi yaptiysan ne mutlu sana yapamadiysan yarin izmite gittigimde detaylica bakarim nerde ne yanlisin olduguna. Haydi gorusuruz kendinize iyi bakin.
Mekatronik Teknikeri.
Elektrik-Elektronik Teknisyeni.

Ynt: Dijital Ses Kontrolü

Yanıt #57
Ne oldu serhat yine efkarlanmissin kodun mu calismiyor. 😀

Evet Serhat arada bir bu moda gidiyor anlaşılan :) Bana da kızmış, ama canı sağolsun. Gene elimden geldiği kadar yardım ederim, ama öyle "birisi şu benim çalışmayan kodu alsın baksın, bütün hataların listesini versin bana, ben de liste üzerinden geçip hepsini düzelteyim" yok. Kendisi biraz sürünecek, kendi yapacak ve kendi öğrenecek. Robot gibi, "şu satırdaki şunu değiştir, şu satırları ilave et" yok.

Doğrusunun bu olduğunu o da anlayacak ileriki meslek hayatında. Anlamasa da yapacak birşey yok, neticede burada bizler bunu bir karşılık beklediğimizden yapmıyoruz. Amaç iyi mühendislerin yetişmesi için bizim de bir katkımız olsun, yani vatana hizmet.
Elektrik sayacı döndürücüsü ...

Ynt: Dijital Ses Kontrolü

Yanıt #58
Evet Serhat arada bir bu moda gidiyor anlaşılan :) Bana da kızmış, ama canı sağolsun. Gene elimden geldiği kadar yardım ederim, ama öyle "birisi şu benim çalışmayan kodu alsın baksın, bütün hataların listesini versin bana, ben de liste üzerinden geçip hepsini düzelteyim" yok. Kendisi biraz sürünecek, kendi yapacak ve kendi öğrenecek. Robot gibi, "şu satırdaki şunu değiştir, şu satırları ilave et" yok.

Doğrusunun bu olduğunu o da anlayacak ileriki meslek hayatında. Anlamasa da yapacak birşey yok, neticede burada bizler bunu bir karşılık beklediğimizden yapmıyoruz. Amaç iyi mühendislerin yetişmesi için bizim de bir katkımız olsun, yani vatana hizmet.
Hocam paylaştığım kod çalışıyor, ve şu an 1.1 sürümüne yükseldi :)
Uzaktan kumanda ile kontrol imkanı sağladım.
Mute ve Loudness aktivitelerinin EEPROM'a kaydı gereksiz olduğundan dolayı(bence) onları artık kaydetmiyorum.
Tabii ben uzaktan kumanda özelliği ekledikten sonra kod 8kB değil 15kB oldu :)
Dijital Ses Kontrolü : %90 Tamamlandı
TEA2025B Ampli : %70 Tamamlandı
LM1875 2.1 Ampli : %40 Tamamlandı
Transistörlü Ampli v1.0 : Hazırda Bekliyor
Sırada : STK4191II Ampli

Ynt: Dijital Ses Kontrolü

Yanıt #59
Hocam paylaştığım kod çalışıyor, ve şu an 1.1 sürümüne yükseldi :)
Uzaktan kumanda ile kontrol imkanı sağladım.
Mute ve Loudness aktivitelerinin EEPROM'a kaydı gereksiz olduğundan dolayı(bence) onları artık kaydetmiyorum.
Tabii ben uzaktan kumanda özelliği ekledikten sonra kod 8kB değil 15kB oldu :)

Devreyi yaptıysan bir calışma videosu atta keyifle izleyelim
Mekatronik Teknikeri.
Elektrik-Elektronik Teknisyeni.