KnowledgePlus.ir
5.48K subscribers
47 photos
11 videos
16 files
176 links
کانال مهندس اوژن کی نژاد
کلیه مطالب این کانال به جز مواردی که صریحا در متن آن ذکر شده باشد جنبه تالیفی دارد و از جایی کپی نشده است.
کانال اشتغال:
@KnowledgePlusir
@StepMotor
@MC3Delta
@FindChips
instagram.com/knowledgeplus.ir
aparat.com/KnowledgePlus
Download Telegram
چه کسانی از فعالیت در رشته الکترونیک خسته و پشیمان نمی شوند؟

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

@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
نقل خاطره ای از دهه 70 و کمبود امکانات و سختی کار در آن زمان:

در اوایل دهه 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
برخی دوستان این سوال را مطرح می کنند که علاوه بر مطالعه و تمرین و انجام آزمایش های عملی، به چه روشی می توانیم دانش و تجربه خود را زیاد کنیم و به اصطلاح راه و چاه کار را یاد بگیریم؟ به عنوان یک پاسخ می توان این توصیه را مطرح کرد که: اگر فرصتش فراهم شد، نزد افراد متخصص و با تجربه شاگردی کنید.

@KnowledgePlus
مقاله ای درباره عملکرد درایور میکرواستپ:

https://knowledgeplus.ir/userfiles/Microstepping.pdf

@KnowledgePlus
یک مشاهده عملی از قطعات تقلبی موجود در بازار:

در یک سری از پل دیودهای 35 آمپری موجود در بازار با برداشتن رزین داخل بدنه فلزی مشاهده شد که 4 عدد دیود 1 آمپری به شکل پل به هم لحیم شده و به پین های خروجی متصل شده اند و روی دیودها رزین ریخته اند. بنابراین زمانی که قطعه با مولتی متر تست می شد سالم به نظر می رسید. اما قابلیت جریان دهی آن بجای 35 آمپر فقط 1 آمپر بود.

@KnowledgePlus
مثال برنامه نویسی C:

با فرض علامت دار بودن متغیر data، بعد از اجرای خط زیر مقدار قدر مطلق data در آن قرار می گیرد.

data=data>=0?data:-data;

@KnowledgePlus
تصویر مجله الکترونیک مربوط به سال 1360 با قیمت 80 ریال

@KnowledgePlus
درود بر افراد با فرهنگ و با اخلاقی که به حقوق مولف و اصل مالکیت معنوی احترام می گذارند و از کپی کردن مطالب دیگران بدون ذکر مرجع خودداری می کنند.

@KnowledgePlus
در یک کدنویسی اصولی، تمام شرایط ممکن و محتمل برای یک سیستم از جمله مواردی مانند فشار دادن اشتباه کلیدها توسط اپراتور، رفتن برق بین انجام عملیات، قطع ناگهانی ارتباط با ماژول ها و دستگاه های جانبی یا ایجاد شرایط خطا در آنها و کلیه موارد مشابه باید در تدوین فلوچارت برنامه و در هنگام پیاده سازی آن در نظر گرفته شود. یکی از اشکالات برنامه هایی که توسط افراد مبتدی نوشته می شود، در نظر نگرفتن همین "اگر" ها در منطق برنامه است که در شرایط خاص می تواند منجر به هنگ کردن یا عملکرد ناخواسته خروجی برنامه شود.

@KnowledgePlus
یک نکته تلگرامی:

هر چند این مطلب بصورت مستقیم مرتبط با الکترونیک نیست. اما در راستای راهنمایی به کسانی که قصد دارند برای تبلیغ محصول یا خدمات مرتبط با الکترونیک در یک کانال تلگرام به دلیل تعداد اعضای آن هزینه ای را صرف کنند، پیشنهاد می شود ابتدا به آمار بازدید پست هایی از آن کانال که چندین روز از انتشار آنها گذشته و در جای دیگری به اشتراک گذاشته نشده مراجعه کنند و نسبت آمار بازدید پست ها با تعداد اعضای کانال را مقایسه کنند و چنانچه تفاوت قابل توجهی بین این دو عدد وجود داشت نشان دهنده fake بودن اعضای کانال است. در این شرایط ممکن است صرف هزینه برای معرفی محصول یا خدمات در چنین کانالی به نتیجه مورد انتظار منجر نشود.

