KnowledgePlus.ir
5.44K subscribers
45 photos
9 videos
15 files
176 links
کانال مهندس اوژن کی نژاد
کلیه مطالب این کانال به جز مواردی که صریحا در متن آن ذکر شده باشد جنبه تالیفی دارد و از جایی کپی نشده است.
کانال اشتغال:
@KnowledgePlusir
سایر کانال های وابسته:
@StepMotor
@MC3Delta
@FindChips
instagram.com/knowledgeplus.ir
Download Telegram
تجربه استفاده از تاچ های مقاومتی نصب شده روی LCD های 240x128 به تعداد زیاد نشان می دهد که بعد از چند سال استفاده مداوم از این تاچ ها در محیط صنعتی، میزان خرابی آنها بسیار کم بوده و هنوز مشغول کار هستند.

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

در صورتی که تعداد متغیرهای Global در برنامه زیاد باشد، برای جلوگیری از شلوغ شدن کد می توانیم تمام این متغیرها را در یک فایل جداگانه قرار دهیم و این فایل را در ابتدای فایل اصلی include کنیم. نکته حائز اهمیت در این روش این است که فایل حاوی متغیرها نباید به پروژه add شود. در این شرایط لازم نیست که متغیرها در فایل اصلی بصورت extern تعریف شوند و تنها با include کردن فایلی که متغیرها در آن تعریف شده اند، این متغیرها در فایل اصلی قابل شناسایی هستند.

@KnowledgePlus
نقل یک خاطره عبرت آموز:

در سال های دور در دهه 70 و در زمانی که هنوز استفاده از میکروکنترلرها مطرح نبود، پروژه ای انجام شد که قرار بود توسط یک منبع جریان، سه جریان با مقادیر 80 و 180 و 1180 میلی آمپر به باری تزریق شود و مقدار جریان هم روی تعدادی 7segment نمایش داده شود. این مدار با روش های آنالوگ طراحی و تست شد و برای نمایش جریان هم بعد از تبدیل آن از طریق مدارات مناسب به ولتاژ، از یک آی سی ولت متر به نام ICL7107 استفاده شد. بعد از تحویل این مدار مجموعه سفارش دهنده پروژه اعلام کردند که جریان نمایش داده شده قابل قبول نیست و دارای کمی تغییرات است. در حالی که یک گروه رقیب همین پروژه را انجام داده اند، اما تغییری در جریان خروجی روی صفحه نمایش وجود ندارد و جریان ها کاملا تثبیت شده هستند. بنابراین پروژه مجددا باز پس گرفته شد و این بار هر تکنیک مداری و به اصطلاح فوت و فن کوزه گری که برای تثبیت جریان به ذهن می رسید اعمال شد تا جریان در هر سه مرحله تا حد ممکن ثابت باشد و تغییری نکند. بعد از اعمال تمهیدات مورد نظر در مدارات آنالوگ، تغییرات جریان نمایش داده شده تقریبا به صفر رسید و فقط گاهی ممکن بود یک واحد تغییر کند که با توجه به شرایط مدار و تغییرات دما و مانند آن چنین تغییراتی قابل قبول بود. اما بعد از تحویل دوباره پروژه باز اعلام شد که هر چند تغییرات بسیار بسیار کم شده است. اما در پروژه تحویل داده شده توسط مجموعه رقیب، همین تغییرات بسیار کم در حد یک در هزار هم وجود ندارد و کاملا ثابت است و اگر می خواهید پروژه شما پذیرفته شود باید به عملکردی شبیه پروژه رقیب برسید. در این مرحله این سوال ایجاد شد که آخر چطور ممکن است هیچ تغییری در جریان وجود نداشته باشد و کاملا ثابت باشد و رقبا چه تکنیکی را از نظر طراحی مدار بکار برده اند که به چنین کیفیتی رسیده اند؟ ضمن اینکه در این پروژه نه چنین دقتی مهم بود و نه امکان سنجش آن با توجه به امکانات مجموعه سفارش دهنده پروژه برای آنها وجود داشت. سپس این امکان مطرح شد که نکند در پروژه رقبا بجای آنکه واقعا جریان اندازه گیری و نمایش داده شود، با دو 7segment عدد 80 را بصورت دائمی نشان می دهند و با تغییر سلکتور دستگاه، سگمنت های متناظر با دو عدد 1 را در دو 7segment دیگر برای نمایش 180 و 1180 روشن می کنند. با بررسی بیشتر تقریبا یقین حاصل شد که در مدار رقیب از همین روش استفاده شده و بحث اندازه گیری واقعی جریان مطرح نیست و ملاک مجموعه سفارش دهنده هم بجای توجه به عملکرد واقعی مدار، اعداد نمایش داده شده روی 7segment ها است. بنابراین به دلیل وجود اطمینان از صحت جریان های تولید شده مطابق تست های قبلی، بخش ولت متر و اندازه گیری جریان از مدار حذف شد و از همان روش روشن کردن سگمنت ها بجای نمایش جریان واقعی استفاده شد و پروژه مجددا تحویل داده شد. با شرایط جدید مجموعه سفارش دهنده پروژه اعلام کردند که این همان کیفیت عملکردی است که مد نظر آنها بوده و پروژه را تائید کردند. و در این جریانات تجربه و عبرت هایی نهفته بود.

