سوالات و اشکالات متداول AVR

در اين بخش مي‌توانيد در مورد تمامي مسائل مرتبط با میکروکنترلرهای AVR به بحث بپردازيد

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

Super Moderator
Super Moderator
نمایه کاربر
پست: 1344
تاریخ عضویت: شنبه ۷ مهر ۱۳۸۶, ۱۲:۰۲ ب.ظ
سپاس‌های ارسالی: 3023 بار
سپاس‌های دریافتی: 4754 بار

سوالات و اشکالات متداول AVR

پست توسط Mahdi Mahdavi »

سلام دوستان. تصویر
هر گونه سوال یا مشکلی که در زمینه AVR دارید در این تاپیک بپرسید.
سعی میشه جواب سوالات و مشکلات مثلا در بستن مدار علاوه بر پاسخ دادن در همین تاپیک بصورت نکته در آموزش ها گفت بشه.

یک موردی هست که من شک داشتم. خواهش میکنم نظراتتون رو بگید .
به نظرتون طرح سوال در این تاپیک بصورت جداگانه بهتره و نتیجه بهتری داره و یا در همون تاپیک آموزش AVR ؟
خودم شک دارم که کدوم بهتره .ممنونم

موفق و پیروز باشید تصویر
ناگهان چقدر زود دیر میشود !
Colonel II
Colonel II
نمایه کاربر
پست: 7545
تاریخ عضویت: سه‌شنبه ۲۶ آذر ۱۳۸۷, ۴:۲۰ ب.ظ
سپاس‌های ارسالی: 9280 بار
سپاس‌های دریافتی: 22106 بار

Re: سوالات و اشکالات متداول AVR

پست توسط sinaset »

سلام خدمت اقا مهدی عزیز.
تاپیک خوبی . به نظرم هرکس سوالی در رابطه با اموزش های که شما در اون تاپیک گذاشتید ، داشت . اونجا مطرح می کنه .
باقی سوالات اینجا مطرح بشه بهتره .

-----

من خودم اولین مشتریتون هستم .تصویر

اقا ما خیلی وقته درگیر ، راه اندازی موتور l298 هستم . (هنوز هم موفق نشدم )

شما می تونید برنامه یک رباتی مسیر یاب 3 سنسور رو با ما بدید .(برنامش هم بسکام باشه )؟


یک سوال خارج از مبحث،می خوام l298 رو تست کنم ، باید چطوری این کار رو انجام بدم (فقط می خوام ببینم خروجی داره یا که نه ، ). بدونه میکرو.
باتشکر.تصویر
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.
با عرض پوزش،دیگر در انجمن حضور ندارم،که به پیام ها پاسخ بدم.
Captain
Captain
پست: 2755
تاریخ عضویت: چهارشنبه ۱۸ بهمن ۱۳۸۵, ۱۲:۴۶ ب.ظ
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5559 بار

Re: سوالات و اشکالات متداول AVR

پست توسط Present »

sinaset, دوست عزیز شما باید اول باید ببینید ورودی و خروجی ها و پورت ها و ... در برنامه نویسی شما چیه همین جوری تو هوا فکر نکنم بشه کاری کرد در ضمن فکر کنم باید از الگوریتم های هوش مصنوعی مانند تپه نورد و ... باید استفاده بشه که اونم بستگی به فضای مساله داره
Super Moderator
Super Moderator
نمایه کاربر
پست: 1344
تاریخ عضویت: شنبه ۷ مهر ۱۳۸۶, ۱۲:۰۲ ب.ظ
سپاس‌های ارسالی: 3023 بار
سپاس‌های دریافتی: 4754 بار

Re: سوالات و اشکالات متداول AVR

پست توسط Mahdi Mahdavi »

sinaset نوشته شده:سلام خدمت اقا مهدی عزیز.
تاپیک خوبی . به نظرم هرکس سوالی در رابطه با اموزش های که شما در اون تاپیک گذاشتید ، داشت . اونجا مطرح می کنه .
باقی سوالات اینجا مطرح بشه بهتره .

-----

من خودم اولین مشتریتون هستم .تصویر

