صرفه جویی هوشمند انرژی در هوشمند سازی خانه

پروژه های قابل انجام:صرفه جویی هوشمند انرژی در هوشمند سازی خانه

به نام خدا

امروزه یکی از پروژه های مورد توجه و رو به گسترش، هوشمند سازی خانه یا همان BMS ها می باشد.

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

در مقاله ای که در ضمیمه این پست آمده به برسی صرفه جویی هوشمند انرژی در هوشمند سازی خانه با استفاده از یک میکروکنترلر ARM اشاره شده است. تمرکز در این مقاله به بحث صرفه جویی انرژی می باشد.

سخت افزار مورد استفاده در این پروژه:

  1. ARM7 TDMI-S LPC2129
  2. Dc Power supply unit
  3. 16×2 LCD
  4. Temperature sensor LM 35
  5. Passive infrared sensor
  6. LDR sensor OPT 101
  7. GSM modem
  8. RF module
  9. Relays
  10. Finger print sensor R303A

  www.ntaco.ir _ BMS (368٫9 KiB, 289 hits)

تفاوت ماژول های بلوتوث

تفاوت ماژول های بلوتوث

بدلیل مشابهت فراوان ظاهری ماژول های بلوتوث و تقاضای دوستان تصمیم گرفته شد که مطلبی جدید و جامع بصورت مجزا در رابطه با تفاوت های انواع ماژول های بلوتوث نوشته شود. امید است که مورد استفاده و کاربرد علاقه مندان قرار گیرد.

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

ماژول های بلوتوث معروف و محبوب داخل بازار جهانی به چند نام محدود میشوند. این ماژول ها پرکاربردتر هستند و از این رو در این مقاله روی این سری ماژول ها تمرکز شده است .

 (HC-03, HC-04, HC-5, HC-06, HC-07, HC-08, HC-09)

7-5-2015 12-29-41 PM

ماژول های بلوتوث در پارامترهای زیر با هم متفاوت هستند.

  • نرم افزار (Firmware) داخلی
  • نرخ تبادل دیتای پیش فرض
  • جریان مصرفی
  • رنج ولتاژ تغذیه ماژول
  • چینش پایه ها
  • سطح کاری

 

  • نرم افزار (Firmware) داخلی

هر ماژول بلوتوث دارای نرم افزار یا فرم ور مخصوص خود میباشد که این نرم افزار master یا slave بودن ماژول و در نهایت دستورات AT قابل پشتیبانی ماژول را تعیین میکند. ماژول های بلوتوث HC-05 و HC-03 دارای Firmware کامل است به این معنا که این دو ماژول مدهای کاری master و slave را پشتیبانی میکند و تمام دستورات AT توسط این دو ماژول قابل پذیرش است. ماژول های HC-06 و HC-04  بر اساس نرم افزار داخلی خود تنها میتوانند تنها یکی از نقش های master یا slave را داشته باشند و طبیعتاً تنها دستورات AT مد کاری خود (master یا slave) را پشتیبانی میکنند. نرم افزار ماژول HC-09 مشابه HC-07 و HC-06 میباشد.

 

 

 

برای دانلود مقاله کامل روی لینک زیر کلیک کنید

  Bluetooth_Module_Differences.pdf (291٫7 KiB, 862 hits)

بررسی واحد SD Card Interface

بررسی واحد SD Card Interface

به نام خدا

در این متن که پیش رو دارید، قصد بررسی واحد SD Card Interface را داریم.

در میکروکنترلر های 8 بیتی از قبیل AVR ها واحدی به عنوان SDIO یا همان SD Card Interface وجود نداشت. (البته شاید میکرو خاصی را شرکتی تولید کرده باشد که این واحد در آن باشد مانند AVR USB) لذا برای راه اندازی کارت های حافظه از قبیل MMC و SDC از مد SPI که یک پروتکل سریال می باشد استفاده می شد.

