Elektronik / Mikrodenetleyici Projeleri/

Nokia 3310 göstergeli ses kontrolü (atmega8 tda7439)

Sponsorlu Bağlantılar

Geçenlerde eski şaseleri karıştırırken eski bir müzik seti şasesinde tda7439 buldum ve bu entegre ile bir uygulama yapmaya karar verdim ve sonuçta böyle güzel bir uygulama ortaya çıktı uygulamadan bahsedecek olursak devre tda7439 ile dijital ses kontrolü yapmaktadır denetleyici olarak atmega8 lcd olarakta elimde 3310 lcd olduğu için 3310 lcdsini kullandım tda7439 entegresi –47-0 db arası ses 0-30 db arası kazanç ve -14-+14 db arası bas mid tiz kontrolu ayrıca balans kontrolü yapmaktadır. ayrıca 4 stereo girişi bulunur uygulamada tek giriş olduğu için diğerlerini boş bıraktım entegreyi lm3886 ile test ettim gayet güzel çalışıyor ve ayar yapıyor.

atmel atmega8  nokia lcd

Devrede yapılan ayarlar lcd ekranda barlar sekinde görülebilir 2.satırda ise hangi değerin kontrol edildiği görülür ayrıca hangi bar aktif ise ok ile belirtilir devrede kontrol menu+- +- ve mute tuşları ile ve ayrıca philips rc5 uyumlu kumanda ile sağlanır elimdeki vestel tv kumandası rc5 uyumlu olduğu için rc5 protkolunu kullandım değerler eeproma kaydedildiği için sabit kalır.

Devre üzerindeki jumper ile lcd görüntüsünü tersleyebilir ve normal kullanabilirsiniz jumper ayarı devreyi çalıştırmadan önce yapılmalıdır aksi halde devreyi etkilemez atmega8‘i programlamak için ise devrede isp soketi bulunmaktadır devre güçkaynağına bağlı iken basit paralel port programlayıcılar ile porgramlayabilirsiniz program atmega8’in %75 civarı hafızasını kaplıyor tda7439‘un piyasada bulunabilirliği ise cıvardaki malzemeciye gittim 2 dolara getirtebileceğini söyledi oda malzemelerini karaköyden aldığı için karaköy piyasasında rahatlıkla bulunabilir.

Atmega8‘ide karaköyden 4 liraya 3310 lcd’yi ise yedek parçacıdan 3 dolara almıştım devrenin simulasyon ve baskı devresini proteus7.5 veya üst versiyonu ile açabilirsiniz.Uygulamanın test videosunu ayrıca indirebilirsiniz devrenin kodlarını ücretsiz winavr c derleyicisi ile yazdım projenin açık kodları mevcuttur. Proje ile ilgili öneri eksik ve şikayetlerinizi bildirirseniz sevinirim

Atmega8 + Tda7439 + 3310lcd ile dijital ses kontrol projesine ait video görüntüleri

Main.c yazılım içeriği


/****************************************************************
*  Name    : Atmega8 + Tda7439 +3310 lcd ile dijital ses kontrol*
*  Author  : Erhan YILMAZ                                       *
*  Notice  : All Rights Reserved                                *
*  E-mail  : erhan_yilmazz@hotmail.com                          *
*  Date    : 23.10.2009                                         *
*  Version : 1.0                                                *
*  Notes   : proje ile ilgili öneri görüş veya eksikleri        *
*          : bildiriseniz sevinirim 						    *
****************************************************************/
#define F_CPU 4000000UL
#include <avr/eeprom.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "i2cmaster.h"
#include "twimaster.c"
#include "rc5dec.h"
#include "rc5dec.c"
#include "N3310.h"
#include "N3310.c"
#include "image.h"
#include "font.h"
#define tda7439_Adr		0X88
#define bal		1
#define ses		2
#define gain	3
#define bas		4
#define mid		5
#define tiz		6

const prog_uint8_t *Bitmap;
const prog_uint8_t *Font;
uint8_t menu=1,sekil,mute=0,data,gain_,ses_,bas_,mid_,tiz_,bal_,yuzler,onlar,birler;
//Tda7439a data yazmak için kullanılan fonksiyon
void tda7439_yaz(char sub_adr,char data){
    i2c_start(tda7439_Adr);
	i2c_write(sub_adr);
	i2c_write(data);
	i2c_stop();               
	}
