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
نکته طراحی مدار:

در اتصال مستقیم حافظه های SDC/MMC به میکروکنترلرهای با تغذیه 3.3v به روش spi، روی هر یک از پین های DI و DO یک مقاومت Pullup با مقدار 56KOhm تا Vcc قرار دهید.

@KnowledgePlus
تعداد سیم های استپر موتورها:

استپر موتور دو فاز و چهار فاز: 4 یا 5 یا 6 یا 8 سیم
استپر موتور سه فاز: 3 یا 4 یا 6 سیم
استپر موتور پنج فاز: 5 یا 6 یا 10 سیم

@KnowledgePlus
نقل تجربه ای از فعالیت های کاری و اقتصادی:

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

@KnowledgePlus
یکی از اشتباهات رایج در برقراری ارتباط آسنکرون با usart در AVR، استفاده از اسیلاتور RC داخلی به عنوان منبع کلاک است که در بسیاری از موارد به دلیل عدم دقت این اسیلاتور ارتباط قطع می شود و یا اطلاعات به صورت اشتباه ارسال و دریافت می شود.

@KnowledgePlus
نقل یک تجربه عملی:

در استفاده از برخی LCD های گرافیکی غیر اصلی و متفرقه با کنترل کننده ks0108 مشاهده شده که پیکسل های آنها بعد از مدتی کم رنگ می شوند تا حدی که رویت تصویر LCD به سختی ممکن است و تنظیم contrast هم تاثیری در برطرف شدن این وضعیت ندارد.

@KnowledgePlus
نکات آموزشی CNC:

در برنامه نویسی با G-code برای CNC، یک تفاوت بین کدهای G00 و G01 این است که در اجرای G00، حرکت خروجی لزوما روی یک خط مستقیم نیست و هر یک از محورها ممکن است بصورت مستقل و با حداکثر سرعت ممکن حرکت خود را انجام دهند. اما در اجرای G01 محورها بر اساس درونیابی (Interpolation) و با Feed rate مشخص شده به گونه ای حرکت می کنند که خروجی محورها روی یک خط مستقیم حرکت کند.

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

در هنگام سوییچ کردن جریان های بسیار بزرگ در یک بازه زمانی کوچک و با توجه به فرمول V=Ldi/dt، حتی در صورت کوچک بودن اندوکتانس معادل مسیر عبور جریان و به دلیل بزرگ بودن di/dt، این حاصلضرب مقدار قابل توجهی خواهد شد و می تواند پیک های ولتاژ لحظه ای را در دو سر مسیر عبور جریان بوجود آورد که در برخی کاربردها این پیک های ولتاژ لحظه ای می تواند مشکلاتی را در مدار ایجاد کند.

@KnowledgePlus
تصحیح دو اشتباه رایج درباره اسیلاتورهای داخلی AVR:

1- اصطلاح "کریستال داخلی" که گاهی برای اسیلاتور RC داخلی AVR بکار برده می شود صحیح نیست و در داخل میکروکنترلر، کریستالی وجود ندارد.

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

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

@KnowledgePlus
نکته ای در مورد حافظه های eeprom:

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

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

در برنامه نویسی میکروکنترلرها برای عملیاتی مانند تنظیم پارامترها در کنترلرهای صنعتی و مانند آن در مواقعی لازم است که یکی از ارقام یک عدد در مبنای ده را استخراج کنیم. مثلا در عدد 1234567 بتوانیم هر یک از رقم های دلخواه ( مثلا رقم ششم که معادل 2 است) را بصورت مجزا بر حسب ارزش مکانی رقم بدست آوریم . مخاطبین به عنوان تمرین می توانند روی این مسئله فکر کنند که با چه روش هایی در برنامه نویسی می توان این عملیات را انجام داد.

@KnowledgePlus
نقل یک تجربه عملی:

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

@KnowledgePlus
تاثیر متفاوت ولتاژهای dc و ac روی کنتاکت های رله ها و سوییچ ها:

از آنجایی که میزان آسیب وارد شده به سطح کنتاکت ها بر اثر ایجاد جرقه در هنگام سوییچ کردن ولتاژهای dc بیشتر از آسیب ناشی از سوییچ کردن ولتازهای ac در همان مقدار ولتاژ است، بنابراین ولتاژ dc مجاز ذکر شده در مشخصات رله به ازای یک جریان معین معمولا بسیار کمتر از ولتاژ ac مجاز برای همان رله است (مثلا 10Aبه ازای ولتاژهای 240Vac یا 30Vdc).