@KnowledgePlus
درباره برنامه نویسی حرفه ای و شباهت عملکرد مغز به عضلات:

شاید برای کسانی که در مقاطعی درگیر برنامه نویسی و نوشتن کدهای پیچیده و پرحجم شده اند، این تعبیر ملموس باشد که عملکرد مغز تا حدی شبیه به عملکرد عضلات بدن است. همانطور که آمادگی عضلات با تمرینات جسمی افزایش می یابد و سکون و بی حرکتی موجب ضعیف شدن آنها می شود، به طریق مشابه مغز نیز مانند یک عضله نیاز به تمرین دارد و این قابلیت که کسی بتواند مثلا 12 ساعت بصورت مداوم در یک روز کدهای پیچیده را بنویسد و تحلیل کند، نیاز به تمرین و ممارست زیاد برای تقویت قابلیت کار کشیدن از مغز در مدت طولانی دارد و تنها وابسته به خواست فرد یا حتی سواد و دانش او به تنهایی نیست. یک ورزشکار حرفه ای به دلیل آمادگی که به واسطه تمرین پیدا کرده قادر است ساعت ها در یک روز ورزش و فعالیت کند و خسته نشود. اما یک شخص کم تحرک در فعالیت های مشابه زود خسته می شود و عضلاتش قدرت و استقامت عضلات یک فرد ورزشکار را ندارند. به همین ترتیب کسی که در کدنویسی تمرین نداشته باشد، در هنگام کار بعد از مدت کوتاهی خسته می شود و نمی تواند متمرکز باقی بماند. عبارت معروف "حوصله ندارم" در بسیاری از موارد حاصل همین تنبل شدن ذهن و عادت نداشتن به تمرکز و انجام پردازش های ذهنی پیچیده است.

@KnowledgePlus
نکاتی از زبان برنامه نویسی C:

در اعمال علامت منفی به متغیرهایی از نوع بدون علامت و نسبت دادن حاصل به متغیری با طول بزرگتر باید شکل صحیح کدنویسی رعایت شود تا نتیجه عملیات اشتباه نباشد. به عنوان توضیح بیشتر کد زیر را در نظر می گیریم که هدف از نوشتن آن قرار دادن مقدار منفی x در z است:

unsigned short x=1;
long z;
z=-x;

در رابطه اخیر بعد از اعمال علامت منفی، مقدار 65535 در z قرار خواهد گرفت که دلیل آن 16 بیتی بودن و بدون علامت بودن x است. حاصل اعمال علامت منفی به متغیر 16 بیتی بدون علامت x برابر 65535 است و برای قرار گرفتن در مقدار 32 بیتی، دو بایت با مقدار صفر هم به 16 بیت اضافه می شود تا در متغیر 32 بیتی قرار بگیرد. پس با این روش نتیجه مورد انتظار به دست نمی آید. برای تصحیح نتیجه باید رابطه به این شکل نوشته شود:

z=-(long)x;

که در اینصورت حاصل در متغیر 32 بیتی z برابر با منفی یک (معادل با 4294967295) خواهد شد که همان عدد مورد انتظار است. صحت این موارد در شبیه ساز C-spy کامپایلر IAR هم تست شده است. (اگر در فهم این اعداد دچار ابهام هستید به مبحث اعداد علامت دار در مبنای دو مراجعه کنید).

@KnowledgePlus
تقریبا اکثر پروژه های جدی و مهم در عرصه دیجیتال و برنامه نویسی به واسطه مواردی مثل نویز، تغذیه، خطوط فرکانس بالا، ورودی و خروجی های آنالوگ و سایر موارد مشابه به نحوی به طراحی آنالوگ مربوط است. در این شرایط یا باید همه سخت افزارها را بصورت آماده تهیه کنیم و فقط فاز برنامه نویسی را به عهده بگیریم و یا اگر قصد طراحی سخت افزار را داریم، باید اطلاعات کافی از مباحث آنالوگ داشته باشیم.