//15lik barı gösteren fonksiyon
void bar_goster1(char bar){
char data1,data2,bosluk,i,onlar,birler;	
bosluk=(15-bar)*5;
if (sekil==1){data1=0XBF;data2=0X80;}
else {data1=0X7F;data2=0X00;}
for(i=0;i<bar;i++){glcdn_WriteData(data1);
glcdn_WriteData(data1);glcdn_WriteData(data1);
glcdn_WriteData(data1);glcdn_WriteData(data2);}
for(i=0;i<bosluk;i++)glcdn_WriteData(data2);}
//Balans barını göstern fonksiyon
void bar_goster2(char deger){	
if(deger<80)sol_bar(deger);
else sag_bar(deger);}

void sol_bar(char deger){
char bosluk,i,bar;bar=(80-deger)/5;bosluk=(16-bar)*2;
for(i=0;i<bosluk;i++)glcdn_WriteData(0X00);
for(i=0;i<bar;i++){glcdn_WriteData(0X7F);glcdn_WriteData(0X00);}
ok_yaz();for(i=0;i<32;i++)glcdn_WriteData(0X00);}

void sag_bar(char deger){
char bosluk,i,bar;bar=(deger-80)/5;bosluk=(16-bar)*2;
for(i=0;i<32;i++)glcdn_WriteData(0X00);ok_yaz();
for(i=0;i<bar;i++){glcdn_WriteData(0X7F);glcdn_WriteData(0X00);}
for(i=0;i<bosluk;i++)glcdn_WriteData(0X00);}
//25lik barı göstern fonksiyon
void bar_goster3(char bar){
char bosluk,i;bar=(bar/2);bosluk=(25-bar)*3;
for(i=0;i<bar;i++){glcdn_WriteData(0X7F);glcdn_WriteData(0X7F);glcdn_WriteData(0X00);}
for(i=0;i<bosluk;i++)glcdn_WriteData(0X00);}
//Hangi satırda olduğu gösteren oku çizen fonksiyon
void isaret_et(char satir){
char data;
if (satir==3){glcdn_gotoxy(0x4D,(satir));
glcdn_WriteData(0X08);glcdn_WriteData(0X1C);
glcdn_WriteData(0X3E);glcdn_WriteData(0X49);
glcdn_WriteData(0X08);glcdn_gotoxy(0x4D,(satir+1));
for(uint8_t i=0;i<5;i++)glcdn_WriteData(0X00);}
else if (satir==6){glcdn_gotoxy(0x4D,(satir));
glcdn_WriteData(0X88);glcdn_WriteData(0X9C);
glcdn_WriteData(0XBE);glcdn_WriteData(0XC9);
glcdn_WriteData(0X88);glcdn_gotoxy(0x4D,(satir-1));
for(uint8_t i=0;i<5;i++)glcdn_WriteData(0X00);}
else{glcdn_gotoxy(0x4D,(satir+1));
if(satir==5)data=0X80;else data=0X00;for(uint8_t i=0;i<5;i++)
glcdn_WriteData(data);glcdn_gotoxy(0x4D,satir);glcdn_WriteData(0X08);
glcdn_WriteData(0X1C);glcdn_WriteData(0X3E);glcdn_WriteData(0X49);
glcdn_WriteData(0X08);glcdn_gotoxy(0x4D,(satir-1));
for(uint8_t i=0;i<5;i++)glcdn_WriteData(0X00);}}
//Denge kısmındaki oku görüntüleyen fonksiyon
void ok_yaz(){
glcdn_WriteData(0X08);glcdn_WriteData(0X1C);
glcdn_WriteData(0X2A);glcdn_WriteData(0X49);glcdn_WriteData(0X08);
glcdn_WriteData(0X08);glcdn_WriteData(0X49);glcdn_WriteData(0X2A);
glcdn_WriteData(0X1C);glcdn_WriteData(0X08);glcdn_WriteData(0X00);}
//Db değelerini seçen fonsiyon
db_sec(char bar){
	switch (bar){
	case 0:glcdn_Putstr("-14db");data=0;break;
	case 1:glcdn_Putstr("-12db");data=1;break;
	case 2:glcdn_Putstr("-10db");data=2;break;
	case 3:glcdn_Putstr("-8db ");data=3;break;
	case 4:glcdn_Putstr("-6db ");data=4;break;
	case 5:glcdn_Putstr("-4db ");data=5;break;
	case 6:glcdn_Putstr("-2db ");data=6;break;
	case 7:glcdn_Putstr("0db  ");data=7;break;
	case 8:glcdn_Putstr("0db  ");data=15;break;
	case 9:glcdn_Putstr("2db  ");data=14;break;
	case 10:glcdn_Putstr("4db  ");data=13;break;
	case 11:glcdn_Putstr("6db  ");data=12;break;
	case 12:glcdn_Putstr("8db  ");data=11;break;
	case 13:glcdn_Putstr("10db ");data=10;break;
	case 14:glcdn_Putstr("12db ");data=9;break;
	case 15:glcdn_Putstr("14db ");data=8;break;}}