اقا ما خیلی وقته درگیر ، راه اندازی موتور l298 هستم . (هنوز هم موفق نشدم )

شما می تونید برنامه یک رباتی مسیر یاب 3 سنسور رو با ما بدید .(برنامش هم بسکام باشه )؟


یک سوال خارج از مبحث،می خوام l298 رو تست کنم ، باید چطوری این کار رو انجام بدم (فقط می خوام ببینم خروجی داره یا که نه ، ). بدونه میکرو.
باتشکر.تصویر

sinaset, عزیز سلام.
راستش به محیط بسکام آشنایی ندارم "هر چند قبلا با زبان برنامه نویسی بیسیک کار کردم ولی آشنایی با برنامه نویسی برای میکرو با این زبان ندارم" و در مورد سنسور های نوری "برای روبات مسیر یاب" هم دارم اطلاعات کسب میکنم. برای پست های بعدی آموزش تصویر

ولی در کل :
این تراشه یک درایو استپ موتور هست. اول باید بدونید استپ موتور شما چند درجه هست. تا بفهمیم برای مثلا یک چرخش کامل موتور باید چند بار یک پورت رو باز و بسته کنیم."روشن و خاموش کردن یا 0و1 کردن پورت"
چون اساس کار استپ موتور همینه. و شما با تاخیر های بین روشن و خاموش کردن پورت ها ، تعدادش و ترتیب میتونید سرعت و جهت و مقدار گردش رو تعیین کنید.

اولا توصیه میکنم حتما به این دو وبسایت سر بزنید . خیلی خوب توضیح داده:
Please Login or Register to see this code

وبسایت اول توضیح کامل این درایو موتور و طریقه اتصال اون رو نشون میده."البته مدار کامل در پست دوم هست. مداری که در لینک اول بسته شده کامل نیست و دو تا سیم دیگه باید به موتور متصل باشه که نیست"

تست این تراشه هم به دو صورته :
1- تست عملی
2- تست از طریق اطلاعات دیتا شیت.
پیشنهاد من اینه که چون این تست دوم خیلی سخته از همون راه عملی استفاده کنید. یعنی یک l298 دیگه تهیه کنید و با فرض سالم بودنش "از نظر آماری باید 99.9 درصد سالم باشه تصویر آماری هستیم دیگه !" مدار رو تست کنید. اگر کار کرد اشکال از درایو موتور بوده. اگر کار نکرد اشکال از جای دیگه ای هست.
در ضمن دقت کنید که یک Heatsink یا همون به قول خودمون رادیاتور برای این تراشه استفاده کنید. در غیر این صورت حرارتی که تولید میکنه ممکنه بهش صدمه بزنه. "جنس هیت سنک ها از آلومینیوم هست و به درایو با پیچ متصل میشه. قیمتش هم ناچیز"
[External Link Removed for Guests] [External Link Removed for Guests]
ناگهان چقدر زود دیر میشود !
Colonel II
Colonel II
نمایه کاربر
پست: 7545
تاریخ عضویت: سه‌شنبه ۲۶ آذر ۱۳۸۷, ۴:۲۰ ب.ظ
سپاس‌های ارسالی: 9280 بار
سپاس‌های دریافتی: 22106 بار

Re: سوالات و اشکالات متداول AVR

پست توسط sinaset »

سلام خدمت اقا مهدی.
ممنون از پاسخ شما .

به نظر نمیرسه که سوخته باشه ، به نظرم یک مشکلی تویه اتصالات باشه . تویه انجمن های دیگه بعضی کاربران از بد قلقی l298 میگفتن و بجایی l298 پیشنهاد می دادن از l6203 استفاده کنند.(l6203 حدود 14 هزارتومان است ،یعنی دوبرابر قیمت l298)

یکی از بدهای l298 اینکه ،نمیشه روی برد برد خوب سوارش کرد ، فکر می کنم بهترین کار اینکه خروجی هاش رو به وسیله پین هدر کشید بیرون و بعد به برد برد وصلش کرد .

در کل ازمایش که گذاشتید خوبه ، به احتمال زیاد انجامش بدم.