@KnowledgePlus
یک روش سریع و زود بازده برای استفاده از قابلیت های سیستم عامل در کنار امکانات سخت افزاری میکروکنترلر که علیرغم قدیمی بودن، برای بسیاری از کاربردهای صنعتی به خوبی جواب می دهد و پیاده سازی آن هم بسیار ساده تر و سریع تر از خیلی از گزینه های دیگر است، استفاده از پورت RS232 در PC و اتصال آن به میکروکنترلر مورد نظر است. در این روش با نرم افزارهای سطح بالایی مانند VB می توان واسط کاربری لازم را ایجاد کرد و علاوه بر استفاده از امکانات متنوع سیستم عامل، بصورت همزمان می توان ازامکانات سخت افزاری میکروکنترلر مانند pwm و adc و spi و ... هم استفاده کرد.

@KnowledgePlus
اهمیت فاکتور زمان در انتخاب ابزارهای سخت افزاری و نرم افزاری برای انجام پروژه های الکترونیک:

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

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

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

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

در سخت افزاری مبتنی بر هر میکروکنترلر دلخواه و با سه عدد کلید که آنها را set و up و down نامگذاری می کنیم و 5 عدد 7segment که با روش Multiplex به پورت های میکروکنترلر متصل هستند، برنامه ای بنویسید که اعدادی در محدوده مشخص (مثلا 178 تا 98432 با مقدار اولیه 178) روی رقم ها با این سه کلید به این صورت قابل تنظیم باشند که در هر لحظه یکی از رقم ها چشمک بزند و با کلید های up و down بتوان آن رقم را تنظیم کرد. فشار دادن کلید set باعث تغییر مکان رقم قابل تنظیم و در حال چشمک زدن از راست به چپ می شود و در انتها مکان نما دوباره به سمت راست منتقل می شود. حد مجاز هر رقم باید به گونه ای باشد که عدد کلی از محدوده حداکثر و حداقل مجاز فراتر نرود. مثلا در محدوده ذکر شده در این صورت مسئله اگر عدد جاری 88431 باشد و رقم سمت راست در حال تنظیم باشد، محدوده مجاز این رقم بین 0 تا 9 خواهد بود (معادل با 88430 تا 88439). اما اگر عدد کلی 98431 باشد، در این حالت محدوده مجاز برای رقم سمت راست فقط 0 تا 2 خواهد بود (معادل با 98430 تا 98432). یا به عنوان مثال دیگر اگر عدد جاری 190 باشد و رقم دوم از سمت راست در حال تنظیم باشد، فقط اعداد 8 و 9 برای این رقم مجاز هستند و در غیر این صورت مجموعه کل رقم ها از مقدار حداقل در این مثال کوچک تر خواهد شد. صفرهای سمت چپ عدد در این مسئله باید نمایش داده شوند و مثلا 178 بصورت 00178 نمایش داده می شود.

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

https://telegram.me/KnowledgePlus/374

می توان از چندین روش استفاده کرد که یکی از آنها محاسبه خارج قسمت تقسیم عدد مذکور به ده به توان مرتبه رقم و در مرحله بعد محاسبه باقیمانده تقسیم این عدد به ده است. مثلا اگر عدد 1234567 را بر 10 به توان 5 یا 100000 تقسیم کنیم، خارج قسمت 12 خواهد شد و باقیمانده تقسیم 12 به 10 برابر با 2 خواهد بود. برای محاسبه ده به توان مکان رقم در عدد با سرعت بالا می توانیم از یک آرایه استفاده کنیم. اگر فرض کنیم یک عدد حداکثر با 8 زقم غیر صفر در متغیر data قرار داشته باشد و مرتبه رقم در عدد (با شروع از 0) در متغیر digit_position باشد، با فرض کدنویسی در IAR برای AVR، تابع get_digit رقم دلخواه را بر می گرداند:

unsigned long __flash digit_mask[]={1,10,100,1000,10000,100000UL,1000000UL,10000000UL};
...
unsigned char get_digit(unsigned long data,unsigned char digit_position)
{ return((data/digit_mask[digit_position])%10);}

@KnowledgePlus