//binary sayıyı 2 basamak desimale çeviren fonksiyon
void byte_to_bcd(char sayi){
if(sayi>99)return 0x00;
onlar=(sayi/10)+0x30;birler=(sayi%10)+0x30;
if (onlar==0X30){onlar=birler;birler=0X20;}}
//Ekranda 4 satır barı gösteren fonksiyon
void goster(char sat1,char sat2,char sat3,char sat4){
glcdn_gotoxy(2,3);sekil=0;bar_sec(sat1);
glcdn_gotoxy(2,4);sekil=0;bar_sec(sat2);
glcdn_gotoxy(2,5);sekil=0;bar_sec(sat3);
glcdn_gotoxy(2,6);sekil=1;bar_sec(sat4);}
//Gösterilecek barı seçen fonksiyon
void bar_sec (char bar){
switch (bar){
case bal:bar_goster2(bal_);break;
case ses:bar_goster3(ses_);break;
case gain:bar_goster1(gain_);break;
case bas:bar_goster1(bas_);break;
case mid:bar_goster1(mid_);break;
case tiz:bar_goster1(tiz_);break;}}
//kumanda kodalrını değerlendiren fonksiyon
void tus_bak(char tus){
cli();rc5_valid =0;
switch (tus){
case 13:mute=!mute;_delay_ms(200);break;
case 32:if (menu>1){menu--;_delay_ms(200);}break;
case 33:if (menu<6){menu++;_delay_ms(200);}break;
case 16:if (menu==1 && bal_<159)bal_+=2;
else if(menu==2 && ses_<50)ses_++;
else if(menu==3 && gain_<15)gain_++;
else if(menu==4 && bas_<15)bas_++;
else if(menu==5 && mid_<15)mid_++;
else if(menu==6 && tiz_<15)tiz_++;_delay_ms(50);break;
case 17:if (menu==1 && bal_>1)bal_-=2;
else if(menu==2 && ses_>0)ses_--;
else if(menu==3 && gain_>0)gain_--;
else if(menu==4 && bas_>0)bas_--;
else if(menu==5 && mid_>0)mid_--;
else if(menu==6 && tiz_>0)tiz_--;_delay_ms(50);break;
}sei();}

//Balans ayrının yapıldığı kısım
void denge_ayar(){
	if(~PIND & _BV(7)&&bal_<159){bal_+=2;_delay_ms(100);}
	if(~PIND & _BV(6)&&bal_>1){bal_-=2;_delay_ms(100);}
	glcdn_gotoxy(10,2);glcdn_Putstr("  Denge    ");
	goster(bal,ses,gain,bas);isaret_et(3); 
	if(bal_<80){tda7439_yaz(0X06,80-(bal_+1));tda7439_yaz(0X07,0X00);}
	else{tda7439_yaz(0X06,0X00);if(bal_==80){tda7439_yaz(0X07,0x00);}
	else{tda7439_yaz(0X07,(bal_-1)-80);}}}
//Ses ayarının yapıldığı kısım	
void ses_ayar(){
	if(~PIND & _BV(7)&&ses_<50){ses_++;_delay_ms(150);}
	if(~PIND & _BV(6)&&ses_>0){ses_--;_delay_ms(150);}
	glcdn_gotoxy(10,2);glcdn_Putstr("Ses=");if(ses_!=50)glcdn_Putstr("-");
	byte_to_bcd(50-ses_);glcdn_Putc(onlar);glcdn_Putc(birler);glcdn_Putstr("db   ");
	goster(bal,ses,gain,bas);isaret_et(4);tda7439_yaz(0X02,(50-ses_));}