باتشکر. :razz:
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.
با عرض پوزش،دیگر در انجمن حضور ندارم،که به پیام ها پاسخ بدم.
Colonel II
Colonel II
نمایه کاربر
پست: 7545
تاریخ عضویت: سه‌شنبه ۲۶ آذر ۱۳۸۷, ۴:۲۰ ب.ظ
سپاس‌های ارسالی: 9280 بار
سپاس‌های دریافتی: 22106 بار

Re: سوالات و اشکالات متداول AVR

پست توسط sinaset »

سلامی دوباره خدمت دوستان .
مشکل من با درایو موتور l298 برطرف شد و تونستم درایور موتورم رو با موفقیت راه اندازه کنم .
باید به پایه vs به صورت جداگانه ولتاژ میدادم ، که من نمی دونستم باید این کار رو انجام بدم .
[External Link Removed for Guests]
====
برای ساخت درایور موتورم از نقشه زیر استفاده کردم (البته بدونه تغذیه ) ، نقشه جالبی گفتم شاید دوستان هم بخواهند ازش بهره ببرند . (در نقشه زیر 2 عدد ال ای دی برای هر موتور وجود دارد که وضعیت درایو رو مشخص میکند )

[External Link Removed for Guests]

===
از دوستان کسی می تونه برنامه ربات 3 سه سنسوره ، حالا با همون کد ویژن رو در اینجا قرار بده ؟(با ای تی مگا 8 یا 32 )، (موتور های من dc معمولی هستن ، درجه ی نیستن . )

باتشکر از همه دوستان.تصویر
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.
با عرض پوزش،دیگر در انجمن حضور ندارم،که به پیام ها پاسخ بدم.
New Member
پست: 1
تاریخ عضویت: یک‌شنبه ۷ مهر ۱۳۹۲, ۱۱:۱۲ ب.ظ

Re: سوالات و اشکالات متداول AVR

پست توسط pinar.n »

سلام

[BLOCKQUOTE]میخواستم بدونم آیا میشه یک بلندگوی 100 اهمی رو به خروجی یک میکروکنترلر ATMEGA16 وصل کرد؟
اگه ممکنه با اثبات و دلیل توضیح داده بشه ممنون میشم
مرسی
[/BLOCKQUOTE]
New Member
پست: 1
تاریخ عضویت: دوشنبه ۲۲ خرداد ۱۳۹۶, ۱۰:۵۵ ق.ظ

Re: سوالات و اشکالات متداول AVR

پست توسط nxzx »

سلام. کامل ترین مرجع آموزش AVR در حال حاضر چه کتابی هست؟ خیلی فوری لازم دارم. ممنون.
Colonel II
Colonel II
نمایه کاربر
پست: 7545
تاریخ عضویت: سه‌شنبه ۲۶ آذر ۱۳۸۷, ۴:۲۰ ب.ظ
سپاس‌های ارسالی: 9280 بار
سپاس‌های دریافتی: 22106 بار

Re: سوالات و اشکالات متداول AVR

پست توسط sinaset »

سلام بر شما
فکر نمی کنم ، چنین کتابی باشد،معمولا هر کدام،بسته به نگرش شما و سبک مد نظر شما،مطالبی را بیان کرده اند.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.
با عرض پوزش،دیگر در انجمن حضور ندارم،که به پیام ها پاسخ بدم.
New Member
پست: 6
تاریخ عضویت: پنج‌شنبه ۹ آذر ۱۳۹۶, ۴:۳۶ ب.ظ
سپاس‌های ارسالی: 50 بار
سپاس‌های دریافتی: 2 بار

Re: سوالات و اشکالات متداول AVR

پست توسط mohsen2017 »

با عرض سلام
من تازه دارم میکرو یاد می گیرم
ی سوال برام پیش اومده اگر ممکنه راهنمایی کنید
سوال اینه:

