دراین مقاله با موارد زیر اشنا میشوید :
- پخش صدای ضبط شده در میکرو بدون نیاز به حافظه جانبی.
- ضبط صدا توسط میکرو.
- ارتباط با کارت های حافظه های MMC و SD جهت ذخیره و خواندن اطلاعات.
- پخش صدا توسط PWM در میکرو.
- و ...
بنا به سفارش یکی از دوستان که مداری مشابه یکی از توضیحات شرکت اتمل در مورد Digital Sound Recorder که از آدرس زیر میتوانید مطالعه کنید به من شد.
www.atmel.com/atmel/acrobat/doc1456.pdf
من هم پس از مطالعه مطلب فوق با ایجاد اصلاحاتی در مدار آن را مجددا طراحی و ساختم که در ادامه با آن آشنا می شوید.
من در برنامه خودم اطلاعات صدای شروع ویندوز XP را
که به اسم Windows XP Startup.wav در سیستم قرار دارد را توسط برنامه WinHex در
فلاش رام میکرو قرار دادم. تا میکرو بدون نیاز به هیچگونه حافظه جانبی بتواند
صدای فوق را پخش کند. البته طبق محاسبات من برای پخش هر یک ثانیه صدای مونو شما
نیاز به حدود 7 کیلو بایت حافظه دارید که با توجه به اینکه من از میکرو
ATmega32 با 32 کیلوبایت حافظه فلاش استفاده کردم میتوانستم تا 4 ثانیه صدا در
آن ذخیره کنم. توجه داشته باشید که در اغلب برنامه ها ما درصد کمی از این حافظه
را مورد استفاده قرار میدهیم پس در پروژه های خود میتوانید برای کاربر پسندتر
شدن از این قابلیت بهره ببرید. مثلا میتوانید با استفاده از میکرو ATmega128 تا
حدود 18 ثانیه صدا ذخیره کنید و بعنوان مثال تک تک اعداد 0 تا 9 و برخی ارقام و
حروف را در آن قرار دهید و تا پس از آن هر شماره ای را که میخواهید برایتان
بخواند!
خوب حال برای تبدیل فایل صوتی به فرمتی که بتوان در سورس برنامه از آن استفاده
کرد به برنامه های زیر نیاز داریم :
- ImTOO Video Converter Ultimate برای تبدیل فرمت های مختلف صدا و تصویر به
هم.
- WinHex برای ویرایش و مشاهده فایلها بصورت Hex.
- Sound Recorder ویندوز که بهمراه ویندوز بر روی کامپیوتر نصب میشود.
حالا کمی درباره برنامه های بالا توضیح میدهم. برنامه را من برای تبدیل
فیلمهایی که از اینترنت با فرمت mkv دانلود میکردم گرفتم.
فوق العاده برنامه سبک ولی کارآمدی هست که تا با اون کار نکنید متوجه
منظور من نخواهید شد. از اون دسته برنامه هایی هست که واقعا من خوشم میاد ساده
و کاربردی و سبک. هیچ فرمتی را نمیتونید پید ا کنید که ساپورت نکنه. شما هم اگه
فایل صوتی با فرمتی غیر از wav دارید برای تبدیل و یا برش قسمتی از آن میتونید
از این برنامه استفاده کنید. برای دانلود فایل با حجم 42.45 مگابایت از آدرس
زیر استفاده کنید:
http://www.brothersoft.com/imtoo-video-converter-ultimate-250449.html
حالا که فایل wav شما آماده شد باید توسط برنامه Sound Recorder ویندوز فایل را
باز کنید. باز کردن این برنامه بر روی Start کلیک کنید.بر
رروی All Programs رفته ، بر روی Accessories
بروید ، بر روی Entertainment رفته و Sound Recorder
را اجرا کنید.
فایل مورد نظرتان را در باین برنامه باز کنید. و منوی File گزینه Save As را
انتخاب کنید در پنجره باز شده بر روی دکمه Change کلیک کنید و در پنجره جدید از
منوی کشویی Attributes گزینه اول (8.000kHz;8Bit;Mono) را انتخاب کنید و Ok
کنید و فایلتان را ذخیره کنید.
حالا نوبت به تبدیل فایل به اطلاعات قابل استفاده در برنامه است. با توجه به
اینکه من برنامه را به زبان سی نوشتم (البته توضیحات فوق را با کمی تغییر
میتواند در مورد سایر زبانها همچون بیسیک و یا اسمبلی هم استفاده کرد) باید
مراحل زیر را دنبال کنید.
برای این منظور برنامه WinHex را دانلود کنید:
http://winhex.software.informer.com/download
سپس بعد از اجرای برنامه فایل مورد نظر را در آن باز
کنید.
سپس بر روی کدهای نشان داده شده کلیک کنید و دکمه های Ctrl+A را بزنید تا
تماما انتخاب شوند.
حال از منوی Edit گزینه Copy
Block و از منوی باز شده گزینه
C Source را انتخاب کنید.
در این مرحله در برنامه خود Paste کنید. خواهید دید کدی مشابه زیر تولید
شده:
unsigned char data[104]={
0x3E,0x3E,0x3E,0x27,0x44,0x75,0x70,0x6C,0x69,0x63,0x61,0x74,
0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x27,0x25,0x73,0x27,
0x6F,0x72,0x65,0x64,0x2E,0x27,0x29,0x3B,0x0D,0x0A,0x44,0x75,
0x61,0x74,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,
0x3A,0x5C,0x50,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x46,0x69,
0x44,0x65,0x73,0x69,0x67,0x6E,0x20,0x45,0x78,0x70,0x6C,0x6F,
0x39,0x39,0x20,0x53,0x45,0x5C,0x53,0x79,0x73,0x74,0x65,0x6D,
0x67,0x6E,0x6F,0x72,0x65,0x64,0x2E,0x0D,0x0A,0x3E,0x3E,0x3E,
0x6C,0x69,0x63,0x61,0x74,0x65,0x20,0x64,0x69,0x72,0x65,0x63
};
این کدها بصورت آرایه میباشند که شامل اطلاعات صدا هستند. برای اینکه این کدها در بخش حافظه flash ذخیره شوند باید ابتدای تعریف آرایه کلمه const را اضافه کنید.
این کدها بصورت آرایه میباشند که شامل اطلاعات صدا هستند. برای اینکه این کدها در بخش حافظه flash ذخیره شوند باید ابتدای تعریف آرایه کلمه const را اضافه کنید.
در این بخش جرئیات استفاده از مبدل آنالوگ به دیجیتال جهت ضبط صدا ، استفاده از باس SPI جهت ارتباط با حافظه MMC و مدالسیون پهنای باند PWM برای پخش آشنا میگردید. نمونه کاربردهای که نیاز یک یا تعدادی از این بلوک ها دارند عبارتند از لاگرهای دما ، دستگاه های پاسخگویی تلفن ، یا ضبط کنندهای دیجیتالی صدا.
حافظه MMC مورد استفاده میتواند از هر رنجی انتخاب شود. این حافظه ها با ولتاژ 3.3 ولت و با واسط SPI کار میکنند که برای دسترسی سریع به حافظه بهتر است که بصورت سکتورهای 512 بایتی به آن دسترسی داشته باشیم برای این منظور یک ارایه بعنوان بافر در برنامه جهت دسترسی به حافظه تعریف شده است.
همانطور که عنوان شد حافظه MMC جهت ارتباط از رابط سریال SPI برای دسترسی به اطلاعات استفاده میکند این واسط سخت افزار ساده تری نیاز دارد و باعث کاهش نویز و کاهش ابعاد و تعداد پین های فعال میگردد. نمونه کاربردهای این حافظه ذخیره سازی تصویر، اطلاعات و یا صوت است.
برای تامین ولتاژ 3.3 ولت مورد نیاز حافظه از یک رگولاتور خطی بنام LF33 استفاده شده است. حافظه در فرکانس 2MHz کار میکند و در مد صفر ارتباط بین میکروکنترولر و حافظه برقرار شده است.
در این مدار میکرو ATmega32 برای گرفتن نمونه های آنالوگ از میکروفن ، از مبدل آنالوگ به دیجیتال داخلی استفاده کرده و انتقال اطلاعات بین میکرو حافظه نیز با استفاده از رابط SPI میکرو انجام میشود. از PWM میکرو نیز برا ی پخش صدا استفاده شده است. کدهای اصلی برنامه خیلی کم هستند و براحتی میتوان در میکروهای کوچکتر نیز قرار داد.
قبل ار اینکه صدا را بتوان در حافظه ذخیره نمود باید آنرا به سیگنالهای دیجیتال تبدیل کرد. اینکار در طی چندین مرحله انجام میشود. تصویر 1، نمونه سیگنال آنالوگ.
نخست، سیگنال آنالوگ(تصویر1) به نمونه های زمانی (تصویر 2) تبدیل میشود. زمان بین دو نمونه "پریود نمونه برداری" نامیده میشود. و متقابلا آن به "فرکانس نمونه برداری" وابسته است.مطابق با قضیه نمونه برداری ، فرکانس نمونه برداری باید دو برابر فرکانس سیگنال باشد.
یک سیگنال صدا شامل اطلاعات ماکزیمم زیر 3000Hz است. بنابراین یک فیلتر پایین گذر را میتوان بعنوان محدود کننده باند سیگنال استفاده نمود.
برای یک فیلتر پایین گذر ایده ال با فرکانس قطع 3000Hz فرکانس نمونه برداری باید 6000Hz باشد. عمل برداشتن مقادیر دیجیتال از روی نمونه های آنالوگ کوانتیزیشن نامیده میشود.سیگنال آنالوگ کوانتیزه شده بسیار نزدیک به سیگنال اصلی است.(تصویر 3). تعداد مقادیر دیجیتال را رزولوشن مینامند که مقادیر محدودی هستند. برای نمونه تا 256 مقدار برای یک سیگنال دیجیتال 8 بیتی یا 10 مقدار در این مثال. بنابراین در کوانتیزه کردن سیگنالهای آنالوگ همیشه بخشی از اطلاعات از بین میروند. این خطای کوانتیزه کردن رابطه عکس با رزولوشن سیگنال دیجیتال ،محدوده حداکثر و حداقل مقادیر ( 3 تا 8 در این مثال) دارد.مبدل آنالوگ به دیجیتال میکرو میتواند برای رنج دینامیک سیگنال توسط AGND و AREF برروی مینیمم و ماکزیمم مقادیر سیگنال تنظیم شود.
از سوی دیگر آمپلیفایر میکروفن را میتوان برروی حد دینامیک ADC تنظیم نمود.
هر دوی این روشها مقادر خطای کوانتیزه کردن را کاهش میدهد تصویر 4 مقادیر دیجیتال بدست آمده از سیگنال آنالوگ را نشان میدهد. اینها مقادیر خوانده شده از نتایج تبدیلات ADC هستند.
در این مدار مقادیر ماکزیمم و مینیمم با ارزش نیستند. و بخش بالای ماکزیمم و زیر مینیمم حاوی اطلاعاتی نمیباشند. و میتوان آنها را برای صرفه جویی در حافظه حذف نمود.
اینکار را میتوان با شیفت به پایین دادن تمام سیگنال و برش بالای max انجام داد.(تصویر 5). تصویر 2، سیگنال زمان گسسته.
تصویر 3، سیگنال کوانتیزه.
تصویر 4، سیگنال دیجیتال.
تصویر 5، سیگنال دیجیتال با کاهش بیت.
در این مدار نتیجه سیگنالها 8 بیتی است. این سیگنال اکنون میتواند در حافظه ذخیره شود.
برای پخش اطلاعات ابتدا انها از حافظه خوانده میشود و سپس با توجه به مقدار خوانده شده پالسی با عرض متناسب تولید میگردد. هرچه مقدار خوانده شده بزرگتر باشد عرض پالس تولیدی نیز بزرگتر خواهد بود و بالعکس.(تصویر 6) تصویر 6، دو از مثال از سیگنال PWM.
در تصویر 6 دو نمونه از سیگنال نشان داده شده است. مبدل PWM دوشیبه است در شیب اول تا زمانیکه مقدار شمارنده به عدد مورد نظر نرسیده خروجی صفر است پس از رسیدن شمارنده خروجی یک میشود. سپس در شیب نزولی تا زمانیکه مقدار شمارنده از عدد مورئ نظر کمتر نشده مقدار خروجی یک باقی می ماند. به این ترتیب پالسی با عرض متناسب با عدد مورد نظر تولید میشود در تصویر 7 خروجی PWM برای سیگنال مثال نشان داده شده است.
فرکانس سیگنال PWM باید دو برابر فرکانس سیگنال باشد. اما مقدار 4 برابر بزرگتر از سیگنال اصلی معمولا توصیه میشود. بسته به فیلتر خروجی میتوان بهترین گزینه را با افزایش کلاک یا کاهش رزولوشن سیگنال انتخاب نمود. تصویر 7، سیگنال خروجی PWM
فیلتر شده.
در این مدار فرکانس قطع فیلتر خروجی بر روی 4000Hz تنظیم شده است، که یک چهارم فرکانس PWM (15,686Hz) است.
سرعت کلاک سیستم و رزولوشن PWM مقدار فرکانس PWM را تعیین میکنند. با کلاک سیستم 8MHz برای رزولوشن 10 بیت 3922Hz است(8MHz/2x2^10=3922Hz) 7843Hz
برای رزولوشن 9 بیت و 15,686Hz برای رزولوشن 8 بیت.
فقط آخرین مقدار به اندازه کافی بزرگ است تابعنوان سیگنال کریر برای سیگنال 4000Hz استفاده شود.
فیلتر خروجی فرکانس های بالای سیگنال حامل PWM را حذف میکند. نتیجه خروجی سیگنال برای سیگنال نمونه نشان داده شده ، شبیه تصویر 8 است. تصویر 8، سیگنال خروجی PWM.
مدار میکروفن و اسپیکر آمپلی فایر میکروفن یک آمپلی فایر معکوس ساده است.
گین مدار توسط مقاومت R1 و R9 تنظیم میشود.(گین = R1 / R9). R4 برای تامین تغذیه
میکروفن و C1 برای مسدود کردن ورود مقادیر DC به آمپلی فایر استفاده شده. R2 ,R3
مقدار افست را تنظیم میکنند.R5 و C8 یک فیلتر پایین گذر ساده را تشکیل میدهند.
بعلاوه R5 محافظت میکند آمپلی فایر را از هرگونه خطر در صورتیکه خروجی اتصال کوتاه
شده باشد. مدار اسپیکر شامل 5 طبقه فیلتر پایین گذر چبیچو است و یک طبقه تقویت
کننده.
فیلتر ها از دو طبقه دوتایی فیلتر اکتیو(R6 , R7 , R8 , C2 , C7 و R7 , R10 , R11 ,
R9 , C9 , C5) و یک طبقه فیلتر پسیو(R11 , C4) است.
جهت مشاهده نقشه در ابعاد بزرگتر برروی آن کلیک کنید
برنامه میکرو
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Professional
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2010/05/21
Author : Hossein Lachini
Company : HLachini
Comments:
Chip type : ATmega32
Program type : Application
Clock frequency : 8.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <stdlib.h>
#include <delay.h>
#include <spi.h>
#include "mmc_lib.h"
#include "Windows XP Startup.c"
#define KEY_PLAY PIND.1
#define KEY_RECORD PIND.2
#define KEY_ERASE PIND.3
#define LED PORTB.0
#define ON 1
#define OFF 0
#define SectorSize 512
#define MMC_CS PORTB.4
#define RECORD_TIME 30
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define ADC_VREF_TYPE 0x60
typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE buf_mmc[SectorSize];
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
unsigned char t1ovf;
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Place your code here
if(t1ovf)
t1ovf--;
}
void play_sample(void)
{
WORD idx;
for(idx=0;idx<DURATION;idx++)
{
OCR1B = data[idx];
t1ovf=2;
while(t1ovf);
}
OCR1B = 0;
}
void menu(void)
{
lcd_clear();
lcd_putsf("PLY REC ERS");
}
void record(void)
{
WORD i,mmc_sector_num;
lcd_clear();
lcd_putsf("Record");
lcd_gotoxy(0,1);
LED = ON;
for(mmc_sector_num=0;mmc_sector_num<RECORD_TIME*14;mmc_sector_num++)
{
for(i=0;i<SectorSize;i++)
{
buf_mmc[i] = read_adc(0);
t1ovf=2;
while(t1ovf);
}
mmc_write(mmc_sector_num, buf_mmc);
if(mmc_sector_num%(RECORD_TIME*14/10)==0)
lcd_putsf("#");
}
LED = OFF;
menu();
}
void play(void)
{
WORD idx,mmc_sector_num;
lcd_clear();
lcd_putsf("Play");
lcd_gotoxy(0,1);
LED = ON;
for(mmc_sector_num=0;mmc_sector_num<RECORD_TIME*14;mmc_sector_num++)
{
mmc_read(mmc_sector_num, buf_mmc);
for(idx=0;idx<SectorSize;idx++)
{
OCR1B = buf_mmc[idx];
t1ovf=2;
while(t1ovf);
}
if(mmc_sector_num%(RECORD_TIME*14/10)==0)
lcd_putsf("#");
}
LED = OFF;
menu();
}
void mic2spk(void)
{
lcd_clear();
lcd_putsf("Mic -> Spk");
lcd_gotoxy(0,1);
lcd_putsf(" REC => EXIT");
while(~KEY_ERASE)
{
OCR1B = 1 * read_adc(0);
t1ovf=2;
while(t1ovf);
}
menu();
}
void adc2lcd(void)
{
BYTE ad;
char str[8];
static unsigned char ad_old;
lcd_clear();
lcd_putsf("ADC -> LCD");
lcd_gotoxy(0,1);
lcd_putsf(" REC => EXIT");
delay_ms(3000);
while(~KEY_RECORD)
{
ad = read_adc(0);
if(ad != ad_old)
{
lcd_clear();
lcd_putsf("ADC=");
itoa(ad, str);
lcd_gotoxy(5,0);
lcd_puts(str);
lcd_gotoxy(0,1);
ad_old = ad;
ad/=16;
for(;ad;ad--)
lcd_putsf("#");
delay_ms(100);
}
}
menu();
}
void testmmc(void)
{
WORD i,mmc_sector_num;
lcd_clear();
lcd_putsf("Erase");
LED = ON;
for(mmc_sector_num=0;mmc_sector_num<DURATION/SectorSize; mmc_sector_num++)
{
for(i=0;i<SectorSize;i++)
{
buf_mmc[i] = data[mmc_sector_num*SectorSize+i];
}
mmc_write(mmc_sector_num, buf_mmc);
}
for(i=0;i<SectorSize;i++)
{
buf_mmc[i] = 0;
}
mmc_read(0, buf_mmc);
for(i=0;i<SectorSize && buf_mmc[i] == data[i];i++);
lcd_clear();
if(i==SectorSize)
{
lcd_putsf("MMC OK");
LED = OFF;
}
else
{
lcd_putsf("MMC Fail!");
}
delay_ms(1000);
menu();
}
void init(void)
{
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=0 State5=T State4=T State3=T State2=T State1=T State0=0
PORTB=0x00;
DDRB=0xB1;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=0 State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x10;
LED = OFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Ph. correct PWM top=00FFh
// OC1A output: Discon.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x21;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
// LCD module initialization
lcd_init(16);
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2000.000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
mmc_init();
LED = OFF;
// Global enable interrupts
#asm("sei")
}
void main(void)
{
// Declare your local variables here
init();
lcd_clear();
lcd_putsf("LOADING...");
lcd_gotoxy(0,1);
lcd_putsf("PLY ERS");
play_sample();
if(KEY_PLAY)
mic2spk();
if(KEY_ERASE)
adc2lcd();
menu();
while (1)
{
// Place your code here
if(KEY_PLAY)
play();
if(KEY_RECORD)
record();
if(KEY_ERASE)
testmmc();
};
}
این برنامه با کدویژن نوشته شده است. در ابتدای برنامه
صدای استارت ویندوز که درون حافظه اصلی میکرو ذخیره شده پخش میشود. بدینوسیله شما
از سالم بودن میکرو و مدار اسپیکر مطمئن میشوید. در حین پخش این صدا میتوانید وارد
منوهای تست میکروفن ، تست مبدل آنالوگ به دیجیتال و یا تست حافظه وارد شوید. پس
ازپایان پخش صدای استارت ویندوز، میتوانید یکی از منوهای ضبط و یا پخش و یا پاک
کردن حافظه را انتخاب کنید. در صورتیکه مایل باشید
میتوانید میکرو پروگرم شده و یا مدار کامل برروی PCB به
همراه توضیحات و یا فقط نقشه های PCB و برنامه
میکرو و سایر اطلاعات لازم را جهت ساخت و ارائه در دانشگاه و
یا سایر کاربردهای خود با سفارش به ما دریافت کنید
کلمات کليدي : ضبط صوت دیجیتال توسط میکرو آمپلی فایر ATmega32 MMC ویندوز AVR
ارسال شده در مورخه : شنبه، 8 خرداد ماه ، 1389 توسط lachini
درخواست كمك (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 15 خرداد ماه ، 1389 |
| سلام مهندس
پيشاپيش از زحمات زياد شما نسبت به ايجاد اين وب سايت پر محتوي كمال تشكر و قدرداني را دارم. اين وب سايت با توجه به مطالب خوبي كه در اون قرار دادين خيلي مي تونه مفيد باشه خصوصا در كشور ما كه از اين دست سايت ها خيلي كمه،
من مي خواستم درمورد نحوه ي ارتباط avr با gsm بدونم و كد اون رو اگه محبت كنيد برام ميل كنيد. مثلا اينكه چطور ميشه بوسيله ي avr به يك موبايل sms داد و دريافت كرد.
lotfi.mcitp@gmail.com
|
| [ ارسال جوابیه ]- [بدون موضوع] توسط ميهمان در مورخه : شنبه، 9 مرداد ماه ، 1389
- [بدون موضوع] توسط ميهمان در مورخه : پنجشنبه، 5 خرداد ماه ، 1390
- [بدون موضوع] توسط ميهمان در مورخه : پنجشنبه، 5 خرداد ماه ، 1390
- [بدون موضوع] توسط ميهمان در مورخه : پنجشنبه، 5 خرداد ماه ، 1390
ashkan (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 21 خرداد ماه ، 1389 |
| سلام
ممنون از مطالب مفید سایت
|
| [ ارسال جوابیه ]
بسیار عالی (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 22 خرداد ماه ، 1389 |
| سلام مهندس ، واقعا عالی و جذاب بود. خدا حفظتون کنه ، شما خیلی به گردن برو بچه های الکترونیک ایران حق دارید.
بی صبرانه منتظر ادامه ی مطلب هستم.
موفق باشید.
|
| [ ارسال جوابیه ]
هادی (امتیاز : 0) توسط ميهمان در مورخه : سه شنبه، 1 تير ماه ، 1389 |
| مداری را می خواهم که با ورودی های مختلف ترکهای خاصی از صدای ظبط شده را برایم پخش کند . میتونید کمکم کنید
hasanzadehhadi@yahoo.com
|
| [ ارسال جوابیه ]
سعید (امتیاز : 1) توسط saeiddiod در مورخه : جمعه، 11 تير ماه ، 1389 (مشخصات کاربر | ارسال پیغام شخصی) |
| سلام
مهندس دستت درد نکنه.واقعا عالیه
اگه لطف کنید طریقه اتصال مموری موبایل به AVR رو هم بذارید فوق العاده میشه
بازم ممنون
|
| [ ارسال جوابیه ]
تشکر (امتیاز : 0) توسط ميهمان در مورخه : دوشنبه، 21 تير ماه ، 1389 |
| با تشکر خدمت شما
خیلی مطلب خوبی هست
اگر ادامه آن را هم بذارید عالی میشه
دست شما درد نکنه
|
| [ ارسال جوابیه ]
ایول (امتیاز : 0) توسط ميهمان در مورخه : چهارشنبه، 23 تير ماه ، 1389 |
| یک سوال اساسی
با اینکه کلی زحمت کشیدین ولی
قسمت اسلی ماجرا رو نگفتین
الان یه بچه دبستانی هم بلده کار های بالا رو حتی بهتر هم انجام بده
(البته نه من)
با تشکر که این همه زحمت کشیدین
|
| [ ارسال جوابیه ]
عالیه!عالیه! (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 26 تير ماه ، 1389 |
| خیلی ممنونم از طرح این موضوع بسیار جالب.
با اشتیاق کامل منتظر ادامه پروژه هستم
|
| [ ارسال جوابیه ]
proffesional passage (امتیاز : 0) توسط ميهمان در مورخه : يكشنبه، 27 تير ماه ، 1389 |
| this is intellegent technolopgy from electronic course
m.r hossein lachini
you succesfull
|
| [ ارسال جوابیه ]
هزاردستان (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 9 مرداد ماه ، 1389 |
| مهندس جان سلام آقا خیلی توپه میشه یه زحمت دیگه هم بکشی که مدارشم را توضیح بدبد
آقا من فکرش نمی کردم تو ایران کسی باشه که اینقدر اطلاعات و تجربیات خودشا به راحتی به ملت یاد بده
ممنون مهندس
|
| [ ارسال جوابیه ]
یاور (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 9 مرداد ماه ، 1389 |
| بسیار جالب است امیدوارم همیشه کوشاباشید
|
| [ ارسال جوابیه ]
مهران (امتیاز : 0) توسط ميهمان در مورخه : دوشنبه، 11 مرداد ماه ، 1389 |
| فوق العادست لطفا ادامه بدین
|
| [ ارسال جوابیه ]
[بدون موضوع] (امتیاز : 0) توسط ميهمان در مورخه : سه شنبه، 16 آذر ماه ، 1389 |
| سلام مهندس
خسته نباشید دستتون درد نکنه
ببخشید امکانش هست مدار میکروفن و اسپیکر را بیشتر توضیح بدید؟؟؟
مقاومت ها و خازن هایی که فرمودید در عکس به هم مربوط نمیشن. من نفهمیدم کدومها را توضیح دادید.
متشکر.
|
| [ ارسال جوابیه ]
moshkel (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 19 آذر ماه ، 1389 |
| salam mohandes
mikhastam bebinam chera barnamaro to codvision copy mikonam erore #include "mmc_lib.h" mide
ba tashakor
|
| [ ارسال جوابیه ]
reza (امتیاز : 0) توسط ميهمان در مورخه : دوشنبه، 4 بهمن ماه ، 1389 |
| سايت مهندس لاچيني | پروژه ها و آموزش الكترونيك و تابلوروان - ضبط صوت دیجیتال توسط میکرو AVR من می خواهم تبادل لینک [www.novintabligh.net]انجام دهم
ضمنا برای ثبت آگهی رایگان [www.novintabligh.com] باید چه کاری انجام دهم سايت مهندس لاچيني | پروژه ها و آموزش الكترونيك و تابلوروان - ضبط صوت دیجیتال توسط میکرو AVR
|
| [ ارسال جوابیه ]
درخواست کمک (امتیاز : 0) توسط ميهمان در مورخه : يكشنبه، 24 بهمن ماه ، 1389 |
| ضبط صوت عالی بود ولی اگر می شد برنامه با نرم افزار bascom نوشته شود بهتر بود
من می خواهم در یک lcdرنگی عکس بگذارم و فارسی بنویسم اما نمی دانم از چه lcd استفاده کنم و چه جور به atmega وصل کنم.
|
| [ ارسال جوابیه ]
سلام (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 23 ارديبهشت ماه ، 1390 |
| سلام من میخوام یه مدار بسازم که بشه اطلاعات زیادی رو مثلا در حد اجناس یه فروشگاه توش ضبط کرد که با خواندن هر کدوم از اونا تو میکروفن فراخونی بشه لطفا کمکم کنید متشکرم
|
| [ ارسال جوابیه ]
درخواست (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 21 مرداد ماه ، 1390 |
| سلام مهندس خسته نباشی واقعا دمت گرم.
خدا خیرت بده.
مهندس من متاسفانه طراحی pcb بلد نیستم ، امکانش هست فایل pcb رو هم برای دانلود قرار بدید؟..
بسیار ممنون و سپاسگذارم.
mt.faraji@gmail.com
|
| [ ارسال جوابیه ]- [بدون موضوع] توسط ميهمان در مورخه : شنبه، 22 مرداد ماه ، 1390
مشکل برنامه (امتیاز : 0) توسط ميهمان در مورخه : سه شنبه، 29 شهريور ماه ، 1390 |
| سلام
دو قسمت از برنامه ارور میدهد که مربوط به دو خط از برنامه که کلمه DURATION استفاده شده است. لطفا مرا راهنمایی کنید.
با تشکر از زحمات بی شائبه شما و سایت فوق العاده تان.
|
| [ ارسال جوابیه ]- [بدون موضوع] توسط ميهمان در مورخه : دوشنبه، 5 دي ماه ، 1390
- [بدون موضوع] توسط ميهمان در مورخه : چهارشنبه، 6 ارديبهشت ماه ، 1391
مدار چندتا مشکل داره (امتیاز : 1) توسط amir00 در مورخه : جمعه، 4 آذر ماه ، 1390 (مشخصات کاربر | ارسال پیغام شخصی) |
| سلام آقای مهندس، دستتون درد نکنه بابت پروژه
اما چندتا مشکل هست
یکیش را که در تالار نوشتم : http://www.hlachini.com/ftopicp-3378.html#3378
یکی هم اینکه فایل هدر "Windows XP Startup.c" موجود نیست.
میشه در مورد مشکلی که در تالار بیان کردم توضیحی بفرمایید؟
|
| [ ارسال جوابیه ]
راهنمایی برای پروژه (امتیاز : 0) توسط ميهمان در مورخه : سه شنبه، 23 خرداد ماه ، 1391 |
| سلام
من دانشجوی ترم چهار برقم برای پروژه مدار منطقیم که ساخت ولتمتر هست در مورد مبدل آنالوگ به دیجیتال به یک سری مقاله احتیاج داشتم مقاله شما رو خوندم دراین پروژه ساخت ولتمتر حتما باید از روش شیب دوگانه استفاده کنیم
Dual Slope
اگه تو این ضمینه که روش شیب دوگانه چیه و به چه کتاب هایی باید مراجعه کنم کمکم کنید ممنون میشم
|
| [ ارسال جوابیه ]
ضبط صوت دیجیتال (امتیاز : 0) توسط ميهمان در مورخه : چهارشنبه، 16 فروردين ماه ، 1391 |
| سلام مهندس ضمن تشکر از زحمات شما می تونم فایل شبیه سازی مدار ضبط صوت را داشته باشم
apple_m59@yahoo.com
|
| [ ارسال جوابیه ]
اذان گو (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 27 بهمن ماه ، 1391 |
| باسلام
میخواستم ازتون خواهش کنم که یک برنامه اذان گو با میکرویatmga8طراحی کنید واونو توی سایت قرار دهید که دوستان هم بتوانند برای پروژه پایان ترم استفاده کنیم.
|
| [ ارسال جوابیه ]
دمت گرم (امتیاز : 0) توسط ميهمان در مورخه : دوشنبه، 5 فروردين ماه ، 1392 |
| سلام
میشه با بیسکام هم بذارید
|
| [ ارسال جوابیه ]
درخاست کمک (امتیاز : 1) توسط amirt در مورخه : شنبه، 31 فروردين ماه ، 1392 (مشخصات کاربر | ارسال پیغام شخصی) |
| سلام مهندس
من در مورد wave player که شما درست کردین یه سوال داشتم.خواهش می کنم جواب بدین.من هر چی که زیر خود اون صفحه ارسال پیام میزدم یه صفحه آبی میومد که مانع ارسال درخواست می شد. نمی دونم چرا
من فایل شما رو کامپایل کردم
حتی mmc_lib.h را هم پیدا کردم و موقع کامپایل شدن هیچ مشکلی نداشت .
اما وقتی کامپایل به همراه ساخت کدهای پروژه رو می زدم 5 تا وارنینگ + یک error با این مضمون میده که مانع ساخت فایل hex میشه.
linker error:the program has no 'main ' function
در واقع همه warning , linker error ها مربوط به فایل کتابخانه mmc_lib.h میشه
ممکنه راهنماییم کنید
البته اگه کتابخانه درستش رو دارین واسم بفرستین
ایمیلم: amirt.366@gmail.com
بی صبرانه منتظر جوابتون هستم.
|
| [ ارسال جوابیه ]
ادامه درخواست کمک amirt (امتیاز : 1) توسط amirt در مورخه : شنبه، 31 فروردين ماه ، 1392 (مشخصات کاربر | ارسال پیغام شخصی) |
| اگه میشه یه ایمیلی بدین که من واستون خود فایل mmc_lib.h رو بفرستم
چو ن اینجا نمی شه کپیش کرد
همش اون صفحه آبی میاد...
ممنون میشم اگه جواب بدین
|
| [ ارسال جوابیه ]
کمک (امتیاز : 0) توسط ميهمان در مورخه : چهارشنبه، 22 خرداد ماه ، 1392 |
| مسخره کردی کو کتابخونه ی mmc
|
| [ ارسال جوابیه ]
komakkkkk (امتیاز : 0) توسط ميهمان در مورخه : يكشنبه، 30 تير ماه ، 1392 |
| salam mishe file pcb va baghie chiz haro be man bedin?
man daram roo ye porozhe kar mikonam fagghat mikham dade haye 8 biti ro play konam hamin mishe be man komak konid?
rezanajimiy@yahoo.com
|
| [ ارسال جوابیه ]
مشکل با فایل صوتی بزرگ (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 2 اسفند ماه ، 1392 |
| با سلام و تشکر از مطلب جالبتون.
من طبق فرمایشات شما پروژه رو ساختم خوبم کار میکنه، اما اگه مقدار فایل صوتی بیشتر از 20درصد کل حافظه فلش باشه بدون اینکه اشکالی نشون بده کامپایل میشه ولی چه توی شبیه ساز و چه توی مدار واقعی اصلا میکرو روشن هم نمیشه. میخواستم اگه ممکنه راهنماییم کنید. متشکرم.
|
| [ ارسال جوابیه ]
تشکر (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 26 ارديبهشت ماه ، 1393 |
| آقای مهندس ممنون از مطلب مفیدتون
|
| [ ارسال جوابیه ]
درخواست راهنمايي (امتیاز : 0) توسط ميهمان در مورخه : جمعه، 26 ارديبهشت ماه ، 1393 |
| سلام امكانش هست به زبان بسكام هم بنويسيد
|
| [ ارسال جوابیه ]
خواندن فایلهای MMC و SD با فرمت FAT16 , FAT32 (امتیاز : 0) توسط ميهمان در مورخه : سه شنبه، 10 تير ماه ، 1393 |
| با سلام خسته نباشيد
من اين برنامه رو خواستم استفاده كنم ولي فايل hex رو ندارم
اگه ميشه به ايميلم فايل hex رو بفرستيد
ممنون ميشم
|
| [ ارسال جوابیه ]
درخاست راهنمایی. (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 24 بهمن ماه ، 1394 |
| با سلام و خسته نباشید خدمت مهندس لاچینی.
بنده با یک مشکل مواجه شدم که واقعا عجیب بنظر میرسه.
من یرنامه waw player دارم که وقتی از sd کرت استفاده میکنم جواب میده.ولی وقتی از mmc وخشاب اون که درواقع باید مثل همون sd کارت باشه استفاده میکنم جواب نمیده؟
اینو هم عرض بکنم که کلاس هردو مموری 10 هستش.
اگه امکان داره راهنماییم کنین.
خیلی ممنون از زحمت هاتون.
|
| [ ارسال جوابیه ]
شماتیک (امتیاز : 0) توسط ميهمان در مورخه : يكشنبه، 25 بهمن ماه ، 1394 |
| با تشکر از شما نقشه شماتیکو باز نمیکنه میشه بفرستین برام h.fazelkarimi@gmail.com
|
| [ ارسال جوابیه ]
shematic (امتیاز : 0) توسط ميهمان در مورخه : شنبه، 5 تير ماه ، 1395 |
| سلام و خسته نباشید ...
مطالب خیلی مفیدی بودن فقط شماتیک رو بازنمیکنه اگه امکانش هست واسم بفرستینش
sh.parasto94@gmail.com
ممنونم
|
| [ ارسال جوابیه ]
رکوردر صدا (امتیاز : 0) توسط ميهمان در مورخه : چهارشنبه، 27 مرداد ماه ، 1395 |
| سلام قیمت این برد با شماتیک و برنامه رو بگید
eiragmostaghim@gmail.com
09122048469
|
| [ ارسال جوابیه ]
مهدی (امتیاز : 0) توسط ميهمان در مورخه : يكشنبه، 14 آبان ماه ، 1396 |
| مهندس جان شما خودتو زیاد از حد بالا میدونی یا مارو سطح پایین که به هیچکدوم پاسخ نمیدین؟قضیه چیه؟
منم سوال دارم نمدونم بنا هه جوابم بدی یا نه ولی میپرسم به امید اینکه جواب بدی...
من یه مداری طراحی کردم یه کار خاصی انجام میده و از مگا 64 استفاده کردم ..میخوام یه فایل صوتی 3ثانیه ای با کیفیت علی پخش کنم...من متأسفانه از توضیحات شما چیزی متوجه نشدم چون با بیسک کد میزنم...اگه زحمتی نیست باید تل جواب بدید..یا اگه گزرم افتاد دوباره میام همنجان@ROZ0030
|
| [ ارسال جوابیه ]
| |
|