//Kazanç ayarının yapıldığı kısım	
void gain_ayar(){
	if(~PIND & _BV(7)&&gain_<15){gain_++;_delay_ms(200);}
	if(~PIND & _BV(6)&&gain_>0){gain_--;_delay_ms(200);}
	glcdn_gotoxy(10,2);glcdn_Putstr("Kazanc=");byte_to_bcd(gain_*2);
	glcdn_Putc(onlar);glcdn_Putc(birler);glcdn_Putstr("db");
	goster(bal,ses,gain,bas);isaret_et(5);tda7439_yaz(0X01,gain_);}	
//Bas ayarının yapıldığı kısım	
void bas_ayar(){
	if(~PIND & _BV(7)&&bas_<15){bas_++;_delay_ms(200);}
	if(~PIND & _BV(6)&&bas_>0){bas_--;_delay_ms(200);}
	glcdn_gotoxy(10,2);glcdn_Putstr("Bas=");db_sec(bas_);glcdn_Putstr("  ");
	goster(bal,ses,gain,bas);isaret_et(6);tda7439_yaz(0X03,data);}
//Mid ayarının yapıldığı kısım	
void mid_ayar(){
	if(~PIND & _BV(7)&&mid_<15){mid_++;_delay_ms(200);}
	if(~PIND & _BV(6)&&mid_>0){mid_--;_delay_ms(200);}
	glcdn_gotoxy(10,2);glcdn_Putstr("Mid=");db_sec(mid_);glcdn_Putstr("  ");
	goster(ses,gain,bas,mid);isaret_et(6);tda7439_yaz(0X04,data);}
//Tiz ayarının yapıldığı kısım	
void tiz_ayar(){
	if(~PIND & _BV(7)&&tiz_<15){tiz_++;_delay_ms(200);}
	if(~PIND & _BV(6)&&tiz_>0){tiz_--;_delay_ms(200);}
	glcdn_gotoxy(10,2);glcdn_Putstr("Tiz=");db_sec(tiz_);glcdn_Putstr("  ");
	goster(gain,bas,mid,tiz);isaret_et(6);tda7439_yaz(0X05,data);}
	
void mute_(){
	glcdn_gotoxy(10,2);glcdn_Putstr("   Mute    ");
	tda7439_yaz(0X02,0X38);
	tda7439_yaz(0X01,0X00);
	while(mute==1)
	{if(rc5_valid == -1 && rc5_code==13){rc5_valid =0;mute=!mute;}
	if(~PINB & _BV(0)){mute=!mute;}}
	tda7439_yaz(0X02,(50-ses_));tda7439_yaz(0X01,(gain_));_delay_ms(200);}
//Dahili eeproma data yazan fonksiyon
void eeprom_write( char adres, char data){
while(EECR & (1<<EEWE));
EEAR=adres;
EEDR=data;
EECR |= (1<<EEMWE);
EECR |= (1<<EEWE);
}
//Dahili eepromdan data okuyan fonksiyon
char eeprom_read(char adres){
while(EECR & (1<<EEWE));
EEAR=adres;
EECR |= (1<<EERE);
return EEDR;}
//Başlıkyazısını ve kenarlerı çizen fonksiyon
void cerceve_ciz(){
glcdn_gotoxy(0,1);for(uint8_t i=0; i<84; i++)glcdn_WriteData(pgm_read_byte(&baslik[i]));
for(uint8_t i=1; i<5; i++){glcdn_WriteCommand(GLCD_SETYADDR | i);
glcdn_WriteCommand(GLCD_SETXADDR | 0);glcdn_WriteData(0XFF);
glcdn_WriteCommand(GLCD_SETXADDR | 83);glcdn_WriteData(0XFF);}
glcdn_WriteCommand(0X45);glcdn_WriteCommand(0X80);glcdn_WriteData(0XFF);
for(uint8_t i=1;i<83;i++)glcdn_WriteData(0X80);glcdn_WriteData(0XFF);}