Please Login or Register to see this code
این سه خط رو من در ابتدای کد نویسی متوجه نشدم
اصلا اینا چی هستن؟
کد ها مربوط به یک LCD هستن که داخل کروشه بصورت هگز وارد شدن
دلیل استفاده از اونها چیه؟
ممنون میشم
Colonel II
Colonel II
نمایه کاربر
پست: 7545
تاریخ عضویت: سه‌شنبه ۲۶ آذر ۱۳۸۷, ۴:۲۰ ب.ظ
سپاس‌های ارسالی: 9280 بار
سپاس‌های دریافتی: 22106 بار

Re: سوالات و اشکالات متداول AVR

پست توسط sinaset »

سلام بر شما
باید این نکته رو می گفتید،که این کدهای مربوط به چه برنامه می باشد..

خط اول ، یه متغیر از نوع آرایه در حافظه فلش میکروکنترولر تعریف شده که 16 جزء نیز دارد.(که گفته شده کدهایی مربوط به کیبورد می باشند) در خط دوم نیز یک متغیر به نام key_code تعرف شده که مقدار ان نیز 16 داده شده ، در خط سوم نیز یک متغیر ارایه تعریف شده که 16 جزء نیز دارد .(و مقدار همگی صفر می باشد*که البته نیازی به چنین کاری نمی باشد!)
بطوری کلی ما در میکروکنترولر بیشتر کارهایمان را به کمک متغیرها انجام میدم،به عنوان مثال مقداری را می خوانیم،مقداری را می نویسیم،نتیجه یک محاسبه ی را درون متغیر قرار میدهیم و...

متغیرها در میکروکنترولرها، یا در حافظه فلش قرار میگرن یا در حافظه رم یا در حافظه eeprom قرار می گیرن. معمولا کارهای که حالت چرک نویسی دارن! در حافظه رم تعریف میشون! فرض کنید،می خواهید دو عدد رو دریافت کنید،سپس باهم دیگر جمعشان کنید و نتیجه را درون یک متغییر دیگر بگذارید و در نهایت ان را به روی LCD نمایش دهید. دراینجا اگر همه متغیرها درون رم تعریف شون،قطعا بهتره خواهد بود! چون نیازی به ذخیره سازی و .. نیست!
اما گاهی می خواهید یک سری اطلاعات،ذخیره شود و با قطع برق و .. از بین نرود و... متغیر را از نوع Flash یا eeprom تعریف می کنید.! چون حافظه دائمی هستن.
در کدهایی که در بالا داده اید،خط اول از حافظه فلش استفاده شده! و دو خط بعدی نیز از حافظه رم استفاده شده .

*دلیل استفاده از کدها می توان این باشد،که احتمالا برنامه نویس،یک سری کدهایی اماده گذاشته است،که هر وقت نیازی بود،حروف چاپ شود(براساس نوع ان) ، یک حروف چاپ شود، این کدها در واقع یک حروف در LCD می باشد که وقتی برای ان فرستاده شود،یک حرف بخصوص چاپ خواهد شد .
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.
با عرض پوزش،دیگر در انجمن حضور ندارم،که به پیام ها پاسخ بدم.
New Member
پست: 6
تاریخ عضویت: پنج‌شنبه ۹ آذر ۱۳۹۶, ۴:۳۶ ب.ظ
سپاس‌های ارسالی: 50 بار
سپاس‌های دریافتی: 2 بار

Re: سوالات و اشکالات متداول AVR

پست توسط mohsen2017 »

sinaset نوشته شده:سلام بر شما
باید این نکته رو می گفتید،که این کدهای مربوط به چه برنامه می باشد..

خط اول ، یه متغیر از نوع آرایه در حافظه فلش میکروکنترولر تعریف شده که 16 جزء نیز دارد.(که گفته شده کدهایی مربوط به کیبورد می باشند) در خط دوم نیز یک متغیر به نام key_code تعرف شده که مقدار ان نیز 16 داده شده ، در خط سوم نیز یک متغیر ارایه تعریف شده که 16 جزء نیز دارد .(و مقدار همگی صفر می باشد*که البته نیازی به چنین کاری نمی باشد!)
بطوری کلی ما در میکروکنترولر بیشتر کارهایمان را به کمک متغیرها انجام میدم،به عنوان مثال مقداری را می خوانیم،مقداری را می نویسیم،نتیجه یک محاسبه ی را درون متغیر قرار میدهیم و...