@KnowledgePlus
یک تمرین کاربردی برنامه نویسی میکروکنترلر:

با اتصال یک صفحه کلید ps2 و یک LCD کاراکتری به میکروکنترلر، برنامه ای برای ذخیره کردن پسوردهای مورد استفاده خود جهت دسترسی به شبکه های اجتماعی و سایت ها و مانند آن را بنویسید. روال کار می تواند به این صورت باشد که در ابتدا از طریق صفحه کلید یک پسورد اصلی دریافت شود و در صورت صحیح بودن آن، قابلیت مشاهده و تصحیح و ذخیره سازی تعدادی پسورد به همراه نام سایت های مربوطه روی LCD وجود داشته باشد.

@KnowledgePlus
نکته ای در مورد مد CTC در تایمر کانترهای AVR:

با توجه به immediate و فوری بودن تغییر مقدار رجیستر مقایسه در مد CTC که نقش TOP را به عهده دارد، تغییر این رجیستر می تواند منجر به ایجاد خطای ناخواسته در یک سیکل تایمر شود. برای درک بهتر، فرض کنید تایمر شماره 1 در مد CTC قرار داشته باشد و مقدار فعلی تایمر برابر 101 و OCR1A برابر 200 باشد. در این وضعیت اگر مقدار 100 در OCR1A نوشته شود، به دلیل تاثیر فوری این تغییر مقدار و بزرگتر بودن مقدار تایمر کانتر از مقدار جدید رجیستر OCR1A، تایمر به شمارش خود از 101 تا 65535 ادامه می دهد و بعد مجددا صفر می شود تا در سیکل بعدی مقدار 100 به عنوان حداکثر مقدار تایمر کانتر اثر گذار باشد. با چنین فرضی تعداد کلاک لازم برای صفر شدن تایمر بسیار بیشتر از مقدار مورد انتظار خواهد بود که باعث ایجاد خطا می شود. برای بر طرف کردن این مسئله اگر در تایمری از میکروکنترلر مورد استفاده مد fast pwm با مقدار TOP قابل تنظیم وجود داشته باشد، برای اجتناب از مشکل فوق بجای مد CTC می توان از این نوع fast pwm استفاده کرد. زیرا در مد fast pwm مقدار دهی به TOP با مکانیزم double buffering انجام می شود و بصورت immediate نیست و در نتیجه تغییر مقدار TOP تا ابتدای سیکل بعد به تاخیر خواهد افتاد و مشکل مذکور بوجود نخواهد آمد. به عنوان مثال مدهای 14 و 15 در تایمر کانترهای 1 و 3 در mega64 دارای TOP متغیر هستند و می توانند به این منظور مورد استفاده قرار بگیرند.

@KnowledgePlus
نظر سنجی: به نظر شما در یک میکروکنترلر، کدامیک از سخت افزارهای زیر در عمل پر کاربردتر و مهم تر هستند؟

Timers (pwm) – 384
👍👍👍👍👍👍👍 57%

USART – 163
👍👍👍 24%

ADC – 63
👍 9%

SPI – 19
▫️ 3%

USB – 14
▫️ 2%

I2C – 11
▫️ 2%

Ethernet – 9
▫️ 1%

DAC – 8
▫️ 1%

CAN – 8
▫️ 1%

👥 679 people voted so far. Poll closed.
مشاهداتی از نصب تعداد زیادی avr در تولیدات صنعتی برای مدت زمانی بیش از ده سال:

1- مواردی از سوختن میکروکنترلر دیده شده است.
2- با نمونه هایی برخورد شده که میکروکنترلر سالم بوده، اما پین های خاصی از آن آسیب دیده بودند.
3- حتی یک مورد پاک شدن eeprom داخلی مشاهده نشده است.
4- با رعایت ملاحظات طراحی و تغذیه، بحث هنگ کردن موضوعیتی نداشته است.