با رونق گرفتن میکرو های ARM شرکت های تولید کننده این میکروکنترلرها روز به روز به قابلیت های این میکروکنترلر ها اضافه کردند. تاجایی که در برخی از میکرو های امروزه واحد هایی که روزی روئیایی به نظر می رسیدند اضافه گردیده و با قیمتی اندک در اختیار کاربران قرار دارد. واحد هایی از قبیل LCD Controller, External Memory Controller , Camera Interface , Ethernet ,SDIO و … نمونه ای از این واحد ها می باشند.

در مقاله های قبلی به توضیح ویژگی های این بلاک ها پرداخته ایم ، در ادامه قصد داریم تا اطلاعاتی در مورد واحد SDIO یا همان SD Card Interface ارائه دهیم.

ویژگی های مهم این واحد:

  • توانایی خواندن و نوشتن با سرعت بالا
    • در مد SPI ما تنها یک خط برای نوشتن و یک خط برای خواندن اطلاعات داریم ،اما در این حالت خواندن و نوشتن روی 4 خط می باشد. یعنی حداقل سرعت مد SDIO چهار برابر مد SPI است.
  • می تواند به عنوان BUS برای MMC و یا به عنوان BUS برای SDC استفاده گردد.
    • یعنی می توان چندین MMC و یا یک SDC را به این BUS متصل کرد.
  • پشتیبانی از DMA
    • چیپ هایی که دارای واحد SDIO می باشند، معمولا از DMA هم پشتیبانی می کنند. DMA یک بلاک دسترسی مستقیم به حافظه می باشد که بدون دخالت CPU انتقال اطلاعات را انجام می دهد. واین عمل موجب افزایش سرعت نقل و انتقال اطلاعات می گردد.

 

میکروکنترلر LPC1788 از جمله چیپ هایی می باشد که دارای واحد SD Card Interface است. و شما با راه اندازی این واحد به سادگی می توانید با کارت های حافظه SDC و MMC ارتباط برقرار کرده و روی آن ها دیتا بنویسید و یا از آن های دیتا بخوانید.

تفاوت NAND Flash با NOR Flash

تفاوت NAND Flash با NOR Flash ها چیست؟

به نام خدا

شاید این سوال برای شما هم زیاد پیش آمده باشد که واقعا ” تفاوت NAND Flash با NOR Flash ها چیست؟ ” یا ” در چه جاهایی از NAND Flash استفاده می شود و چه جاهایی NOR Flash ؟ ”

در مقاله ای که برای دانلود برای شما قرار داده ایم سعی کردیم در یک جدول کاربرد اصلی و تفاوت های مهم این حافظه ها را دسته بندی و بیان کنیم.

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

البته توجه داشته باشید تفاوت های اساسی تراشه های NAND Flash و NOR Flash ثابت خواهند بود اما تفاوت هایی از قبیل حجم و سرعت خواندن و نوشتن در این تراشه ها ممکن است تغییر کند.

برای دانلود مقاله ” تفاوت NAND Flash با NOR Flash ها چیست؟ ” روی کلیک زیر کنید.

  NOR_Flash_Vs_NAND_Flash.pdf (83٫9 KiB, 935 hits)

تنظیم ماژول بلوتوث HC-05 با AT-COMMAND

تنظیم ماژول بلوتوث HC-05 با AT-COMMAND

در آموزش قبل طریقه راه اندازی ساده ماژول و برقراری ارتباط با گوشی هوشمند رو توضیح دادیم. زمانی که ماژول رو تهیه میکنید تنظیمات پیش فرضی داخلش انجام شده، تنظیمات اولیه و لازمی از قبیل، نام دستگاه بلوتوث، رمز دسترسی به دستگاه “1234” ، نرخ تبادل داده (بادریت) 38400 و تظیم مد slave و تنظیمات دیگر. این تنظیمات برای وصل شدن به ماژول به کافی است، همونطور که در قسمت قبل ارتباط با گوشی هوشمند رو بدون تنظیمات خاص پیش بردیم. در این آموزش میخواهیم دستورات تتنظیم ماژول بلوتوث HC-05 با AT-COMMAND رو مطرح کنیم.