متغیرها در میکروکنترولرها، یا در حافظه فلش قرار میگرن یا در حافظه رم یا در حافظه eeprom قرار می گیرن. معمولا کارهای که حالت چرک نویسی دارن! در حافظه رم تعریف میشون! فرض کنید،می خواهید دو عدد رو دریافت کنید،سپس باهم دیگر جمعشان کنید و نتیجه را درون یک متغییر دیگر بگذارید و در نهایت ان را به روی LCD نمایش دهید. دراینجا اگر همه متغیرها درون رم تعریف شون،قطعا بهتره خواهد بود! چون نیازی به ذخیره سازی و .. نیست!
اما گاهی می خواهید یک سری اطلاعات،ذخیره شود و با قطع برق و .. از بین نرود و... متغیر را از نوع Flash یا eeprom تعریف می کنید.! چون حافظه دائمی هستن.
در کدهایی که در بالا داده اید،خط اول از حافظه فلش استفاده شده! و دو خط بعدی نیز از حافظه رم استفاده شده .

*دلیل استفاده از کدها می توان این باشد،که احتمالا برنامه نویس،یک سری کدهایی اماده گذاشته است،که هر وقت نیازی بود،حروف چاپ شود(براساس نوع ان) ، یک حروف چاپ شود، این کدها در واقع یک حروف در LCD می باشد که وقتی برای ان فرستاده شود،یک حرف بخصوص چاپ خواهد شد .
باتشکر.



یلام
ممنون از پاسختون
این کد هست
شاید با دیدن این کد بیشتر در مورد اون فهمید
منظورم کاربرد این سه خطی هست که فرمودید:


#include <mega128a.h>
#include <delay.h>
#include <alcd.h>
#include <stdlib.h>
#include <stdio.h>



flash unsigned char keyboard_codes[]={0XDE,0XE7,0XD7,0XB7,0XEB,0XDB,0XBB,0XED,0XDD,0XBD,0XEE,0XBE,0X77,0X7B,0X7D,0X7E};
volatile unsigned char key_code=16;
unsigned char lcd_str[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

void main(void)
{
int temp_key_code,old_key_code=16;


// initialize timer
OCR0=124;
TCCR0=(1<<WGM01)|(1<< CS01);
TIMSK=(1<<OCIE0);

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: On
// INT2 Mode: Falling Edge
//GICR|=(0<<INT1) | (0<<INT0) | (1<<INT2);
//MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
//MCUCSR=(0<<ISC2);
//GIFR=(0<<INTF1) | (0<<INTF0) | (1<<INTF2);

lcd_init(20);

#asm("sei")
lcd_putsf("helo"); delay_ms(1000);lcd_clear();delay_ms(1000);

while(1)
{

temp_key_code=key_code;
if (temp_key_code!= old_key_code)
{
old_key_code=temp_key_code;
if (temp_key_code!=16)
{
itoa (temp_key_code , lcd_str);
lcd_puts(lcd_str);
}
}
}
}

//------------------------------------------------------------------------------------------------------------------

interrupt [TIM0_COMP] void timer0_compare_isr(void)
{
static unsigned char x20=0;
unsigned char temp , i;
if (++x20==20)
{
DDRC=(1<<DDC3)|(1<<DDC2)|(1<<DDC1)|(1<<DDC0);
PORTC=(1<<PORTC7)|(1<<PORTC6)|(1<<PORTC5)|(1<<PORTC4);
delay_us(5); // delay for signal stablization
temp=(PINC & 0Xf0);
DDRC=(1<<DDC7)|(1<<DDC6)|(1<<DDC5)|(1<<DDC4);
PORTC=(1<<PORTC3)|(1<<PORTC2)|(1<<PORTC1)|(1<<PORTC0);
delay_us(5); // delay for signal stablization
temp |=(PINC & 0X0f);
for(i=0;i<16;i++)
{
if(temp==keyboard_codes)
{
key_code=i;
break;
}
else key_code=16;
}
}
}

ارسال پست

بازگشت به “میکروکنترلرهای AVR”