@KnowledgePlus
بشناسیم:

پروفسور لطفعلی عسکر زاده مشهور به لطفی زاده.

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

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

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

@KnowledgePlus
یکی از کاربردهای کمتر شناخته شده در الکترونیک که به نتیجه رسیدن و فراگیر شدن آن به دلیل مشکل کمبود آب می تواند تاثیر مثبتی در مقیاس ملی داشته باشد پیاده سازی اتوماسیون آبیاری است.

@KnowledgePlus
نکته ای در مورد eeprom های سریال سری at24cxx:

با توجه به اینکه زمان ذخیره سازی اطلاعات بصورت داخلی در این حافظه ها در حدود چند میلی ثانیه است، برای بالا بردن سرعت نوشتن در حافظه و در صورتی که نیاز به نوشتن بیش از یک بایت وجود داشته باشد، بجای ذخیره سازی اطلاعات بصورت بایت به بایت می توانیم مجموعه ای از بایت ها را بصورت یک page ذخیره کنیم. سایز page در شماره های مختلف این خانواده متفاوت است و مثلا برای at24c01 برابر 8 بایت و برای at24c1024 برابر 256 بایت است.

@KnowledgePlus
پر کردن هارد کامپیوتر از نرم افزار و فیلم آموزشی و فایل pdf از کسی طراح و برنامه نویس نمی سازد. رسیدن به مرتبه طراحی و برنامه نویسی از آنجا شروع می شود که بسته به نیاز بالاخره از یک جا شروع کنیم و سعی کنیم تا انتهای آن برویم.

@KnowledgePlus
برای راه اندازی Buzzer های اسیلاتور دار موجود در بازار و اتصال آنها به میکروکنترلرها باید توجه کنیم که این قطعات دارای ولتاژهای راه اندازی مختلفی مانند 3v و 5v و 12v هستند که در هنگام خریداری باید به این ولتاژ دقت شود. مورد دیگر اینکه مطابق با آزمایش های عملی انجام شده برخی از انواع ولتاژ پایین Buzzer های موجود در بازار را به دلیل جریان کشی بالایی که دارند بصورت مستقیم نمی توان به پین میکروکنترلر متصل کرد و این اتصال باید با واسطه یک سوییچ ترانزیستوری و مانند آن انجام شود.

@KnowledgePlus
تابع زیر قبلا در پروژه ای برای گرد کردن اعداد مثبت و منفی به زبان BASIC نوشته شده بود و از آنجایی که ممکن است برای کسی قابل استفاده باشد در اینجا قرار داده می شود:

Public Function myround(n As Double)
Dim m As Double
If n >= 0 Then
If (n - Int(n)) >= 0.5 Then
myround = (1 + Int(n))
Else
myround = Int(n)
End If
Else
m = -n
If (m - Int(m)) >= 0.5 Then
myround = -(1 + Int(m))
Else
myround = -Int(m)
End If
End If
End Function

@KnowledgePlus
تابع زیر توسط جناب آقای مهندس شهرام نوربخش راد برای گرد کردن اعداد در زبان BASIC پیشنهاد شده است:

Public Function myround(n As Double)
Dim m As Double
If n >= 0 Then
m = n + 0.5
myround = Int(m)
Else
m = -(n - 0.5)
myround = -Int(m)
End If
End Function

@KnowledgePlus
خبری درباره هک کردن گوشی که در آن از avr و stm32 هم ذکری به میان آمده است:

www.mehrnews.com/news/4065188

@KnowledgePlus
برای توجه به ضررهای ناشی از عدم وجود قانون کپی رایت در کشور و سلب فرصت های شغلی در سطح داخلی و بین المللی به پاسخ این سوال فکر کنید که با وجود این همه دانشجو و فارغ التحصیل در رشته های نرم افزار و سخت افزار و الکترونیک و مانند آن، چرا برای نوشتن و فروش و حتی صادرات نرم افزارهای تخصصی با عملکردی شبیه به codevision یا bascom یا iar یا keil یا proteus یا altium designer یا photoshop یا autocad یا coreldraw و ده ها نرم افزار مشابه هیچ تلاشی انجام نمی شود و چرا کسانی که با نرم افزارهای تخصصی کار می کنند اکثرا اطلاعاتی سطحی دارند و افراد متخصص و حرفه ای به معنای واقعی در اینگونه نرم افزارها تا این حد انگشت شمار هستند.

@KnowledgePlus
نقل یک تجربه در طراحی:

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

@KnowledgePlus