سلام دوست عزیزسلام
دوستان از كجا ميشه فهميد ميكرو سوخته يا نه؟! با Atmega 32 كار مي كنم و پروگرمر هاتل. پتو هاتل نشون ميده پروگرم كردهو خطا هم نمي ده. همه چيش اكيه. اما انگار پروگرم نمي كنه.
ي برنامه ساده نوشتم كه يه پورت و ست كنه اما نمي كنه. در ضمن ولتاژ بقيه پايه ها رو گرفتم ولتاژ داره در حد 2 ولت. ميكروم سوخته يا نه؟
ميشه با مولتي متر فهميد سوخته يا نه؟
در پیکره بندی مدار فرقی نمیکنه فقط 7-8 هزار تومن الکی پیاده میشی و 8 پایه با ارزش از میکروکنترلرت بخاطر adc خارجی اشغال میشه ، تازه اونم adc هشت بیتی، تو میکروت یه ای دی سی ده بیتی گذاشته با چندین مد کاری مختلف بیکار نگه داشتی واسه روز مبادا؟ ، مگه 8051 کار میکنی که ای دی سی خارجی بذاری، بفکر جیبت باشو يك سوال ديگه.
اگر بخوايم در يك مدار به جاي adc داخلي از يك adc مجزا استفاده كنيم در پيكره بندي مدار چه تفاوتي ايجاد ميشه؟
اصلا براي adc داخلي بايد چيز خاصي مثل مقاومت يا خازن به مدار اضافه كرد يا دستورات توي خود برنامه كفايت مي كنه؟
اشتابوا في الجواب لطفا.
ممنون
در پیکره بندی مدار فرقی نمیکنه فقط 7-8 هزار تومن الکی پیاده میشی و 8 پایه با ارزش از میکروکنترلرت بخاطر adc خارجی اشغال میشه ، تازه اونم adc هشت بیتی، تو میکروت یه ای دی سی ده بیتی گذاشته با چندین مد کاری مختلف بیکار نگه داشتی واسه روز مبادا؟ ، مگه 8051 کار میکنی که ای دی سی خارجی بذاری، بفکر جیبت باش
برای adc داخلی بستگی داره که ولتاژ مرجعت چی باشه، اما معمولا ولتاژ مرجع رو ولتاژ پایه avcc انتخاب میکنن ، بنابراین یه خازن 100 نانو رو پایه vref و زمین و هکذا برای avcc کافیه، اما بزرگتر ها میگن یه سلف 100 میکروهانری وصل کنید به مثلا adc0 , و پایه adc0 رو با یه خازن صد نانو زمین کنید، ورودی انالوگ رو بدید به قبل از سلف، دستور های توی برنامه هم که لازمه
اما سعی کن ولتاژ مرجعت رو 2.56 داخلی انتخاب نکنی، نه که معماری AVR بی نظیره، ولتاژی که میخونی خطا داره ، همیشه هم یه خازن الکترولیت 100 میکرو بچسبون به میکروت رو پایه vcc , gnd ،
Good Luck
منم با دوست عزیز تا جائی موافقم چون مدارات داخلی میکرو از ترانزیستور های کاسفت تشکیل شده هنگام وصل این ترانزیستور ها جریان زیادی یک باره از مدار عبور میکنه هر جند که اندوکتانس سیم و پایه های میکرو خیلی کمه ولی چون di/dt خیلی زیاده یک افت ولتاژ جزئی تو ورودی مدار بوجود میاد، در عین حال مدار ADC خیلی نسبت به ولتاژ حساسه و یک نویز کوچیک ولتاژ می تونه خطا توش ایجاد کنه به همین دلیل از یک خازن استفاده می کنیم تا این جریان رو واسه مدار ت امین کنه و مانع از افت ولتاژ بشه ولی سلف رو برای اولین بار میشنوم و از دیدگاه مداری استفاده از اون رو به صلاح نمیدونم (به علت پیوستگی جریان سلف و ثابت نبودن جریان ورودی).
سلام دوست عزیز
من ممنونم از شما که اشتباه من رو گفتید، خیلی ممنونم، سلف رو AVCC باید باشه طبق توصیه اتمل،
اما مقاومت ورودی ADC اونقدر زیاد هست که من عملا دیدم کسی 220 ولت AC رو با تقسیم مقاومت وات بالا به 4 ولت تبدیل کرده و مستقیم داده به پایه ADC
http://s2.picofile.com/file/7834659672/2013_07_08_132706.jpg
http://s3.picofile.com/file/7834660000/2013_07_08_132729.jpg
Good Luck
سلام....سلام خدمت دوستان.ببخشید من میخوام یک تابلو تبلیغاتی با ledکه خیلی جاها هست درس کنم.گفتم برای قشنگتر شدنش براش برنامه بنویسم.برنامه نوشتم ولی وقتی خواستم اول با نرم افزار protusشبیح سازی کنم تو اجرا به مشکل خوردم برای فرض چهار تا ال ای دی گزاشتم و تو یک لوپ قرارشون دادم که به ترتیب روشن بشن بعد به ترتیب خاموش.چهار لوپ اول درس میکرو اجرا میکن ولی از لوپ چهارم به بعد led اولم روشن میمون و بقیه فقط روشن خاموش میشن.مشکل از برنامه من یا از نرم افزار؟اگه سخت افزارش ببندم ممکن همین مشکل بازم وجود داشته باشه؟؟برنامه پایین.البته فقط چند خط اولش ک گفتم اول مشکلش بگیرم بعد کاملش کنم ممنون اگه راهنمایی کنین.
$regfile = "M32def.dat"
$crystal = 8000000
Config Portb = Output
Do:
Set Portb.0
Waitms 200
Set Portb.1
Waitms 200
Set Portb.2
Waitms 200
Set Portb.3
Waitms 500
Reset Portb.3
Waitms 200
Reset Portb.2
Waitms 200
Reset Portb.1
Waitms 200
Reset Portb.0
Wait 200
Loop
End
با سلام خدمت مهندسان عزیز درخواست کمک دارم :
من یک پروژه که باید اینورتر بسازم که چون این اینورتر چند سطحی است باید در آن pwm میکرو avr استاده کنم به این صورت که یک ورودی سینوسی رو با فرکانس برق شهر 50 هرتز میدیم و فرکانس خروجی pwm مون باید 33 برابر آن یعنی 1650 هرتز بشه همچنین باید ایم pwm کاملا متقارن باشه یعنی در یک ربع سیکل با ربع سیکل بعدی کاملا قرینه باشند ولی من نمی تونم کاملا متقارن در بیارم مشکلشم میدونم اونم فرکانس خروجیه که به خاطر رنج های کلاک داخلی میکرو یا حتی کریستال خارجی در نمیاد چون به مقدار 33 یا 11 بخش پذیر نیستند
من برناممو میذارم اه میشه کمکم کنید تو پروتئوس کاملا معلومه تقارن ندارند .
//int k=1;
int z=1;
float i=0;
float j=0;
interrupt [ADC_INT] void adc_isr(void)
{
if (ADCH==0x00)
{
z=0;
}
if (z==0);
{
j=50000/255;
i=(ADCH*j)/100;
//if (i>=x[k-1])
//{
//x[k]=i;
OCR1B=i;
ADCSRA=0xfb;
//k=k+1;
//}
//if (i<x[k-1])
//{
//k=k-1;
//OCR1B=x[k];
//if (k==2)
//{
//k=1;
//z=1;
//i=0;
//j=0;
//}
}
//else
//{
// k=1;
//+z=1;
// OCR1B=0x0000;
// }
//}
}
void main(void)
{
PORTA=0xff;
DDRA=0x00;
PORTD=0x00;
DDRD=0xff;
PORTB=0x00;
DDRB=0xff;
PORTC=0x00;
DDRC=0xff;
SFIOR=0x00;
ADMUX=0x60;
ADCSRA=0xfb;
TCCR1A=0x11;
TCCR1B=0x12;
TIMSK=0x00;
OCR1AH=0x01;
OCR1AL=0xf4;
//x[0]=0;
#asm("sei");
while (1)
{
}
}
یه سوال اگه میشه واسم حلش کنید کلی گیج شدم :
به کمک میکرو avr یک ترازوی دیجیتال 0-150kg طراحی کنید . فرض کنید که سنسوری در اختیار دارید که به ازای تغییر هر 100 گرمورودی ، خروجی آن 5mv تغییر میکند (50mv/kg) . و به ازای صفر کیلوگرم ورودی ، خروجی آن صفر ولت میباشد . مقدار وزن اندازه گیری شده باید بر حسب کیلوگرم بر روی یک led نمایش داده شود .
(باید به زبان بیسیک حل بشه ) ( فقط برنامشو لازم دارم فوری چون فردا امتحان دارم این سوال هم حتما میاد و منم که ...............)[/QU
سلام تو برنامت دستور بنویس ک ورودی بگیره و تقسیم بر 5 میلی ولت کن.اینجوری عددی ک بدست میاد میشه وزن ترازو.بعد با یک رند سازی همون بفرس روی خروجی.اگر lcdاستفاده کنی راحتر.برنامش آسون تلاش کن میتونی.منم امتحان دارم نمیرسم برات بنویسم برای ورودی صفر هم همون اول یک حلقه فور بنویس ک اگه ورودی صفر تو حلقه بمون و داعم ورودی چک کن.بعد ک ورودی داشتی بپر ب یک زیر برنامه و نمایش وزن.
موفق باشی![]()
با سلام خدمت مهندسان عزیز درخواست کمک دارم :
من یک پروژه که باید اینورتر بسازم که چون این اینورتر چند سطحی است باید در آن pwm میکرو avr استاده کنم به این صورت که یک ورودی سینوسی رو با فرکانس برق شهر 50 هرتز میدیم و فرکانس خروجی pwm مون باید 33 برابر آن یعنی 1650 هرتز بشه همچنین باید ایم pwm کاملا متقارن باشه یعنی در یک ربع سیکل با ربع سیکل بعدی کاملا قرینه باشند ولی من نمی تونم کاملا متقارن در بیارم مشکلشم میدونم اونم فرکانس خروجیه که به خاطر رنج های کلاک داخلی میکرو یا حتی کریستال خارجی در نمیاد چون به مقدار 33 یا 11 بخش پذیر نیستند
من برناممو میذارم اه میشه کمکم کنید تو پروتئوس کاملا معلومه تقارن ندارند .
//int k=1;
int z=1;
float i=0;
float j=0;
interrupt [ADC_INT] void adc_isr(void)
{
if (ADCH==0x00)
{
z=0;
}
if (z==0);
{
j=50000/255;
i=(ADCH*j)/100;
//if (i>=x[k-1])
//{
//x[k]=i;
OCR1B=i;
ADCSRA=0xfb;
//k=k+1;
//}
//if (i<x[k-1])
//{
//k=k-1;
//OCR1B=x[k];
//if (k==2)
//{
//k=1;
//z=1;
//i=0;
//j=0;
//}
}
//else
//{
// k=1;
//+z=1;
// OCR1B=0x0000;
// }
//}
}
void main(void)
{
PORTA=0xff;
DDRA=0x00;
PORTD=0x00;
DDRD=0xff;
PORTB=0x00;
DDRB=0xff;
PORTC=0x00;
DDRC=0xff;
SFIOR=0x00;
ADMUX=0x60;
ADCSRA=0xfb;
TCCR1A=0x11;
TCCR1B=0x12;
TIMSK=0x00;
OCR1AH=0x01;
OCR1AL=0xf4;
//x[0]=0;
#asm("sei");
while (1)
{
}
}
سلام.سلام دوستان
شما می دونید چطور با میکرو میشه یه برنامه برای ارسال و دریافت اطلاعات با فیبر نوری نوشت؟؟
میشه راهنماییم کنید؟؟
ممنون
Thread starter | عنوان | تالار | پاسخ ها | تاریخ |
---|---|---|---|---|
![]() |
سوالات و مشکلات رباتیک | طراحی دیجیتال و برنامه نویسی | 29 |