پیش از هرچیز برای تنظیم ماژول باید پایه 34 اونرو به 3.3 ولت وصل  و سپس یکبار تغذیه ماژول را قطع و وصل کنیم تا ماژول وارد حالت تنظیم شود.

برای اطمینان از وارد شدن ماژول به حالت تنظیم دستور AT را از ترمینال سریال وارد میکنیم. در صورت ارتباط فیزیکی صحیح ، ماژول کاراکترهای OK را برمیگرداند. در غیر این صورت ماژول ممکن است ERROR برگرداند یا اصلا چیزی پاسخ ندهد که این نشان از عدم اتصال صحیح ماژول به کامپیوتر ما خواهد بود. خوب بعد از اطمینان به صحت ارتباط با ماژول وارد دستورات تنظیمی دیگر را پی میگیریم.

 

دستورات تنظیم

عملکرد دستور پاسخ ماژول
?AT+NAME استعلام نام ماژول > HC-05
AT+NAME=hc-05 تنظیم نام برای ماژول OK
?AT+PSWD استعلام پسورد دسترسی ماژول 1234
AT+PSWS=1234 تنظیم پسورد دسترسی به ماژول OK
?AT+UART استعلام نرخ بادریت 38400
AT+UART=9600 تنظیم مقدار بادریت OK
?AT+ROLE استعلام master یا slave بودن ماژول 1 یا 2 یا 3
AT+ROLE=0 تنظیم ماژول روی حالت slave OK
AT+ROLE=1 تنظیم ماژول روی حالت master

OK

موفق باشید.

ultra00

معرفی و راه اندازی التراسونیک-Ultrasonic

به نام خدا

در مقاله ای که پیش رو دارید قصد داریم به معرفی و راه اندازی التراسونیک-Ultrasonic بپردازیم و اندکی با التراسونیک (Ultrasonic) آشنا شویم. فرکانس کاری التراسونیک خارج از محدوده شنوایی انسان می باشد و یعنی فرکانس الترا سونیک ها از 20Khz تا چند مگاهرتز می باشد که با توجه به نوع کاربرد از التراسونیک با فرکانس کاری خاصی استفاده می شود.

اصول کار التراسونیک (Ultrasonic) بر چه اساس است؟

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

حال بپردازیم به کاربرد های التراسونیک، این محدوده فرکانسی کاربرد های وسیعی دارد در زیر به تعدادی از این کاربردها اشاره خواهیم کرد:

  • صنایع رباتیک
  • پزشکی
  • تشخیص وجود شیء
  • شمارنده (مانند شمارنده های کلا ها ی عبور کننده از نوار نقاله)
  • تشخیص موقعیت
  • اندازه گیری حجم
  • تشخیص اشخاص
  • اندازه گیری فاصله
  • صنایع جوش
  • صنایع نانو
  • صنایع شیمی
  • خودروسازی

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

در ادامه مقاله سعی بر آن داریم تا در مورد یکی از کاربرد های التراسونیک یعنی اندازگیری فاصله صحبت کنیم.

برای این کاربرد از رایج ترین ماژول های التراسونیک موجود در بازار ماژول SRF04 و SRF05 می باشد.

ابتدا تفاوت بین این دو ماژول رو بشناسیم:

ماژول SRF05 نسخه تکامل یافته SRF04 می باشد. این نسخه جدید دو مد کاری را پشتیبانی می کند و 5 پایه جهت کار با با ماژول را در اختیار قرار می دهد. اما ماژول SRF04 دارای 4 پایه می باشد و تنها یک مد کاری را پشتیبانی می کند.

حال بپردازیم به نحوه راه اندازی و استفاده از این ماژول ها.

برای استفاده از ماژول SRF04 نحوه عملکرد پایه ها به شرح زیر می باشد:

ultra01

البته در بعضی از ماژول ها پایه “Do not Connect” وجود ندارد. ولتاژ تغذیه این ماژول ها ،همانطور که در شکل مشخص شده است 5 ولت می باشد.

