انتخابات از نگاه یک برنامه نویس C:
typedef enum
{
TRUE,
FALSE,
NONE
}VOTE_TYPE;
VOTE_TYPE vote;
...
if((vote==FALSE)||(vote==NONE)) while(1);
...
@KnowledgePlus
typedef enum
{
TRUE,
FALSE,
NONE
}VOTE_TYPE;
VOTE_TYPE vote;
...
if((vote==FALSE)||(vote==NONE)) while(1);
...
@KnowledgePlus
زمانی بود که برای جذب شدن در بازار کار رشته الکترونیک داشتن مدرک تحصیلی کافی بود. آن دوره گذشت و زمانی رسید که آشنایی با سخت افزار ها و نرم افزارها و راه اندازی آنها و گذراندن دوره های تخصصی در آموزشگاه ها و شرکت ها عامل مهمی برای جذب در بازار کار رشته الکترونیک بود. آن دوره هم می توان گفت که تقریبا سپری شده و در حال حاضر اکثر جویندگان کار دارای فهرستی از دوره های گذرانده شده و سخت افزارها و نرم افزارهای راه اندازی شده هستند. اکنون شرایط کار به گونه ای است که تنها برای کسی که واقعا کاربلد باشد و دارای دانش و تجربه کافی باشد تضمین کار وجود دارد. از آنجایی که کسب مهارت و تجربه تنها با صرف زمان زیاد میسر است و راه میانبری برای آن وجود ندارد، یکی از اساسی ترین سوال ها از یک فرد متقاضی به غیر از اینکه چه مدرکی دارد و چه دوره هایی را گذرانده این است که:
چقدر و چند ساعت برای تمرین و کسب مهارت و تجربه آموزی بصورت عملی تاکنون وقت گذاشته ای؟
@KnowledgePlus
چقدر و چند ساعت برای تمرین و کسب مهارت و تجربه آموزی بصورت عملی تاکنون وقت گذاشته ای؟
@KnowledgePlus
نقل یک تجربه عملی:
در مداری که خروجی میکروکنترلر بصورت مستقیم و بدون رعایت ایزولاسیون به درایورهای Mosfet و igbt مانند IR2130 متصل شده است، چندین بار مشاهده شد که یک پین میکروکنترلر سوخته و به درستی عمل نمی کند. این مسئله به احتمال زیاد نشان دهنده یک ولتاژ بالای برگشتی از آی سی درایور به پین میکروکنترلر است که باعث سوختن آن می شود. در چنین شرایطی برای محافظت پین به غیر از بحث ایزولاسیون می توان از روش سری کردن مقاومت مناسب و قرار دادن دیودهای حفاظتی معکوس (علاوه بر دیودهای داخلی) در ورودی پین استفاده کرد.
@KnowledgePlus
در مداری که خروجی میکروکنترلر بصورت مستقیم و بدون رعایت ایزولاسیون به درایورهای Mosfet و igbt مانند IR2130 متصل شده است، چندین بار مشاهده شد که یک پین میکروکنترلر سوخته و به درستی عمل نمی کند. این مسئله به احتمال زیاد نشان دهنده یک ولتاژ بالای برگشتی از آی سی درایور به پین میکروکنترلر است که باعث سوختن آن می شود. در چنین شرایطی برای محافظت پین به غیر از بحث ایزولاسیون می توان از روش سری کردن مقاومت مناسب و قرار دادن دیودهای حفاظتی معکوس (علاوه بر دیودهای داخلی) در ورودی پین استفاده کرد.
@KnowledgePlus
با توجه به اتمام موجودی برد آموزشی XMEGA و عدم تصمیم برای تولید مجدد این برد به دلیل اشتغالات کاری، دوستانی که قصد تهیه این برد را دارند می توانند با استفاده از فایل pcb که در سایت قرار داده شده نسبت به ساخت آن اقدام کنند. فایل pcb در لینک زیر قرار دارد:
https://knowledgeplus.ir/download.aspx
@KnowledgePlus
https://knowledgeplus.ir/download.aspx
@KnowledgePlus
یک صحنه با شکوه در رشته الکترونیک :
اگر روزی نگاه کردی و دیدی که محصولی را تولید کرده ای که هم بازگشت مالی بسیار خوبی دارد، هم باعث ایجاد اشتغال و به اصطلاح نان رسانی برای دیگران شده، هم به پیشرفت صنعت مملکت و جلوگیری از واردات کمک کرده و هم کاربر آن بسیار راضی و متشکر است، تجربه چنین صحنه ای خستگی سال ها فعالیت و زحمت در این رشته را از تن انسان به در خواهد برد.
@KnowledgePlus
اگر روزی نگاه کردی و دیدی که محصولی را تولید کرده ای که هم بازگشت مالی بسیار خوبی دارد، هم باعث ایجاد اشتغال و به اصطلاح نان رسانی برای دیگران شده، هم به پیشرفت صنعت مملکت و جلوگیری از واردات کمک کرده و هم کاربر آن بسیار راضی و متشکر است، تجربه چنین صحنه ای خستگی سال ها فعالیت و زحمت در این رشته را از تن انسان به در خواهد برد.
@KnowledgePlus
برخی از دوستان تقاضاهایی مبنی بر تشکیل گروه تلگرام یا ایجاد شرایطی برای گفتگو و طرح سوال از طریق تلگرام را مطرح می کنند که متاسفانه به دلیل کمبود وقت و کثرت افراد فعلا چنین امکانی وجود ندارد.
@KnowledgePlus
@KnowledgePlus
نکته ای در مورد جذب سرمایه گذار برای کسانی که طرح هایی را برای تولید دارند:
حکایت معروفی هست درباره قضاوت مردم در مورد سواد دو نفر مدعی که یکی عکس مار را کشید و دیگری عبارت مار را نوشت که در نهایت حق را به کسی دادند که شکل مار را به آنها نشان داد. دوستان زیادی هستند که طرحی را در ذهن دارند و انتظار دارند که افراد سرمایه گذار بر اساس توضیحات و ادعای آنها مجاب شوند که روی طرحشان سرمایه گذاری کنند. اما تجربه نشان می دهد که سرمایه گذاران برای چیزی که می بینند بسیار راحت تر حاضرند سرمایه خود را در اختیار بگذارند تا چیزی که هنوز وجود خارجی ندارد و قرار است در آینده آیا به نتیجه برسد یا نرسد. به زبان ساده تر، بین این دو وضعیت فرق اساسی وجود دارد که به یک سرمایه گذار، دستگاه یا مدار در حال کاری را نشان بدهیم و از او بخواهیم که برای تولید آن همکاری کند. تا اینکه طرحی را روی کاغذ و بر اساس حرف توضیح بدهیم و از سرمایه گذار بخواهیم که پول و امکانات خود را در اختیار بگذارد تا در آینده ای مبهم، آن دستگاه یا مدار به جواب برسد.
@KnowledgePlus
حکایت معروفی هست درباره قضاوت مردم در مورد سواد دو نفر مدعی که یکی عکس مار را کشید و دیگری عبارت مار را نوشت که در نهایت حق را به کسی دادند که شکل مار را به آنها نشان داد. دوستان زیادی هستند که طرحی را در ذهن دارند و انتظار دارند که افراد سرمایه گذار بر اساس توضیحات و ادعای آنها مجاب شوند که روی طرحشان سرمایه گذاری کنند. اما تجربه نشان می دهد که سرمایه گذاران برای چیزی که می بینند بسیار راحت تر حاضرند سرمایه خود را در اختیار بگذارند تا چیزی که هنوز وجود خارجی ندارد و قرار است در آینده آیا به نتیجه برسد یا نرسد. به زبان ساده تر، بین این دو وضعیت فرق اساسی وجود دارد که به یک سرمایه گذار، دستگاه یا مدار در حال کاری را نشان بدهیم و از او بخواهیم که برای تولید آن همکاری کند. تا اینکه طرحی را روی کاغذ و بر اساس حرف توضیح بدهیم و از سرمایه گذار بخواهیم که پول و امکانات خود را در اختیار بگذارد تا در آینده ای مبهم، آن دستگاه یا مدار به جواب برسد.
@KnowledgePlus
توصیه ای به نقل از یک فرد با تجربه برای تولید محصولات:
شخص با تجربه ای توصیه ای را مطرح می کرد که در اینجا نقل قول می شود به این شرح که اگر بتوانیم محصولی را تولید کنیم که به نحوی مرتبط با صنایع و بازارهای با گردش مالی بالا و نیازمند به تیراژ زیاد مانند صنعت ساختمان، صنعت خودرو، لوازم خانگی و مانند آن باشد، احتمال موفقیت به لحاظ بازده اقتصادی و تضمین تداوم کار نسبت به بازارهای محدود و کم تیراژ بیشتر است.
@KnowledgePlus
شخص با تجربه ای توصیه ای را مطرح می کرد که در اینجا نقل قول می شود به این شرح که اگر بتوانیم محصولی را تولید کنیم که به نحوی مرتبط با صنایع و بازارهای با گردش مالی بالا و نیازمند به تیراژ زیاد مانند صنعت ساختمان، صنعت خودرو، لوازم خانگی و مانند آن باشد، احتمال موفقیت به لحاظ بازده اقتصادی و تضمین تداوم کار نسبت به بازارهای محدود و کم تیراژ بیشتر است.
@KnowledgePlus
تمرین برنامه نویسی میکروکنترلر:
یک کلید push button به عنوان ورودی و یک led با واسطه یک مقاومت به عنوان خروجی به میکروکنترلری متصل شده اند. هدف کم و زیاد کردن نور led به روش pwm از طریق همین یک کلید است. بعد از ریست، کلید بصورت پیش فرض وظیفه افزایش نور را به عهده دارد. روش کار به این ترتیب است که اگر کلید به مدت 800 میلی ثانیه نگه داشته شود، بعد از سپری شدن این زمان یک پله به نور led اضافه می شود و با فرض نگه داشتن کلید، این افزایش در هر 100 میلی ثانیه تا رسیدن به حداکثر نور led ادامه می یابد. اما برای تغییر وظیفه کلید از افزایش نور به کاهش آن و برعکس باید ضربه سریعی روی کلید زد و چنانچه زمان فشار دادن کلید از 500 میلی ثانیه کمتر باشد، وظیفه کلید تغییر می کند. بعد از تغییر وظیفه کلید از افزایشی به کاهشی و رها کردن آن، نگه داشتن مجدد کلید به همان روالی که توضیح داده شد، این بار باعث کاهش نور led می شود. پس به این ترتیب تنها با یک کلید می توان عملیات افزایش یا کاهش نور led را انجام داد. این تمرین نمونه ای از صورت مسئله ای است که سخت افزار آن بسیار ساده و ابتدایی است. اما پیاده سازی آن به لحاظ کدنویسی چندان هم ساده نیست.
@KnowledgePlus
یک کلید push button به عنوان ورودی و یک led با واسطه یک مقاومت به عنوان خروجی به میکروکنترلری متصل شده اند. هدف کم و زیاد کردن نور led به روش pwm از طریق همین یک کلید است. بعد از ریست، کلید بصورت پیش فرض وظیفه افزایش نور را به عهده دارد. روش کار به این ترتیب است که اگر کلید به مدت 800 میلی ثانیه نگه داشته شود، بعد از سپری شدن این زمان یک پله به نور led اضافه می شود و با فرض نگه داشتن کلید، این افزایش در هر 100 میلی ثانیه تا رسیدن به حداکثر نور led ادامه می یابد. اما برای تغییر وظیفه کلید از افزایش نور به کاهش آن و برعکس باید ضربه سریعی روی کلید زد و چنانچه زمان فشار دادن کلید از 500 میلی ثانیه کمتر باشد، وظیفه کلید تغییر می کند. بعد از تغییر وظیفه کلید از افزایشی به کاهشی و رها کردن آن، نگه داشتن مجدد کلید به همان روالی که توضیح داده شد، این بار باعث کاهش نور led می شود. پس به این ترتیب تنها با یک کلید می توان عملیات افزایش یا کاهش نور led را انجام داد. این تمرین نمونه ای از صورت مسئله ای است که سخت افزار آن بسیار ساده و ابتدایی است. اما پیاده سازی آن به لحاظ کدنویسی چندان هم ساده نیست.
@KnowledgePlus
در منابع مختلف ذکر شده که استنشاق دود حاصل از لحیم کاری و وان قلع و مانند آن، مضر و خطرناک است. با صرف هزینه کم و نصب فن روی لوله یا کانال هوای مناسب می توان این دود مضر را به فضای باز هدایت کرد. مراقب سلامتی خود باشیم.
@KnowledgePlus
@KnowledgePlus
بین این دو رویکرد، دنیایی از تفاوت هست:
1- اول مطالبی را یاد می گیریم و بعد می گردیم و برای آنچه که یاد گرفته ایم، کاربردهایی را پیدا می کنیم.
2- بر اساس نیاز برای پیاده سازی کاربردها، دنبال یادگیری مطالب می رویم.
@KnowledgePlus
1- اول مطالبی را یاد می گیریم و بعد می گردیم و برای آنچه که یاد گرفته ایم، کاربردهایی را پیدا می کنیم.
2- بر اساس نیاز برای پیاده سازی کاربردها، دنبال یادگیری مطالب می رویم.
@KnowledgePlus
استفاده از مقادیر از پیش محاسبه شده (Precalculated) برای صرفه جویی در زمان محاسبات:
یکی از تکنیک ها در برنامه نویسی میکروکنترلر که باعث صرفه جویی در زمان محاسبات پیچیده و افزایش سرعت اجرای برنامه می شود، استفاده از مقادیر از پیش محاسبه شده (Precalculated) بجای محاسبات Real time است. مثالی از این مقادیر از پیش محاسبه شده، نمونه های یک موج سینوسی است که در هنگام برنامه نویسی بصورت Lookup table ذخیره سازی می شود و در هنگام اجرای برنامه بر حسب نیاز از این جدول استفاده می شود. البته ذخیره سازی مقادیر از پیش محاسبه شده منحصر به روش فوق در هنگام برنامه نویسی نیست و در برخی کاربردها، محاسبه این مقادیر می تواند یک بار در زمان اجرای برنامه و قبل از استفاده از آنها هم انجام شود و در حافظه قرار داده شود و در هنگام نیاز، مکررا از این مقادیر استفاده شود. بکارگیری هوشمندانه مقادیر از پیش محاسبه شده می تواند اجرای کاربردهایی با میکروکنترلرهای با کلاک پایین و cpu ضعیف را ممکن کند که در صورت عدم استفاده از این روش اجرای آن کاربردها ممکن نباشد.
@KnowledgePlus
یکی از تکنیک ها در برنامه نویسی میکروکنترلر که باعث صرفه جویی در زمان محاسبات پیچیده و افزایش سرعت اجرای برنامه می شود، استفاده از مقادیر از پیش محاسبه شده (Precalculated) بجای محاسبات Real time است. مثالی از این مقادیر از پیش محاسبه شده، نمونه های یک موج سینوسی است که در هنگام برنامه نویسی بصورت Lookup table ذخیره سازی می شود و در هنگام اجرای برنامه بر حسب نیاز از این جدول استفاده می شود. البته ذخیره سازی مقادیر از پیش محاسبه شده منحصر به روش فوق در هنگام برنامه نویسی نیست و در برخی کاربردها، محاسبه این مقادیر می تواند یک بار در زمان اجرای برنامه و قبل از استفاده از آنها هم انجام شود و در حافظه قرار داده شود و در هنگام نیاز، مکررا از این مقادیر استفاده شود. بکارگیری هوشمندانه مقادیر از پیش محاسبه شده می تواند اجرای کاربردهایی با میکروکنترلرهای با کلاک پایین و cpu ضعیف را ممکن کند که در صورت عدم استفاده از این روش اجرای آن کاربردها ممکن نباشد.
@KnowledgePlus
صورت مسئله زیر نمونه ای از کاربرد روابط پایه هندسه و مثلثات است که در یکی از پروژه های صنعتی مهم و با ارزش افزوده بالا به عنوان بخشی از مراحل اجرایی کار پیاده سازی شد:
در یک ماشین صنعتی لازم است روی قطعاتی به شکل قطاعی از یک دایره، عملیات ماشین کاری انجام می شود و سیستم کنترلر برای انجام صحیح عملیات که با سرو موتورهای صنعتی انجام می شود لازم است از شعاع دایره ای که قطعه مورد نظر بخشی از آن است، اطلاع داشته باشد. از آنجایی که این شعاع برای قطعات مختلف متفاوت است، کاربر باید بتواند به نحوی شعاع دایره قطعه کار را از طریق رابط کاربری برای کنترلر تعریف کند. اما از روی قطاعی از دایره نمی توان شعاع آن را اندازه گرفت و این کار مستلزم استفاده از فرمول های هندسی و مثلثاتی است. در این پروژه برای پیاده سازی عملی این کار فرمول هایی با استفاده از روابط هندسی به دست آمد که بر مبنای آن کاربر ارتفاع و پهنای قطاع و قطر فلز تشکیل دهنده قطعه تحت ماشین کاری را با کولیس اندازه می گیرد و به کنترلر وارد می کند و کنترلر هم بر اساس فرمول های مذکور، شعاع دایره ای را که قطاع از آن تشکیل شده محاسبه می کند و متناسب با این شعاع فرمان های مناسب را به سرموتورهای دستگاه ارسال می کند. این یک نمونه عملی از صورت مسئله ای است که برای پیاده سازی آن تسلط و حرفه ای بودن در برنامه نویسی و میکروکنترلر و مانند آن به تنهایی کفایت نمی کند و عدم تسلط بر هندسه و مثلثات پیاده سازی آن را با شکست مواجه می کند.
@KnowledgePlus
در یک ماشین صنعتی لازم است روی قطعاتی به شکل قطاعی از یک دایره، عملیات ماشین کاری انجام می شود و سیستم کنترلر برای انجام صحیح عملیات که با سرو موتورهای صنعتی انجام می شود لازم است از شعاع دایره ای که قطعه مورد نظر بخشی از آن است، اطلاع داشته باشد. از آنجایی که این شعاع برای قطعات مختلف متفاوت است، کاربر باید بتواند به نحوی شعاع دایره قطعه کار را از طریق رابط کاربری برای کنترلر تعریف کند. اما از روی قطاعی از دایره نمی توان شعاع آن را اندازه گرفت و این کار مستلزم استفاده از فرمول های هندسی و مثلثاتی است. در این پروژه برای پیاده سازی عملی این کار فرمول هایی با استفاده از روابط هندسی به دست آمد که بر مبنای آن کاربر ارتفاع و پهنای قطاع و قطر فلز تشکیل دهنده قطعه تحت ماشین کاری را با کولیس اندازه می گیرد و به کنترلر وارد می کند و کنترلر هم بر اساس فرمول های مذکور، شعاع دایره ای را که قطاع از آن تشکیل شده محاسبه می کند و متناسب با این شعاع فرمان های مناسب را به سرموتورهای دستگاه ارسال می کند. این یک نمونه عملی از صورت مسئله ای است که برای پیاده سازی آن تسلط و حرفه ای بودن در برنامه نویسی و میکروکنترلر و مانند آن به تنهایی کفایت نمی کند و عدم تسلط بر هندسه و مثلثات پیاده سازی آن را با شکست مواجه می کند.
@KnowledgePlus
اعداد باینری علامت دار و sign extension:
در یک عدد علامت دار n بیتی، 1 بودن بیت دارای بیشترین ارزش معادل با ضرب یک علامت منفی در ارزش معادل این بیت است. مثلا در عدد 8 بیتی علامت دار 11111111، بیت ها به ترتیب معادل با 1، 2، 4، 8، 16، 32، 64 و 128- هستند. برای افزایش تعداد بیت های یک عدد علامت دار باید msb آن در تمام بیت های اضافه شده گسترش داده شود که به این عملیات sign extension گفته می شود. به عنوان مثال اگر بخواهیم عدد 8 بیتی علامت دار 10000011 را که معادل 125- است به عددی 16 بیتی تبدیل کنیم، عدد باینری 16 بیتی معادل برابر 1111111110000011 خواهد بود. در این مثال چون msb در عدد 8 بیتی 1 است، در تمام 8 بیت اضافه شده هم باید 1 قرار داده شود. در عدد 16 بیتی حاصل از عملیات sign extension این بار msb معادل 32768- است و بقیه بیت ها معادل با اعداد مثبت هستند و عدد کلی باز هم برابر 125- است.
@KnowledgePlus
در یک عدد علامت دار n بیتی، 1 بودن بیت دارای بیشترین ارزش معادل با ضرب یک علامت منفی در ارزش معادل این بیت است. مثلا در عدد 8 بیتی علامت دار 11111111، بیت ها به ترتیب معادل با 1، 2، 4، 8، 16، 32، 64 و 128- هستند. برای افزایش تعداد بیت های یک عدد علامت دار باید msb آن در تمام بیت های اضافه شده گسترش داده شود که به این عملیات sign extension گفته می شود. به عنوان مثال اگر بخواهیم عدد 8 بیتی علامت دار 10000011 را که معادل 125- است به عددی 16 بیتی تبدیل کنیم، عدد باینری 16 بیتی معادل برابر 1111111110000011 خواهد بود. در این مثال چون msb در عدد 8 بیتی 1 است، در تمام 8 بیت اضافه شده هم باید 1 قرار داده شود. در عدد 16 بیتی حاصل از عملیات sign extension این بار msb معادل 32768- است و بقیه بیت ها معادل با اعداد مثبت هستند و عدد کلی باز هم برابر 125- است.
@KnowledgePlus
جهت یادآوری:
برای استفاده از میکروکنترلرها در محیط های صنعتی و پرنویز به توصیه های ارائه شده در بخش بیستم فیلم آموزش AVR و مقاله مقابله با نویز در AVR که در سایت قابل دسترس است، مراجعه کنید. ضمنا به تاریخ ضبط فیلم و نگارش مقاله هم توجه داشته باشید. زیرا ممکن است قطعاتی در آن تاریخ مانند امروز در بازار موجود نبوده باشد.
@KnowledgePlus
برای استفاده از میکروکنترلرها در محیط های صنعتی و پرنویز به توصیه های ارائه شده در بخش بیستم فیلم آموزش AVR و مقاله مقابله با نویز در AVR که در سایت قابل دسترس است، مراجعه کنید. ضمنا به تاریخ ضبط فیلم و نگارش مقاله هم توجه داشته باشید. زیرا ممکن است قطعاتی در آن تاریخ مانند امروز در بازار موجود نبوده باشد.
@KnowledgePlus
چه کسانی از فعالیت در رشته الکترونیک خسته و پشیمان نمی شوند؟
کسانی که در این رشته دارای استعداد واقعی هستند و به همین دلیل به آن عشق می ورزند و فقط به عنوان ابزاری برای پول در آوردن به الکترونیک نگاه نمی کنند. به چنین افرادی حتی اگر کاری خارج از این موضوع و با درآمدی بسیار بالاتر هم پیشنهاد شود، به دلیل علاقه ای که به فعالیت در رشته الکترونیک دارند آن کار را قبول نمی کنند. برای آنها بازنشستگی فکری معنی ندارد و تا توان دارند به فعالیت خود ادامه می دهند.
@KnowledgePlus
کسانی که در این رشته دارای استعداد واقعی هستند و به همین دلیل به آن عشق می ورزند و فقط به عنوان ابزاری برای پول در آوردن به الکترونیک نگاه نمی کنند. به چنین افرادی حتی اگر کاری خارج از این موضوع و با درآمدی بسیار بالاتر هم پیشنهاد شود، به دلیل علاقه ای که به فعالیت در رشته الکترونیک دارند آن کار را قبول نمی کنند. برای آنها بازنشستگی فکری معنی ندارد و تا توان دارند به فعالیت خود ادامه می دهند.
@KnowledgePlus
مثالی از کدنویسی برای timeout در avr:
تابعی برای دریافت یک کاراکتر از طریق usart:
unsigned char receive_data(unsigned char *received_data)
{
/* Return value:
0: Timeout
1: Success
*/
timeout=TIMEOUT_VALUE;
do
{
if(UCSRA&(1«RXC))
{
*received_data=UDR;
return 1;
}
}
while(timeout);
return 0;
}
در وقفه یکی از تایمرها هم که با زمان مناسب اتفاق می افتد، مقدار timeout در صورت غیر صفر بودن کاهش می یابد:
if(timeout) timeout--;
@KnowledgePlus
تابعی برای دریافت یک کاراکتر از طریق usart:
unsigned char receive_data(unsigned char *received_data)
{
/* Return value:
0: Timeout
1: Success
*/
timeout=TIMEOUT_VALUE;
do
{
if(UCSRA&(1«RXC))
{
*received_data=UDR;
return 1;
}
}
while(timeout);
return 0;
}
در وقفه یکی از تایمرها هم که با زمان مناسب اتفاق می افتد، مقدار timeout در صورت غیر صفر بودن کاهش می یابد:
if(timeout) timeout--;
@KnowledgePlus
نقل خاطره ای از دهه 70 و کمبود امکانات و سختی کار در آن زمان:
در اوایل دهه 70 برای نوشتن اولین برنامه میکروکنترلر، یک 8751H تهیه شد که قیمت آن حدود 7 هزار تومان بود که با توجه به قیمت حدود 40 هزار تومانی سکه در آن زمان، قیمت این میکروکنترلر با ارزش پول امروز بیش از 200 هزار تومان بود. حافظه این میکروکنترلر از نوع eprom بود و برای برنامه ریزی آن باید ابتدا حدود 20 دقیقه در معرض تشعشع لامپ های مخصوص قرار می گرفت تا قابلیت برنامه ریزی مجدد پیدا کند. با توجه به امکانات در آن زمان برنامه ریزی میکروکنترلر مستلزم مراجعه به جمهوری و بردن برنامه روی فلاپی دیسک برای مغازه هایی بود که پروگرامر میکروکنترلر را داشتند و هر بار هم که برنامه نوشته شده جواب نمی داد، باز باید این روند رفتن و اصلاح کردن برنامه و مراجعه مجدد به جمهوری و پاک کردن میکروکنترلر و برنامه ریزی انجام می شد. در نهایت برای میکروکنترلر مذکور و برای پروژه ای که جنبه ابتکاری و شخصی داشت، بدون هیچ استاد و راهنما و مرجعی به جز دیتاشیت های Intel که به سختی تهیه شده بود، برنامه ای به زبان اسمبلی نوشته شد و برای اصلاح و به نتیجه رسیدن آن مجموعا 6 بار به جمهوری مراجعه شد تا برنامه به جواب رسید. همین برنامه بعدا توسط شرکتی به محصولی تجاری تبدیل شد و ده ها عدد از آن تولید گردید.
@KnowledgePlus
در اوایل دهه 70 برای نوشتن اولین برنامه میکروکنترلر، یک 8751H تهیه شد که قیمت آن حدود 7 هزار تومان بود که با توجه به قیمت حدود 40 هزار تومانی سکه در آن زمان، قیمت این میکروکنترلر با ارزش پول امروز بیش از 200 هزار تومان بود. حافظه این میکروکنترلر از نوع eprom بود و برای برنامه ریزی آن باید ابتدا حدود 20 دقیقه در معرض تشعشع لامپ های مخصوص قرار می گرفت تا قابلیت برنامه ریزی مجدد پیدا کند. با توجه به امکانات در آن زمان برنامه ریزی میکروکنترلر مستلزم مراجعه به جمهوری و بردن برنامه روی فلاپی دیسک برای مغازه هایی بود که پروگرامر میکروکنترلر را داشتند و هر بار هم که برنامه نوشته شده جواب نمی داد، باز باید این روند رفتن و اصلاح کردن برنامه و مراجعه مجدد به جمهوری و پاک کردن میکروکنترلر و برنامه ریزی انجام می شد. در نهایت برای میکروکنترلر مذکور و برای پروژه ای که جنبه ابتکاری و شخصی داشت، بدون هیچ استاد و راهنما و مرجعی به جز دیتاشیت های Intel که به سختی تهیه شده بود، برنامه ای به زبان اسمبلی نوشته شد و برای اصلاح و به نتیجه رسیدن آن مجموعا 6 بار به جمهوری مراجعه شد تا برنامه به جواب رسید. همین برنامه بعدا توسط شرکتی به محصولی تجاری تبدیل شد و ده ها عدد از آن تولید گردید.
@KnowledgePlus
- فایل PCB نسخه های قدیم و جدید برد آموزشی AVR و XMEGA
- فایل PCB پروگرامر AVRISP-MKII
- فایل PCB درایور استپر موتور 3 آمپر
- فایلهای hex قابل برنامه ریزی روی ATtiny13 برای ایجاد صدای پنج نوع آژیر
https://knowledgeplus.ir/download.aspx
دانلود طرح های برگزیده مسابقات علمی سال های 1393 و 1395 سایت شامل:
- اتصال HMI به XMEGA با ارتباط modbus
- ارسال و نمایش اطلاعات ماژول شتاب سنج بصورت بیسیم با ماژول های CMPS10 و nrf24L01
- آموزش جامع Ethernet
https://knowledgeplus.ir/contest/download
@KnowledgePlus
- فایل PCB پروگرامر AVRISP-MKII
- فایل PCB درایور استپر موتور 3 آمپر
- فایلهای hex قابل برنامه ریزی روی ATtiny13 برای ایجاد صدای پنج نوع آژیر
https://knowledgeplus.ir/download.aspx
دانلود طرح های برگزیده مسابقات علمی سال های 1393 و 1395 سایت شامل:
- اتصال HMI به XMEGA با ارتباط modbus
- ارسال و نمایش اطلاعات ماژول شتاب سنج بصورت بیسیم با ماژول های CMPS10 و nrf24L01
- آموزش جامع Ethernet
https://knowledgeplus.ir/contest/download
@KnowledgePlus
برخی دوستان این سوال را مطرح می کنند که علاوه بر مطالعه و تمرین و انجام آزمایش های عملی، به چه روشی می توانیم دانش و تجربه خود را زیاد کنیم و به اصطلاح راه و چاه کار را یاد بگیریم؟ به عنوان یک پاسخ می توان این توصیه را مطرح کرد که: اگر فرصتش فراهم شد، نزد افراد متخصص و با تجربه شاگردی کنید.
@KnowledgePlus
@KnowledgePlus
مقاله ای درباره عملکرد درایور میکرواستپ:
https://knowledgeplus.ir/userfiles/Microstepping.pdf
@KnowledgePlus
https://knowledgeplus.ir/userfiles/Microstepping.pdf
@KnowledgePlus