void main(void){
Font=Font5x7;Bitmap=logo;
DDRD=0X00;PORTD=0XF7;
DDRB=0XFE;PORTB=0X01;glcdn_InitDisplay();
i2c_init();tda7439_yaz(0X00,0X03);
bal_=eeprom_read(1);if(bal_>160)bal_=80;denge_ayar();
ses_=eeprom_read(2);if(ses_>50)ses_=30;ses_ayar();
gain_=eeprom_read(3);if(gain_>15)gain_=8;gain_ayar();
bas_=eeprom_read(4);if(bas_>15)bas_=8;bas_ayar();
mid_=eeprom_read(5);if(mid_>15)mid_=8;mid_ayar();
tiz_=eeprom_read(6);if(tiz_>15)tiz_=8;tiz_ayar();
if(~PIND & _BV(2))glcdn_WriteCommand(GLCD_DISPLAYNORMAL);
else glcdn_WriteCommand(GLCD_DISPLAYINVERT);logo_goster();
_delay_ms(4000);glcdn_ClearLcd();cerceve_ciz();rc5_init();sei();

	while(1){
	if(rc5_valid == -1){tus_bak(rc5_code);}
	if(~PINB & _BV(0)){mute=!mute;_delay_ms(200);}	
	if(~PIND & _BV(1) && menu<6){menu++;_delay_ms(200);}
	if(~PIND & _BV(0) && menu>1){menu--;_delay_ms(200);}		
	if(mute==1)mute_();
	if(menu==1){denge_ayar();eeprom_write(1,bal_);}
	if(menu==2){ses_ayar();eeprom_write(2,ses_);}
	if(menu==3){gain_ayar();eeprom_write(3,gain_);}
	if(menu==4){bas_ayar();eeprom_write(4,bas_);}
	if(menu==5){mid_ayar();eeprom_write(5,mid_);}
	if(menu==6){tiz_ayar();eeprom_write(6,tiz_);}}}


N3310.c yazılım içeriği

//////////////////////////////////////////////////////////
// Title:		drm3310.c								//
// Version:		v1.0									//
// Author:												//
// Compiler:	AVR-GCC: WinAVR-20040720				//
// History:		20040815:	Release	v1.0				//
// 														//
//////////////////////////////////////////////////////////

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "N3310.h"

extern const prog_uint8_t *Font;
extern const prog_uint8_t *Bitmap;

void SpiMasterInit(void)
{
    unsigned char tmp;
	
    // Switch SCK and MOSI pins to output mode. 
    DDR_SPI |= _BV(SCK) | _BV(MOSI) | _BV(SS); 
	
    // Activate the SPI hardware. 
    SPCR = _BV(SPE) | _BV(MSTR);
 
    // Clear status flags. 
    tmp = SPSR;
    tmp = SPDR;
}

void glcdn_spiSendByte(uint8_t data){
	// Send Byte
	SPDR = data;
	// Wait until transfer complete
    while ( (SPSR & 0x80) != 0x80 );
	// Chip disable
}

void glcdn_InitDisplay(void){
	GLCD_CTRL_PORT|=_BV(GLCD_RES_); //pull up

	// Init Control Ports
	GLCD_CTRL_DDR|=_BV(GLCD_DC) | _BV(GLCD_RES_) | _BV(GLCD_SCLK) | _BV(GLCD_SDIN);// | _BV(GLCD_CE_);
	
	SpiMasterInit();

	// Reset Lcd
	_delay_ms(15);
	GLCD_CTRL_PORT&=~_BV(GLCD_RES_);
	_delay_ms(1);
	GLCD_CTRL_PORT|=_BV(GLCD_RES_);

	// Enable extended Functionset
	glcdn_WriteCommand(GLCD_FUNCTIONSETEXT);
	// Set Tempcoefficient
	glcdn_WriteCommand(GLCD_TEMPCOEF);
	// Set Bias
	glcdn_WriteCommand(GLCD_BIAS);
	// Set Contrast
	glcdn_Contrast(0x40);
	// Enable normal Functionset
	glcdn_WriteCommand(GLCD_FUNCTIONSET);
	// Set Display to normal Mode
	glcdn_WriteCommand(GLCD_DISPLAYNORMAL);
	// Clear Lcd
	glcdn_ClearLcd();
	
	
	

}

void glcdn_WriteData(uint8_t myData){
	// Enable Data Transfer
	GLCD_CTRL_PORT|=_BV(GLCD_DC);
	// Send Byte
	glcdn_spiSendByte(myData);
}