برای راه اندازی ماژول SRF04 باید دیاگرام زیر پیاده شود:

ultra02

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

نکته ای در مورد عرض پالس وجود دارد این است که باید عرض پالس بین 100us تا 18ms باشد. اگر بیش از این مقدار باشد تشخیص فاصله با دقت صحیحی نیست و اگر حدود 36ms باشد ،یعنی مانعی را تشخیص نداده است.

اما ماژول SRF05 ،این ماژول معمولا دارای 5 پایه است، که در مد اول پایه ها به شرح زیر می باشند:

ultra03

 

این مد دقیقا مشابه مد SRF04 است و تایمینگ دیاگرام آن ها مشابه است ، تنها تفاوت در عرض پالس روی پایه Echo می باشد.

در ماژول SRF05 عرض پالس روی پایه Echo بین 100us تا 25ms می باشد، یعنی مسافت طولانی تری را می تواند اندازگیری کند و اگر عرض پالس 30ms دریافت کند یعنی مانعی را تشخیص نداده است.

اما راه اندازی ماژول SRF05 در مد دوم، در این مد چیدمان پایه ها به فرم زیر است:

ultra04

در این حالت برخلاف حالت قبل که پایه Mode را بدون اتصال رها می کردیم، باید پایه Mode را صفر کنیم. و تغییر دیگر آنکه پایه Trigger و Echo یکی می باشد.

برای کار کردن در این مد به دیاگرام زیر دقت نمایید:

ultra05

همانطور که در دیاگرام مشخص شده است، بعد از این که پالس تریگر را با عرض بیش از 10us اعمال کردیم، باید منتظر دریافت عرض پالس برگشتی روی همان پایه باشیم.

بعد از این که عرض پالس را بدست آوردیم نوبت به استخراج فاصله از روی عرض پالس می رسد.

حال اگر زمان اندازگیری شده بر حسب میکرو ثانیه باشد، برای تبدیل به مسافت از دو رابطه زیر می توان استفاده نمود:

Time(us)/58 = distance(cm)

Time(us)/148 = distance(inch)

دو رابطه فوق برای ماژول های ذکر شده و در همه حالت ها یکسان می باشد.

 

راه اندازی ماژول بلوتوث HC-05 و ارتباط با گوشی هوشمند

راه اندازی ماژول بلوتوث HC-05 و ارتباط با گوشی هوشمند

در  این آموزش (راه اندازی ماژول بلوتوث HC-05 و ارتباط با گوشی هوشمند) قصد داریم ماژول رو در به ساده ترین شکل ممکن راه اندازی کنیم و با یک گوشی هوشمند ارتباط برقرار کنیم.

در قدم اول باید با پایه های ماژول بلوتوث آشنا شویم.