@KnowledgePlus
نقل قولی از آقای مهندس مهدی سلگی (رتبه اول مسابقه علمی سال 1393 سایت):

در مدار داخلی plc های زیمنس، بین زمین مدار و earth دستگاه چهار مقاومت سری شده 270 کیلو اهمی و یک خازن با مقدار احتمالا 100nF بصورت موازی با مجموع مقاومت ها قرار داده شده است.

@KnowledgePlus
نکته طراحی مدار:

در نقشه های منتشر شده از طرف شرکت IBM برای جزییات سخت افزار کامپیوترهای AT این شرکت، مقاومت هایی با مقدار 27 اهم با پین های پورت LPT سری شده است که این تکنیک روش خوبی برای جلوگیری از سوختن پورت ها در هنگام اتصال یا قطع کانکتور به دلیل جریان کشی ناشی از حالات گذرای اتصال پین های پورت و یا شرایط اتصال کوتاه لحظه ای پین است. در سایر سخت افزارهایی هم که بحث قطع و وصل کانکتور در هنگام روشن بودن مدار یا اتصال کوتاه لحظه ای آنها مطرح است، استفاده از مقاومت های سری با مقدار کوچک می تواند مانع سوختن پین ها شود.

@KnowledgePlus
چگونه می توانیم برای کامپایلرهای مختلف یک کد مشترک بنویسیم:

قابلیت Conditional Compilation این امکان را فراهم می کند که با کامپایل کردن مشروط بخش هایی از کد که وابسته به یک کامپایلر خاص هستند، برای کامپایلرهای مختلف بتوانیم یک سورس مشترک را بنویسیم. به عنوان یک مثال در کد زیر بسته به اینکه کامپایلر IAR یا Codevision یا AVR-GCC باشد، include های متناسب در هنگام کامپایل انجام می شود:

#if defined( __ICCAVR__ )
#include <ioavr.h>
#elif defined (__CODEVISIONAVR__)
#include <io.h>
#elif defined( __GNUC__ )
#include <avr/io.h>
#else
#error Compiler not supported
#endif

@KnowledgePlus
این پست هم اینک از یک محیط صنعتی ارسال میشود که علیرغم اینکه روز جمعه است، به دلیل فشردگی و کثرت کارها مهندسین و کارگران و تکنیسین ها در آن مشغول به فعالیت هستند. در اینجا می توان مشاهده کرد که بین آنچه در عالم واقعیت در جریان است با ذهنیت های برخی افرادی که حتی یک ساعت هم تجربه حضور در چنین محیط هایی را نداشته اند، به چه میزان فاصله وجود دارد. در اینجا نه اهمیتی دارد که با چه خانواده ای از چه سخت افزاری یا کدام نسخه از چه نرم افزاری کار شده یا اینکه محتوای کار چقدر جدید است یا قدیمی است یا با کلاس است یا از مد افتاده یا از یک پردازنده 64 بیتی با N گیگ کلاک استفاده شده یا حتی یک تکه سیم. آنچه را که در این محیط صنعتی طلب می کنند فقط و فقط یک چیز است: اینکه خروجی سخت افزار و نرم افزار به نحو احسن جواب بدهد و مطابق نیاز آنها عمل کند. این همان اصطلاح شخصی تحت عنوان "قانون اصالت جواب" در الکترونیک است که قبلا یک بار به آن اشاره شد. در اینجا سخت افزار و نرم افزاری که جواب می دهد دارای ارزش و اصالت است و به آن نیاز دارند و اگر جواب ندهد و درست کار نکند، هر وجه مشخصه دیگری هم که داشته باشد، در این ساز و کار صنعتی به اندازه براده های فلزی که روی زمین ریخته شده هم ارزش ندارد.

@KnowledgePlus
مطلب توضیح داده شده در این پست:

https://t.iss.one/KnowledgePlus/543

در کد ویژن هم تست شد و همان شرایط بر قرار بود و مقدار 65535 در صورت عدم type casting در z قرار می گرفت.

@KnowledgePlus