void glcdn_WriteCommand(uint8_t myData){
	// Enable Control Transfer
	GLCD_CTRL_PORT&=~_BV(GLCD_DC);
	// Send Byte
	glcdn_spiSendByte(myData);
}


void glcdn_ClearLcd(void){
	for(uint8_t i=1;i<7;i++){glcdn_gotoxy(0,i);
	for(uint8_t i=0;i<84;i++)glcdn_WriteData(0X00);}
}


void glcdn_gotoxy(uint8_t x,uint8_t y){
	glcdn_WriteCommand(x | GLCD_SETXADDR);
	glcdn_WriteCommand((y-1) | GLCD_SETYADDR);}

void glcdn_Putstr(char *data){

	while (*data)
	{
		for(uint8_t i=0; i<5; i++)
		{glcdn_WriteData(pgm_read_byte(&Font[((*data - 0x20) * 5) + i]));}
		glcdn_WriteData(0X00);
		data++;
	}
}

void glcdn_Putc(char data){
for(uint8_t i=0; i<5; i++)
{glcdn_WriteData(pgm_read_byte(&Font[((data - 0x20) * 5) + i]));}
glcdn_WriteData(0X00);}


void logo_goster(){
	for(uint8_t i=0;i<6;i++)
	{glcdn_WriteCommand(GLCD_SETYADDR | i);
	glcdn_WriteCommand(0X80);
	for(uint8_t j=0;j<84;j++)
	glcdn_WriteData(pgm_read_byte(&Bitmap[(i*84)+j]));
	}	
}



void glcdn_Contrast ( uint8_t contrast ){
	glcdn_WriteCommand(GLCD_FUNCTIONSETEXT);
	glcdn_WriteCommand(GLCD_SETVOP | contrast);
	glcdn_WriteCommand(GLCD_FUNCTIONSET);
}




Tüm kaynak dosyalar (proteus ares pcb, şema, kütüphane model, kaynak kodlar) ( şifre-pass: tekniker_erhan ): Nokia 3310 göstergeli ses kontrolü (atmega8 tda7439)