پایه های ماژول بلوتوث HC-05 به پنج دسته تقسیم میشوند:

  1.  پایه های ارتباطی ماژول:  ارتباط سریال UART (پایه های Tx و Rx) ، ارتباط USB  و ارتباط سریال SPI
  2. پایه های ورودی و خروجی دیجیتال:  [PIO[0..11
  3. پایه های ورودی و خروجی آنالوگ: [AIO[0..1
  4. پایه های ارتباطی PCM
  5. پایه های تغذیه و ریست بلوتوث

از پنج دسته بالا چند پایه برای ما اهمیت بیشتری دارند و برای شروع باید عملکرد و نقش آنها را بدانیم.

  1. پایه های ارتباطی: پایه 1 (UART-TX) و پایه 2 (UART-RX)
  2. پایه های تغذیه ماژول: پایه 12 (تغذیه 3.3 ولت) و پایه 13 (زمین ماژول)
  3. پایه های LED نشانگر: پایه 31 نشانگر وضعیت و پایه 32 نشانگر اتصال
  4. پایه مد کاری ماژول : پایه 34 که با یک شدن این پایه ماژول وارد مد تنظیمات میشود و با صفر شدن آن ماژول وارد مد کاری خواهد شد.
پایه های ماژول بوتوث

پایه های ماژول بوتوث

پایه های مهم ماژول بلوتوث hc-05

پایه های مهم ماژول بلوتوث hc-05

حال مراحل زیر را با رعایت ترتیب برای راه اندازی ماژول و اتصال به گوشی هوشمند دنبال کنید

  1. بوسیله یک مبدل پایه های ماژول را به کامپیوتر وصل میکنیم
  2. پایه کلید (پایه 34) را به 3.3 ولت وصل میکنیم (ورود به حالت تنظیم)
  3. تغذیه ماژول را به 3.3 ولت و زمین وصل کنید
  4. ترمینال سریال کامپیوتر را با پورت مشخص شده و baudrate=38400 باز میکنیم.
    1. دستور AT+ORGL را برای بازگردانی ماژول به تنظیمات پیش فرض وارد میکنیم. باید پاسخ O.k. از طرف ماژول بازگردانده شود.
  5. سپس پایه کلید (پایه 34) را به زمین وصل میکنیم (ورود به حالت کاری ماژول)
  6.  تغذیه ماژول را یک بار قطع و سپس وصل میکنیم (در این حالت LED وضعیت چشمک زن به خود خواهد گرفت)
  7. حال روی گوشی هوشمندتان برنامه “BlueTerm-2” را نصب کرده کنید و دستگاه های بلوتوث را از داخل برنامه جستجو کنید (نام پیش فرض  ماژول بلوتوث میتواند “H-C-2010-06-01” باشد )
  8. از شما رمز اتصال میخواهد. پسورد پیش فرض “1234” میباشد. با وارد کردن رمز و تایید آن شما به ماژول متصل شده اید.
  9. حال هر آنچه داخل ترمینال کامپیوتر تایپ کنید در گوشی هوشمند قابل مشاهده و بلعکس هر آنچه از گوشی تایپ کنید در کامپیوتر قابل مشاهده است. با متصل شدن کامیوتر به ماژول چراغ وضعیت 3 بار سریع روشن و خاموش شده و یک ثانیه خاموش میماند.

 

بهمین سادگی حالا شما یک چت روم تحت بلوتوث بین کامپیوتر و گوشی هوشمندتان دارید.

 

در آموزش بعدی دستورات تنظیمی ماژول رو با هم بیشتر بررسی خواهیم کرد

موفق باشید

انتخاب دیوایس بلوتوث از داخل نرم افزار  BlueTerm2 در گوشی هوشمند

انتخاب دیوایس بلوتوث

وارد کردن پسورد ماژول بلوتوث

وارد کردن پسورد ماژول بلوتوث

ترمینال سریال کامپیوتر

ترمینال سریال کامپیوتر

ترمینال بلوتوث گوشی هوشمند

ترمینال بلوتوث گوشی هوشمند

راه اندازی انکودر موتور

راه اندازی انکودر موتور-قسمت دوم

انکودر نوری

 راه اندازی انکودر موتور – قمست دوم

بسم الله

در مورد انواع انکودرها، کاربرد و چگونگی عملکر آنها در قسمت پیشین این آموزش (راه اندازی انکودر موتور) به تفضیل بحث شد. در قسمت دوم از این آموزش میخواهیم به پیاده سازی عملی راه اندازی انکودر موتور توسط ARM LPC1788 بپردازیم. در قسمت قبل دو دسته بندی برای روشهای خواندن و کار با انکودر (encoder) ارائه شد.

  • روش ساده : خواندن پایه انکودر و شمردن به ازای هر بار صفر و یک شدن پایه
  • روش اصولی : استفاده از کانتر برای شمارش اتوماتیک پالس ها بدون درگیرشدن پروسسور
LPC1788 - ARM CORTEX-M3

LPC1788 – ARM CORTEX-M3

حال میخواهیم به روش اصولی که استفاده از کانتر (counter) میکر.کنترلر است، خواندن مقادیر انکودر را انجام و مسافت طی شده توسط ربات متحرک را محاسبه کنیم.

 

کانتر میکرو کنترلر میتواند برحسب تنظیم به ازای هر لبه بالا یا پایین رونده یک عدد بشمرد. صرفا جهت یادآوری این لبه ها از همان لبه پالس های تولیدی توسط انکودر نوری میباشد. با توجه به اینکه انکودر مورد استفاده در این پروژه به ازای یک دور کامل موتور 200 پالس تولید میکنند، پس با دیدن هر 200 لبه پایین رونده میتوانیم مطمئن باشیم موتور یک دور کامل زده است. از طرف دیگر محیط چرخ ربات ما 10 سانتی متر است یعنی با چرخش یک دور کامل موتور (چرخ) ربات 10 سانتی متر حرکت کرده است. پس میتوانیم بگوییم با گرفتن هر 200 پالس انکودر ربات 10 سانتی متر حرکت کرده است.

 

میکروی LPC1788 دارای 4 کانتر(تایمر) است که میتوان به انتخاب، از هرکدام استفاده کرد که ما در اینجا از کانتر صفر استفاده میکنیم.

تنظیمات کانتر بسیار ساده و کوتاه است که توجه شما رو به اون جلب میکنم.

 

تنظیم رجیسترهای کانتر

تنظیم رجیسترهای کانتر

 

برای راه اندازی کانتر تنها باید سه رجیستر بالا تنظیم شوند:

  1. رجیستر PR تعیین کننده اینست که به ازای چند لبه کانتر یک عدد بالا برود.
  2. رجیستر CTCT برای انتخاب لبه پایین رونده پالس به عنوان معیار شمارش و تعیین کننده شماره پایه ورودی کانتر است.
  3. رجیستر TCR برای راه اندازی (start) کانتر مورد استفاده قرار گرفته است.

با تنظیمات بالا با هر بار لبه پایین رونده مقدار عدد کانتر یکی اضافه میشود و این مقدار را میتوان مشابه زیر از رجیستر TC کانتر خواند. با دانستن تعداد پالس انکودر در هر دقیقه (200 پالس) و محیط چرخ (10 سانتی متر) میتوان مسافت طی شده را محاسبه نمود.

محاسبه مسافت

محاسبه مسافت

 

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

دانلود کد پروژه خواندن انکودر

 

 

راه اندازی انکودر موتور

راه اندازی انکودر موتور

انکودر نوری

 راه اندازی انکودر موتور – قمست اول

بسم الله

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

موتور به همراه انکودر

موتور به همراه انکودر

انکودرها از نظر ساختمان به دو دسته خطی (Linear) و دوّار (Rotary) تقسیم میشوند. انکودر خطی جهت اندازه گیری مسافت خطی استفاده میشود ولی انکودر دوّار یا چرخشی که موضوع بحث ها هم هست، برای سنجش میزان دوران استفاده میشوند.

انکودر خطی و چرخشی

انکودر خطی و چرخ

انکودرهای چرخشی نیز به دو نوع مطلق (Absolute) و افزایشی (Incremental) تقسیم میشوند. انکودرهای مطلق دارای چندین بیت هستند که در هر لحظه با کنار هم گذاشتن آنها موقعیت دقیق دوران مشخص میشود و انکودرهای افزایش تنها دارای شیارهایی هستند ایجاد پالس میکنند و باید با شمردن پالس ها میزان چرخش را مشخص کنید، مثلا در وقتی شما یک انکودر افزایشی 200 پالس، در طی چرخش کامل 360 درجه ای 200 پالس تولید خواهد کرد.

انکودر چرخشی نوری

انکودر افزایشی (Incremental)

انکودر مطلق (Absolute)

انکودر مطلق (Absolute)

انکودرهای دوّار بطور متداول از یک جفت LED، که یکی فرستنده و دیگری گیرنده و یک دیسک مدرج (سیاه و سفید با جاهای خالی یا پر) استفاده میکنند. به این شکل که دیسک مدرج مابین سنسور فرستنده و گیرنده قرار میگیرد و با چرخش دیسک که به شفت موتور متصل است، سیگنال هایی از سمت فرستنده به گیرنده ارسال میشود. در صورتی که بین فرستنده و گیرنده قسمت تو پر دیسک قرار بگیرد هیچ نوری از فرستنده به گیرنده نمیرسد و در نتیجه انکودر عدد صفر منطقی را بر میگرداند و در غیر این صورت انکودر عدد یک منطقی را برمیگرداند. این صفر و یک شدن یک قطار پالس درست میکند که با استفاده از آن میزان چرخش موتور بدست می آید، به همچین ساختاری انکودر نوری میگویند.

انکودر افزایشی نوری

انکودر افزایشی نوری

انکودر افزایشی نوری

انکودر افزایشی نوری

برای شمارش پالس های انکودر نوری دو روش وجود دارد

  • روش ساده : خواندن پایه انکودر و شمردن به ازای هر بار صفر و یک شدن پایه
  • روش اصولی : استفاده از کانتر برای شمارش اتوماتیک پالس ها بدون درگیرشدن پروسسور

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

LPC1788 - ARM CORTEX-M3

LPC1788 – ARM CORTEX-M3

 

codevisionavrFAT6

راه اندازی FATوکار با حافظه های MMC و SDCباAVR – قسمت6

به نام خدا

راه اندازی FAT با AVR قسمت 6 : دو نکته مهم و بررسی یک برنامه عملی

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

  • برای عملکرد صحیح کارت حافظه چه MMC,SDC و SD HC باید تابع زیر که یک تابع low level می باشد هر 10 میلی ثانیه فراخوانی شود.

void disk_timerproc (void);

به منظور عملکرد صحیح این تابع را در وقفه تایمری که 10 میلی ثانیه تنظیم شده است باید قرار دهیم. باید اطمینان پیدا کنید که این تابع در برنامه شما هر 10 میلی ثانیه اجرا می شود در غیر این صورت توابع کارت حافظه زمانی که، time out شدن عملیات را بررسی می کنند، در انتهای حلقه قفل می گردند.

  • پس از آن که دیتای مورد نظر را در فایل نوشتیم برای ذخیره شدن اطلاعات باید از دستور زیر استفاده کنیم:

FRESULT f_close(FIL* fp);

  • این تابع دارای یک ورودی و یک مقدار برگشتی می باشد. ورودی ما از جنس استراکچر FIL می باشد، که باید اسم فایلی را بدهیم که دیتا را در آن نوشته ایم. همچنین مقدار برگشتی می تواند یکی از مقادیر زیر باشد:
    1. FR_OK : در صورت موفقیت آمیز بودن عملیات این تابع این مقدار را بر می گرداند.
    2. FR_NOT_READY : دسترسی به دیسک امکان پذیر نمی باشد، ممکن است به دلیل گم کردن اطلاعات یا چیزی دیگر باشد.
    3. FR_DISK_ERR : عملیات ناموفق بوده است ،زیرا دسترسی فیزیکی به دیسک از دست رفته است.
    4. FR_INT_ERR : عملیات به علت اشتباه بودن استراکچر FAT و یا خطای داخلی ناموفق بوده است.
    5. FR_INVALID_OBJECT : فایل با تابع f_open باز نشده است.

حال که اطلاعات لازم برای کار با حافظه ها را داریم به برنامه نویسی برای آن ها می پردازیم.

  • تابع زیر هر 10 میلی ثانیه اجرا می گردد:

1-int

 

 

 

  • تابع زیر فضای لازم برای کار با FAT را آماده سازی می کند:

2-mount

 

  • تابع زیر فایل با آدرس مورد نظر ما را باز می کند:

3-open

 

  • تابع زیر در فایل باز شده 17 بایت از دیتا را می نویسد:

4-write

 

  • و در آخر تابع زیر فایل را ذخیره می کند و سپس می بندد:

5-close