پیرو سوال برخی دوستان در مورد باز نشدن فایل های pcb که در سایت قرار داده شده یادآوری می شود که اکثر این فایل ها با فرمت نسخه های پایین protel ذخیره شده اند و در نسخه های بالاتر هم قابل باز شدن هستند و چنانچه اطلاعات فایل نمایش داده نمی شود، مشکل از نرم افزار Altium Designer مورد استفاده است. برای آگاهی از نوع و شماره قطعات مورد استفاده هم باید مشخصات آنها در فایل pcb مشاهده شود.
@KnowledgePlus
@KnowledgePlus
پنل درایور سرو موتور Delta که با چند 7segment و کلید امکان تنظیم کلیه پارامترها وجود دارد. این نمونه ای از یک سخت افزار ارزان است که کدنویسی قوی قابلیت بالایی را برای آن ایجاد می کند.
@KnowledgePlus
@KnowledgePlus
در ارزیابی ابزارهای اندازه گیری و سخت افزارهایی مانند ADC، به تفاوت دو مفهوم Resolution و Accuracy توجه کنید.
@KnowledgePlus
@KnowledgePlus
گاهی مشاهده می شود برخی دوستان کم تجربه در اطلاعیه هایی فهرست متنوعی از موضوعات را به عنوان قابلیت های کاری خود اعلام می کنند (مثلا انجام پروژه های AVR-PIC-ARM-XMEGA-Labview-Matlab و ...). در حالی که از نظر یک کارفرمای با تجربه چنین اعلام آمادگی برای انجام طیف وسیع و گوناگونی از کارها و پروژه ها بیشتر از آنکه نشان دهنده توانایی و قابلیت یک فرد باشد، نشانی از نداشتن حوزه فعالیت تخصصی مشخص و به نوعی بیکاری آن فرد یا مجموعه است.
@KnowledgePlus
@KnowledgePlus
افت کیفیت LCD ها در مرور زمان:
در استفاده از انواع LCD ها و به خصوص انواع گرافیکی آن مشاهده شده که در برخی مدل های متفرقه و نامرغوب کیفیت پیکسل ها به مرور زمان افت می کنند و صفحه LCD کم رنگ می شود. بنابراین توصیه می شود در کاربردهایی که LCD به مدت طولانی قرار است مورد استفاده قرار بگیرد، علیرغم گران تر بودن از LCD های معتبر و با کیفیت استفاده شود.
@KnowledgePlus
در استفاده از انواع LCD ها و به خصوص انواع گرافیکی آن مشاهده شده که در برخی مدل های متفرقه و نامرغوب کیفیت پیکسل ها به مرور زمان افت می کنند و صفحه LCD کم رنگ می شود. بنابراین توصیه می شود در کاربردهایی که LCD به مدت طولانی قرار است مورد استفاده قرار بگیرد، علیرغم گران تر بودن از LCD های معتبر و با کیفیت استفاده شود.
@KnowledgePlus
در استفاده از کتابخانه های آماده باید به مسئله تفاوت های احتمالی ایجاد شده در سرعت انجام عملیات به دلیل نوع کدنویسی توجه کنیم. به عنوان یک مثال ساده، فرکانس شکل موج متناوب تولید شده ناشی از اجرای کد زیر روی یکی از پین های stm32f103 (در این مثال PB10):
while(1) GPIOB->ODR^=GPIO_PIN_10;
تقریبا دو برابر فرکانس تولید شده روی همان پین ناشی از اجرای کد زیر در شرایط مشابه است:
while(1) HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
@KnowledgePlus
while(1) GPIOB->ODR^=GPIO_PIN_10;
تقریبا دو برابر فرکانس تولید شده روی همان پین ناشی از اجرای کد زیر در شرایط مشابه است:
while(1) HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
@KnowledgePlus
نتیجه نهایی مسابقه علمی سال 1395:
در راستای اهداف عالی آموزشی و ایفای نقشی در رشد جامعه علمی کشور و با همکاری شرکت سراج فن آموز @fanamouz سومین دوره مسابقه علمی سایت KnowledgePlus.ir برگزار شد و نفرات زیر به عنوان رتبه های اول و دوم برگزیده شدند.
رتبه اول: آقای محمد حسین کوهی قمصری که به عنوان جایزه مبلغ سه میلیون تومان به ایشان پرداخت شد.
رتبه دوم: آقای سوران آراسته که به عنوان جایزه مبلغ یک و نیم میلیون تومان به ایشان پرداخت شد.
نتیجه کار این عزیزان در آینده برای استفاده در دسترس عموم قرار داده خواهد شد.
@KnowledgePlus
در راستای اهداف عالی آموزشی و ایفای نقشی در رشد جامعه علمی کشور و با همکاری شرکت سراج فن آموز @fanamouz سومین دوره مسابقه علمی سایت KnowledgePlus.ir برگزار شد و نفرات زیر به عنوان رتبه های اول و دوم برگزیده شدند.
رتبه اول: آقای محمد حسین کوهی قمصری که به عنوان جایزه مبلغ سه میلیون تومان به ایشان پرداخت شد.
رتبه دوم: آقای سوران آراسته که به عنوان جایزه مبلغ یک و نیم میلیون تومان به ایشان پرداخت شد.
نتیجه کار این عزیزان در آینده برای استفاده در دسترس عموم قرار داده خواهد شد.
@KnowledgePlus
تبریک سال نو به شیوه کانال KnowledgePlus
8766 ساعت دیگر از عمر ما سپری شد و یک سال دیگر هم گذشت . آرزو می کنیم 8766 ساعت بعدی سرشار از رضایت و شادمانی و موفقیت در انجام فعالیت های مفید برای خود و دیگران باشد.
@KnowledgePlus
8766 ساعت دیگر از عمر ما سپری شد و یک سال دیگر هم گذشت . آرزو می کنیم 8766 ساعت بعدی سرشار از رضایت و شادمانی و موفقیت در انجام فعالیت های مفید برای خود و دیگران باشد.
@KnowledgePlus
عیدی به علاقه مندان و متخصصان رشته الکترونیک:
برای دانلود طرح های برگزیده مسابقه علمی سال 1395 که برندگان و جوایز آن اخیرا اعلام شد، می توانید به لینک زیر مراجعه کنید:
https://knowledgeplus.ir/contest/download
@KnowledgePlus
برای دانلود طرح های برگزیده مسابقه علمی سال 1395 که برندگان و جوایز آن اخیرا اعلام شد، می توانید به لینک زیر مراجعه کنید:
https://knowledgeplus.ir/contest/download
@KnowledgePlus
یادی از ایامی که اینترنت وجود نداشت:
شاید سن و تجربه بسیاری از مخاطبین یاری نکند که زمانی را به یاد بیاورند که چیزی به نام اینترنت وجود نداشت که بتوانیم در آن جستجو کنیم و صدها و هزاران مطلب مرتبط با موضوع مورد سوال خود را در آن پیدا کنیم و دیتاشیت و نرم افزار و کتابخانه و انواع اطلاعات مورد نیاز را از آن دانلود کنیم. زمانی بود که برای راه اندازی یک مدار و سخت افزار ممکن بود تنها چند برگ اطلاعات محدود از یک کتاب در دسترس باشد که آن هم به سختی و گاهی با قیمت گزاف تهیه شده بود. اما این کمبود منابع هر چند محدودیت بسیاری را ایجاد می کرد ولی حداقل این خاصیت را داشت که اتکا و اعتماد به نفس را بسیار تقویت میکرد و کسی که قصد رشد داشت مجبور بود که فکر کردن و تحلیل کردن و به اصطلاح ماهیگیری را یاد بگیرد. این کمبود منابع و اطلاعات و امکانات هر جنبه منفی که داشت اما همچون یک معلم، سخت کوشی و استقامت و زود خسته نشدن را به افراد طالب پیشرفت یاد می داد. قدر امکاناتی را که امروز در دسترس ما هست بدانیم.
@KnowledgePlus
شاید سن و تجربه بسیاری از مخاطبین یاری نکند که زمانی را به یاد بیاورند که چیزی به نام اینترنت وجود نداشت که بتوانیم در آن جستجو کنیم و صدها و هزاران مطلب مرتبط با موضوع مورد سوال خود را در آن پیدا کنیم و دیتاشیت و نرم افزار و کتابخانه و انواع اطلاعات مورد نیاز را از آن دانلود کنیم. زمانی بود که برای راه اندازی یک مدار و سخت افزار ممکن بود تنها چند برگ اطلاعات محدود از یک کتاب در دسترس باشد که آن هم به سختی و گاهی با قیمت گزاف تهیه شده بود. اما این کمبود منابع هر چند محدودیت بسیاری را ایجاد می کرد ولی حداقل این خاصیت را داشت که اتکا و اعتماد به نفس را بسیار تقویت میکرد و کسی که قصد رشد داشت مجبور بود که فکر کردن و تحلیل کردن و به اصطلاح ماهیگیری را یاد بگیرد. این کمبود منابع و اطلاعات و امکانات هر جنبه منفی که داشت اما همچون یک معلم، سخت کوشی و استقامت و زود خسته نشدن را به افراد طالب پیشرفت یاد می داد. قدر امکاناتی را که امروز در دسترس ما هست بدانیم.
@KnowledgePlus
فایل مدار چاپی آخرین نسخه برد آموزشی XMEGA و AVR که یکی از محصولات تجاری سایت است، به عنوان هدیه ای به علاقه مندان رشته الکترونیک برای دانلود در سایت قرار داده شد. برای دسترسی به فایل ها به لینک زیر مراجعه کنید:
https://knowledgeplus.ir/download
لازم به ذکر است که این مدار چاپی از نوع یک رو بوده و با روش های دست ساز هم قابل ساخت است.
@KnowledgePlus
https://knowledgeplus.ir/download
لازم به ذکر است که این مدار چاپی از نوع یک رو بوده و با روش های دست ساز هم قابل ساخت است.
@KnowledgePlus
نکته ای در تعمیرات بردهای صنعتی:
یکی از اولین گام ها برای تعمیر یک برد صنعتی، خوب نگاه کردن به برد و بررسی دقیق اجزای آن بصورت چشمی است. درست نگاه کردن به یک برد و تشخیص مواردی مثل سیاه شدن قطعات یا باد کردن آنها یا قرار نداشتن قطعه ای در محل خود که می تواند ناشی از ترکیدن قطعه باشد، در موارد زیادی می تواند به تعیین علت خرابی آن کمک کند. بو کردن برد به منظور تشخیص بوی سوختگی در قطعات هم یکی دیگر از روش های اولیه برای بررسی وجود خرابی در یک برد است.
@KnowledgePlus
یکی از اولین گام ها برای تعمیر یک برد صنعتی، خوب نگاه کردن به برد و بررسی دقیق اجزای آن بصورت چشمی است. درست نگاه کردن به یک برد و تشخیص مواردی مثل سیاه شدن قطعات یا باد کردن آنها یا قرار نداشتن قطعه ای در محل خود که می تواند ناشی از ترکیدن قطعه باشد، در موارد زیادی می تواند به تعیین علت خرابی آن کمک کند. بو کردن برد به منظور تشخیص بوی سوختگی در قطعات هم یکی دیگر از روش های اولیه برای بررسی وجود خرابی در یک برد است.
@KnowledgePlus
نکته ای در کدنویسی:
در نامگذاری متغیرها و توابع و غیره استفاده از نام های کوتاهی که فاقد معنی مشخصی هستند (مثل a یا s یا tt و مانند آن) خوانایی کد را پایین می آورد و درک نحوه عملکرد کد را مشکل تر می کند. بنابراین بهتر است برای نامگذاری از اسامی معنی دار و متناسب با عملکرد استفاده شود. رعایت این مسئله معمولا تاثیر قابل توجهی در فهم محتوای کد در مراجعات بعدی خواهد داشت.
@KnowledgePlus
در نامگذاری متغیرها و توابع و غیره استفاده از نام های کوتاهی که فاقد معنی مشخصی هستند (مثل a یا s یا tt و مانند آن) خوانایی کد را پایین می آورد و درک نحوه عملکرد کد را مشکل تر می کند. بنابراین بهتر است برای نامگذاری از اسامی معنی دار و متناسب با عملکرد استفاده شود. رعایت این مسئله معمولا تاثیر قابل توجهی در فهم محتوای کد در مراجعات بعدی خواهد داشت.
@KnowledgePlus
اگر یک طراح در الکترونیک و نرم افزار هستید به این نکته مهم توجه کنید:
در طراحی سیستم های الکترونیک و به خصوص در کاربردهای صنعتی، موارد متعددی وجود دارد که یک طراح باید ساز و کار سیستم و امکانات در دسترس کاربر و عملکردها را خود طراحی کند و برای کاربر تنها نتیجه نهایی که همانا عملکرد درست دستگاه و نرم افزار و ... است، مهم است. مثلا از یک طراح درخواست می شود که دستگاهی طراحی کند یا نرم افزاری را بنویسد که عملیات x را انجام دهد و فرد یا مجموعه درخواست کننده ذهنیتی راجع به جزییاتی که طراح قرار است در دستگاه پیش بینی کند، ندارند. با توجه به اینکه ممکن است از نظر یک طراح امکانی بسیار مفید باشد اما از نظر کاربر واقعی، آن امکان در عمل کاربردی نداشته باشد یا حتی مزاحم کار باشد، یک طراح باید بجای تکیه صرف بر ذهنیات شخصی خود این قابلیت را داشته باشد که خود را بجای کاربر نهایی فرض کند و از آن موضع بررسی کند که چه امکانات و نحوه عملکردی برای این دستگاه مفیدتر و کاربردی تر است و برای احراز این مسئله تا حد مقدور با کاربران و اپراتورهایی که قرار است با آن دستگاه یا نرم افزار کار کنند، تعامل برقرار کند. در سال های گذشته با استفاده از همین روش فرض کردن خود بجای کاربر نهایی و برقراری تعامل با آنها در هنگام طراحی امکانات سخت افزاری و نرم افزاری، نتایج بسیار خوبی حاصل شده و در نهایت منجر به عملکردهایی شده که بسیار فراتر از انتظارات اولیه بوده و حتی خود سفارش دهندگان اولیه هم از ابتدا به ذهنشان نمی رسیده که چنین امکاناتی می توانسته در این دستگاه یا نرم افزار وجود داشته باشد.
@KnowledgePlus
در طراحی سیستم های الکترونیک و به خصوص در کاربردهای صنعتی، موارد متعددی وجود دارد که یک طراح باید ساز و کار سیستم و امکانات در دسترس کاربر و عملکردها را خود طراحی کند و برای کاربر تنها نتیجه نهایی که همانا عملکرد درست دستگاه و نرم افزار و ... است، مهم است. مثلا از یک طراح درخواست می شود که دستگاهی طراحی کند یا نرم افزاری را بنویسد که عملیات x را انجام دهد و فرد یا مجموعه درخواست کننده ذهنیتی راجع به جزییاتی که طراح قرار است در دستگاه پیش بینی کند، ندارند. با توجه به اینکه ممکن است از نظر یک طراح امکانی بسیار مفید باشد اما از نظر کاربر واقعی، آن امکان در عمل کاربردی نداشته باشد یا حتی مزاحم کار باشد، یک طراح باید بجای تکیه صرف بر ذهنیات شخصی خود این قابلیت را داشته باشد که خود را بجای کاربر نهایی فرض کند و از آن موضع بررسی کند که چه امکانات و نحوه عملکردی برای این دستگاه مفیدتر و کاربردی تر است و برای احراز این مسئله تا حد مقدور با کاربران و اپراتورهایی که قرار است با آن دستگاه یا نرم افزار کار کنند، تعامل برقرار کند. در سال های گذشته با استفاده از همین روش فرض کردن خود بجای کاربر نهایی و برقراری تعامل با آنها در هنگام طراحی امکانات سخت افزاری و نرم افزاری، نتایج بسیار خوبی حاصل شده و در نهایت منجر به عملکردهایی شده که بسیار فراتر از انتظارات اولیه بوده و حتی خود سفارش دهندگان اولیه هم از ابتدا به ذهنشان نمی رسیده که چنین امکاناتی می توانسته در این دستگاه یا نرم افزار وجود داشته باشد.
@KnowledgePlus
مشترک بودن فرمان های Run و Stop در کنترلرهای صنعتی و تبعات احتمالی آن:
فرض کنیم در یک دستگاه صنعتی با شروع به کار دستگاه مثلا یک جک حرکت می کند یا موتوری شروع به چرخش می کند یا گیوتینی عمل می کند و موارد مشابهی که اگر اشتباهی در راه اندازی دستگاه بوجود بیاید می تواند منجر به وارد شدن خسارت یا آسیب به کاربران دستگاه شود. برای کنترل چنین دستگاه هایی استفاده از روش Toggle کردن یک کلید یا ناحیه ای در صفحه تاچ به این ترتیب که یک بار به عنوان فرمان Run (یا Start) و بار دوم به عنوان فرمان Stop عمل کند، به هیچ عنوان مناسب نیست. زیرا ممکن است به دلیل عواملی مانند سر و صدا یا دید نداشتن اپراتور نسبت به وضعیت عملکرد فعلی دستگاه یا خستگی و مانند آن، اپراتور با این تصور که دستگاه از قبل در حال کار است، کلید مشترک Run/Stop را فشار دهد تا دستگاه را متوقف کند. اما بصورت سهوی باعث راه اندازی ناخواسته دستگاه و ایجاد آسیب و خسارت شود. اما وقتی فرمان های Run و Stop مجزا از یکدیگر باشند، اپراتور برای شروع و توقف دستگاه دو محل مختلف را لمس خواهد کرد و چنین خطایی رخ نخواهد داد. بنابراین اکیدا توصیه می شود در طراحی چنین سیستم هایی برای عملکردهای Run و Stop دو کلید مجزا در نظر گرفته شود.
@KnowledgePlus
فرض کنیم در یک دستگاه صنعتی با شروع به کار دستگاه مثلا یک جک حرکت می کند یا موتوری شروع به چرخش می کند یا گیوتینی عمل می کند و موارد مشابهی که اگر اشتباهی در راه اندازی دستگاه بوجود بیاید می تواند منجر به وارد شدن خسارت یا آسیب به کاربران دستگاه شود. برای کنترل چنین دستگاه هایی استفاده از روش Toggle کردن یک کلید یا ناحیه ای در صفحه تاچ به این ترتیب که یک بار به عنوان فرمان Run (یا Start) و بار دوم به عنوان فرمان Stop عمل کند، به هیچ عنوان مناسب نیست. زیرا ممکن است به دلیل عواملی مانند سر و صدا یا دید نداشتن اپراتور نسبت به وضعیت عملکرد فعلی دستگاه یا خستگی و مانند آن، اپراتور با این تصور که دستگاه از قبل در حال کار است، کلید مشترک Run/Stop را فشار دهد تا دستگاه را متوقف کند. اما بصورت سهوی باعث راه اندازی ناخواسته دستگاه و ایجاد آسیب و خسارت شود. اما وقتی فرمان های Run و Stop مجزا از یکدیگر باشند، اپراتور برای شروع و توقف دستگاه دو محل مختلف را لمس خواهد کرد و چنین خطایی رخ نخواهد داد. بنابراین اکیدا توصیه می شود در طراحی چنین سیستم هایی برای عملکردهای Run و Stop دو کلید مجزا در نظر گرفته شود.
@KnowledgePlus
با راه اندازی یک میکروکنترلر در چه مرحله ای از توانایی قرار داریم؟
فرض کنیم که یک خانواده از میکروکنترلرها را انتخاب کرده و با استفاده از رجیسترها و یا کتابخانه های آماده، سخت افزارهای مختلف آن مانند پورت و تایمر و ADC و USART و ... را راه اندازی کنیم. آیا رسیدن به چنین مرحله ای لزوما به معنای توانایی در نوشتن برنامه های پیچیده برای استفاده از قابلیت های آن میکروکنترلر است؟ پاسخ به این سوال منفی است. همانطور که آشنایی و توانایی در به دست گرفتن قلم و خط کشیدن روی کاغذ به معنای نقاش و طراح و خطاط شدن نیست و باید آن قلم را سالها روی کاغذ چرخاند و به حرکت در آورد تا مهارت و توانایی لازم کسب شود، راه اندازی سخت افزار هم تنها بخش کوچکی از مسیری است که برای طراح و برنامه نویسی حرفه ای شدن باید طی شود. همانطور که قبلا هم چند بار تاکید شده در این رابطه اصلی ترین عامل، تمرین و ممارست و نوشتن هزاران خط برنامه اصولی و پیاده سازی فلوچارت ها و الگوریتم ها و پروتکل های مختلف است که زمان بسیار بسیار بیشتری را در مقایسه با مرحله راه اندازی سخت افزار می طلبد. بنابراین دوستانی که عزم خود را برای طی این مسیر جزم کرده اند و از تجربه کافی هم برخوردار نیستند، به این نکته توجه داشته باشند که راه اندازی سخت افزار تازه ابتدای راه است و پیاده سازی کاربردها بر اساس این سخت افزار مرحله اصلی تری است که باید وقت اساسی را برای آن صرف کنند.
@KnowledgePlus
فرض کنیم که یک خانواده از میکروکنترلرها را انتخاب کرده و با استفاده از رجیسترها و یا کتابخانه های آماده، سخت افزارهای مختلف آن مانند پورت و تایمر و ADC و USART و ... را راه اندازی کنیم. آیا رسیدن به چنین مرحله ای لزوما به معنای توانایی در نوشتن برنامه های پیچیده برای استفاده از قابلیت های آن میکروکنترلر است؟ پاسخ به این سوال منفی است. همانطور که آشنایی و توانایی در به دست گرفتن قلم و خط کشیدن روی کاغذ به معنای نقاش و طراح و خطاط شدن نیست و باید آن قلم را سالها روی کاغذ چرخاند و به حرکت در آورد تا مهارت و توانایی لازم کسب شود، راه اندازی سخت افزار هم تنها بخش کوچکی از مسیری است که برای طراح و برنامه نویسی حرفه ای شدن باید طی شود. همانطور که قبلا هم چند بار تاکید شده در این رابطه اصلی ترین عامل، تمرین و ممارست و نوشتن هزاران خط برنامه اصولی و پیاده سازی فلوچارت ها و الگوریتم ها و پروتکل های مختلف است که زمان بسیار بسیار بیشتری را در مقایسه با مرحله راه اندازی سخت افزار می طلبد. بنابراین دوستانی که عزم خود را برای طی این مسیر جزم کرده اند و از تجربه کافی هم برخوردار نیستند، به این نکته توجه داشته باشند که راه اندازی سخت افزار تازه ابتدای راه است و پیاده سازی کاربردها بر اساس این سخت افزار مرحله اصلی تری است که باید وقت اساسی را برای آن صرف کنند.
@KnowledgePlus
نکته ای در تعمیرات منابع تغذیه سوییچینگ:
در منابع تغذیه سوییچینگ صنعتی بارها مشاهده شده که به دلیل اتمام عمر و خرابی خازن های الکترولیتی که در معرض پالس های جریان هستند، ولتاژ خروجی دچار افت شده و با تعویض خازن های مذکور ولتاژ خروجی منبع به وضعیت عادی بازگشته است.
@KnowledgePlus
در منابع تغذیه سوییچینگ صنعتی بارها مشاهده شده که به دلیل اتمام عمر و خرابی خازن های الکترولیتی که در معرض پالس های جریان هستند، ولتاژ خروجی دچار افت شده و با تعویض خازن های مذکور ولتاژ خروجی منبع به وضعیت عادی بازگشته است.
@KnowledgePlus
اتصال Quadrature encoder به XMEGA محدود به پین های خاصی نیست و می توانیم از پین های متوالی هر یک از پورت های A تا F برای این منظور استفاده کنیم. این میکروکنترلر از اتصال 3 عدد Quadrature encoder بصورت سخت افزاری پشتیبانی می کند.
@KnowledgePlus
@KnowledgePlus
نکاتی از زبان برنامه نویسی C:
برای نام گذاری متغیرها و توابع و ماکروها و ... یک سری قواعد نام گذاری شناخته شده وجود دارد که برنامه نویسان حرفه ای آنها را رعایت می کنند. برای آگاهی از جزییات این قواعد نام گذاری، در مورد Naming conventions در C مطالعه کنید.
@KnowledgePlus
برای نام گذاری متغیرها و توابع و ماکروها و ... یک سری قواعد نام گذاری شناخته شده وجود دارد که برنامه نویسان حرفه ای آنها را رعایت می کنند. برای آگاهی از جزییات این قواعد نام گذاری، در مورد Naming conventions در C مطالعه کنید.
@KnowledgePlus