Dosya indirme LINK listesi (TXT formatında) link-8301.zip şifre-pass: 320volt.com

  • doktor_kadir

    hocam link ölmüş yenilersen seviniriz

  • Dosya üzerinde güncelleme oldu yeni link eklendi indirebilirsiniz

  • İBRAHİM SAY

    hocam rar dosyası bozuk açılmıyor tekrar yenilerseniz sevinirim.
    doğrusu çok merak ettim projenizi

  • İBRAHİM SAY

    dosya açıldı teşekkürler… yanlız atmega8 nasıl bir entegre olduğunu bilmiyorum programlamakmı gerekiyor. pic gibi programlama kartımı var

  • Erhan

    Atmegalarda picler gibi bir denetleyici avr isp programmer diye nette aratırsan nette bir sürü programlayıcı bulabilirsin hatta çok basit paralel porttan çalışan programlayıcıları var

  • ibrahim say

    teşekkürler hocam yanlız ben erzincandayım bluemavi diye bir site var genelde oradan sipariş veriyorum ama orda yok.sizin bildiğiniz getirtebileceğim bir yer varmı

  • Erhan

    Dostum bluemavide tam olarak ne yok anlamadım atmega8de tda7439da var görünüyor 3310 lcdden bahsediyorsan civardaki telefonculardan temin etmen gerek belirttiğim gibi ben yedek parçacıdan aldım 3dolara

  • elo.tek.er.öğrenci semih

    Erhan ustam selamlar…umarım oralardasınızdır. Ben ege ünide elektronik teknikerliği 2.sınıftayım.proje dersim için sizin bu ton kontrol devresi hoşuma gitti.yalnız bir kaç sorum olacak.

    Bu atmega yı programlmak için parelel porttan basit dediğiniz şey nasıl bişey biraz açıklarmısınız. Tek bir kablo halinde mi oluyor ve nerelerde bulabilirim.

    Dosyadaki baskı devre de hata var mı? Şu yüzden sordum devrenin baskı yüz fotolarında çok çizik atmışsınız yalıtım için. Baskı devreyi karta kendiniz mi çıkarttınız…bi yöntem önerebilirmisiniz? devrenin girişlerine giren 4 kablo nedir. 2 si hoparlör 2 si ses girişi mi? kod dosyalarından tam olarak hangisi atmega ya yüklenecek? şimdiden teşekkürler. Süper bir şey ortaya koymuşsunuz ustam..

  • Erhan

    Aleyküm selam sırayla cevap vermeye çalışım programlayıcı olarak http://elektrobilim.org/forum/showthread.php?t=3264 linkteki konunun devamında bahsettiğim basit bir programlayıcı var onu yapabilirsin baskı devrede 1-2 yolda yanlışlık vardı onları düzelttim şuan baskı devrede hiç bir sorun yok yöntem olarak ta ütüleme ile çıkardım plaketi baskı devreyi el işi kağıdına yazdırıp ütüleyip öyle çıkartıyorum 4 kablodan 2si ses girişi 2side anfiye giden ses çıkışları çıkışlarına hoparlör bağlanmıyor direk devrenin atmega8ide hex dosyanı yüklemen yeterli

  • elo.tek.er.öğrenci semih

    erhan ustam uzun aradan sonra tekrar selamlar..tekrar dan orda olmanızı umut ederek..bi sorum var..kısacık..baskı devre de audıo soketinin yanındaki 2 tane kutuplu kon.un değeri nedir ustam??teşekkürler..bir de devre dki bütün kon.lar 25 volt mu..?sordukça arttı sorular kusura kalmayasın.. :–<)- bir de devre enerjiyi nerden sağlıor..??

  • Erhan

    Selam arkadaşım o kapasitörleri opsiyonel olarak koydum 1-10u arasında bi değerde koyabilirsin devre çıkışı anfiye girdiği için anfininde girişinde benzer kapasitörler bulunur bulunmama ihtimalini düşünerek ekledim elinde yoksa hiç takmaya da bilirsin devrede en yüksek gerilim 9 volt olduğu için 16v tan yüksek bütün kapasitörleri kullanabilirsin devre beslemesini ir gözün yanındaki ac girişi kablosundan alıyor 9-12v ac gerilim yeterli devreninin çalışması için

  • osman

    hocam bu winrar dan dosyayı çıkartırken hata veriyor ?

  • şifreyi yanlış girmiş olabilirsiniz dosyada sorun yok

  • kprm

    İyi günler hocam benim size bi sorum olacaktı bu devreyi tda7313 ile yapmayı düşünüyorum ama devrede ne gibi deişiklikler yapmam gerekir bu konuda bana bilgi verebilir misiniz? tda 7439 ile tda 7313 data pinlerinde sinyaller aynı ama bir kaç ilave var.

    Hocam ayrıca bir şey daha isteycektim sizden kullandığınız kumandanın resmini de ekleyebilir misiniz?

  • Erhan

    İyi günler dostum bahsettiğin entegreyi inceledim ikiside çok farklı amaca hizmet ediyor bahsettiğin entegrede 3 stereo girişten biri seçilerek çıkışta 4e bölünerek surround gibi bir sisteme dönüşüyor td7439 da ise 4 girişten birisi seçilerek bas ,tiz ,balans ,kazanç ,denge ayarı yapılarak çıkışa yine stereo veriliyor.Ayrıca 7313te kazanç ayarı yok 7313 te 4 çıkışın ayrı ayrı ayarı var bunlarla hiç oynamayarak bas ,tiz ,ses giriş seçme gibi bi devre yapılabilir buda senin yazılım bilginle alakalı kodlarda gösterilen bar kısımlarına iyi dikkat etmek lazım önemli olan ekranda ayarları görüntülemek gerisi entegreye i2cden seri data göndermek ama yinede uğraşma derim. tdanin bu türdeki entegrelerinden en iyisi tda7439 diyebillirim 30db’ye kadar kazanç ayarı olması gerçekten çok iyi düşük güçlü giriş sinyallerini çok iyi yükseltiyor kulladığım kumandanın resmi ise aşağıdadır.

  • kprm

    Çok teşekkür ederim hocam resim için çok sağol bu arada peki siz tda 7439 yerine tda 7313ü ekleyebilir misiniz?

  • Erhan

    Şu aralar zamanım olmadığı için bu işlerle uğraşamıyorum kaldıki vaktim olsada td7313le uğraşacağımı sanmıyorum tda7439u tavsiye ederim

  • kprm

    iyi günler arkadaşlar geçenlerde yazmıştım ama tekrar herkese sormak istedim acaba bu devrenin tda 7313 ile yapılması için hex dosyasını nasıl hazırlayabilirim yardımcı olabilecek var mı acaba?

    • Örnek olabilir;

      AVR based TDA7313 Audio processor control

      http://www.scienceprog.com/avr-based-tda7313-audio-processor-control/

      alternatif link: http://www.multiupload.com/1YS3MKWCP0

  • Erhan

    Arkadaşım devrenin kodları zaten mevcut geriye kalan bu kodları tda7313e uyarlamak. Sen elinden geleni yap. Anlayamadığın kısmını illaki izah ederiz.Ama programlama bilgin yoksa zaten kodlardan hiç bir anlam çıkaramazsın. Yardımdan kastın oturup programı tda7313e göre baştan yazdırmak sa bunu kimseden bekleyemezsin. En azından benden bekleme

  • Dagistanli

    Bu devrenin linikini yeniler misiniz?

    Bir kaç kişi söylemiş ama dikkate alınmamış. Devreyi paylaşan ERHAN kardeşim devreyi tekrar upload edip linkini koymanı bekliyoruz.

  • link sağlam kontrol edildi

    yinede alternatif link:

    http://hotfile.com/dl/76133128/011d08 /atemga8_tda7439_3310lcd_digital_ton_kontrol_tekniker_erhan_.rar.html

  • Dagistanli

    Ya yine rahatsız ediyorum amma sıkıştırılan dosyalarda hata var.Hiçbir şey görünmüyor dosyalarda.

    Zipli dosyayı ayıkla dediğimde bir sürü hata veriyor sonra ayıklama bittikten sonra dosyaların içinde hiçbir şey görünmüyor.

    Ayrıca sonradan verdiğin hotfile linkide çalışmıyor…

  • rar dosyasının ismini kısaltın ve dışarı çıkartırken şifresini elle yazın kopyala yapıştır yapıldığında sorun olabiliyor

  • osman uyguralp

    Selamün Aleyküm kardeş ben devreyi kurdum yanlız atmeganın içine yazılımı atmayı beceremedim bana ayrıntılı bilgi verirmisin ?

  • Erhan

    Dostum verdiğim hexi atmega8e yükleyeceksin.Konfigürasyon ayarlarını da 4 mhz harici kristal olarak ayarlayacaksın.Hatta atmega8i sıfır aldıysan hiç bir konfigürasyon ayarı yapmazsan dahili osilatörden çalışır o şekilde dahi görüntünü gelmesi lazım.

  • yusuf

    Selamün aleyküm atmega 8 i bulamadım yerine farklı bir entegre kullanabilirmiyim ?

  • Erhan

    Aleyküm selam 28 pinli atmel olarak atmega88 veya atmega168 kullanılabilir ama atmega8i piyasada bulamadıysan onları hiç bulmazsın var onun yerine atmega16 veya 32 kullanabilirsin ama o zamanda baskı devrede değişiklik yapmak gerek.En yisi atmega8i bulmaya çalış. En rahat bulunanı o piyasada

  • yusuf

    teşekkürler ares te göremedim audio soket in arkasındaki kondansatörlerin değeri nedir ??

  • Erhan

    470nf giriş kondastörleri elimde yok diye takmadım seste bir problem olursa diye ekledim baskı devreye ama bir sorun olmuyor.

  • yusuf

    Selamün Aleyküm başkan baskı devrenin ebatlarını yazabilirmisin bir türlü tutturamadım xs

  • Erhan

    Aleyküm selam baskı devrenin boyutları 112.3mmx74.3mm

  • boly

    #Hi Erhan intend to realize this scheme: Digital audio control with ATMEGA8 Tda7439 + 3310 + lcd but is an impediment, not finding scheme, in principle, only that the wiring, I opened it with ARES program 7 Professional (Proteus) my request is if you can help with the scheme in principle

    Thank you very much

  • Göktuğ

    Kullandığın lm3886 devresini paylaşırmısın ?

  • ehmz

    bu devreyi rs232 den programlayıpta çalıştıran varmı ?

  • cevat

    Çok başarılı bir çalışma tebrik ederim.