Aduino Tutorial آموزش آردوینو

آردوینو (قسمت یازدهم) – SD Cards and Datalogging

            طریقه اتصال SD Card به آردوینو از مواردیست که در این قسمت با آن آشنا می شوید. همچنین یاد خواهیم گرفت که چگونه اطلاعات را در SD Card با پسوند های TXT و CSV ذخیره کرده. و از آنها در Excel استفاده کنیم. با نوشتن پروژه ای استفاده از داده های آردوینو را در اکسل یاد خواهیم گرفت.

           SD Card کارت ها حافظه هایی قابل حمل می باشند که بیشتر در دوربین ها و وسایل قابل حمل استفاده می شوند. پروتکل ارتباطی SD Card ها از نوع SPI می باشد. پایه های 11 ,12 ,13 در اغلب بردهای آردوینو و  50, 51, 52 در بردهای آردوینو مگا برای ارتباط SPI می باشند. یک پین هم برای انتخاب کردن SD Card استفاده می شود که پین SS بر روی برد های آردوینو می باشد. یا می توان از پین دیگری استفاده کرد که آن را در()SD.begin مشخص می کنیم.

            برای اسفاده از SD Card در اردوینو باید آن را حتما به صورت FAT فرمت کنیم. بهتر است که اگه امکانش بود FAT16 فرمت شود.

            فایل های FAT محدودیتی در نام گذاری دارند. شما باید از فرمت 8.3 برای نام گذاری فایلها استفاده کنید. مثلا نام فایل را PROJECT1.TXT بگذارید. یعنی 8 کارکتر برای نام و 3 کارکتر برای نوع فایل. نام می تواند از 8 کارکتر کمتر باشد ولی نباید بیشتر باشد.

          شما وقتی از دستور()file.write استفاده می کنید چیزی بر روی SD Card ذخیره نمی شود تا از دستور()flush یا ()close استفاده کنیم. وقتی فایلی را باز می کنید مطمئن شوید که آن را می بندید تا ذخیره شود.

            برای اتصال SD Card باید از شیلد های مخصوص این کار استفاده کنیم. شیلد های بسیاری برای این کار ساخته شده است و در دسترس می باشد.

کتابخانه ی SD Card (SD.h)

           برای استفاده از SD Card باید کتابخانه آن را فرا خوانی کنیم. این کتابخانه به شما اجازه می دهد تا بر روی SD Card نوشته و یا فایلی را از روی آن بخوانید. اگر بخواهیم فایلی را در مسیری خاصی در SD Card ذخیره کنیم می توان آن مسیر را با اسلش نشان داد(root/name.txt).

()SD.begin

            برای آغاز به کار کتابخانه ی SD از این دستور استفاده می کنیم. این دستور پروتکل SPI را هم فعال می کند. پین های 11،12،13 در بیشتر بردهای آردوینو و 50،51،52  هم در برد آردوینو مگا و پین انتخاب تراشه (Chip select)، پین 10 در بیشتر برد ها و 53 در اردوینو مگا. دقت داشته باشید که اگر از پین دیگری بجای SS استفاده می کنید این پین باید به صورتی خروجی تعریف شده باشد. حتی اگر استفاده هم نکنیم ازش. وگرنه کتابخانه به درستی کار نخواهد کرد. اگر از پین دیگری استفاده می کنیم باید آن پین را داخل پرانتز ()SD.begin بنویسیم. ولی اگر از پین SS روی خود برد استفاده می کنیم لازم نیست داخل پرانتز چیزی نوشته شود.

            این دستور در صورتی که SD Card درست کار کند، TRUE  را بر می گرداند و در صورت بر قرار نشدن ارتباط FALSE را بر می گرداند.

            برای شروع کار یک متغیر از نوع فایل مشخص می کنیم. فایل یک کلاس است در این کتابخانه.

()SD.Open

            با این دستور یک فایل را در SD Card می توانیم باز کنیم. اگر فایلی به آن نام وجود نداشته باشد آن را ایجاد می کند.

SD.open(filepath, mode)

پارامتر ها:

Filepath: نام فایل و یا نام فایل همراه با مسیر آن که با اسلش جدا شده است.

Mode: در این قسمت دو مد را می توانیم تعیین کنیم که به صورت پیش فرض FILE_READ می باشد.

            FILE_READ: فایل را برای خواندن باز می کند و از اول فایل شروع می کند.

            FILE_WRITE: فایل را برای خواندن و نوشتن باز می کند و از آخر فایل شروع می کند.

            این دستور اگر نتواند فایل را باز کند FALSE را به صورت Boolean بر می گرداند.

()file.Println

            این دستور داده را پرینت می کند و به خط پایین می رود. به جای file می توانیم از نام متغیری که از نوع file  تعریف کرده ایم استفاده کنیم. در ضمن این دستور تعداد کارکتر هایی که پرینت می کند را بر می گرداند. که از نوع byte می باشد.

()file.close

            این دستور فایل مورد نظر را می بندد و اطلاعاتی که نوشته ایم به صورت فیزیکی در SD Card ذخیره می شود. به جای file می توان از متغیری که از نوع file تعریف کرده ایم استفاده کنیم.

()file.available

            چک می کنه اگه بایتی برای خواندن باشه. به جای file  میشه نام متغیری که از جنس file تعریف کردیم را بنویسیم. تعداد بایت هایی که وجود دارد را بر می گرداند. هر بایتی که توسط read خوانده شود از تعداد بایت کم می شود.

Pow(num1, num2)

            این تابع عدد  اول را به توان عدد دوم می رساند.

()File.read

            فایل مورد نظر را می خواند. اگه چیزی در فایل نباشد 1- را بر می گرداند. توجه داشته باشید که کد اسکی کارکتر را برمی گرداند.

            برای این از پسوند csv استفاده می کنیم چون در این فرمت از فایل، کاما (،) به عنوان خط در Excel در نظر گرفته می شود.

تصویر مدار

SD Card

SD Card

خواندن داده های آردوینو در Excel

            در ادامه می توانید نمنونه کد را که برای نوشتن اطلاعات روی SD Card است را مشاهده کنید. این اطلاعات با پسوند CSV ذخیره می شوند تا در Excel استفاده شوند.

 

 

در ادامه می توانید فیلم آموزشی را مشاهده کنید:

 

 

 

 

 

دیدگاه ها :

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.