با استفاده از I2C با برد توسعه Quark D2000 با رابط سنسور نور محیط و LCD آشنا شوید.
قبلاً یک نمای کلی از برد توسعه Quark D2000 ارائه کردیم . متعاقبا، استفاده از GPIO و PWM برد را بررسی کردیم.
در این پروژه، ما با استفاده از I2C با برد D2000 با رابط یک حسگر نور محیط و یک LCD COG (تراشه روی شیشه) بررسی خواهیم کرد.
از آخرین گزارش ما، نسخه جدیدی از رابط نرم افزاری برد منتشر شده است (ISSM_2016.1.067) و برخی از اسناد به روز شده است. حتما منابع مرتبط زیر را دریافت کنید:
- استفاده از GPIO و PWM در برد توسعه Quark D2000
- صفحه مستندات اصلی Quark D2000 (پیوندها به راهنمای کاربر، یادداشتهای طراحی، شماتیک و موارد دیگر)
- انجمن میکروکنترلرهای کوارک اینتل
- انجمن اینتل سیستم استودیو
- از کجا می توان برد توسعه Quark D2000 را تهیه کرد
برنامه نویسی پایه I2C
برای نشان دادن ابتدایی ترین استفاده از رابط I2C برد D2000، می توانیم این روش را با روش مورد استفاده در Arduino Uno که همه جا حاضر است مقایسه کنیم. یعنی، ما یک سنسور نور محیطی BH1750FVI را با استفاده از ماژول نشان داده شده در زیر، با هر برد متصل خواهیم کرد.
این ماژول ارزان برای مدتی در دسترس بوده است و از چندین منبع در دسترس است (به عنوان مثال، 1 ، 2 ). به عنوان مثال انتخاب شده است زیرا برنامه نویسی برای استفاده از برد کوتاه و ساده است. اتصال ماژول نیز ساده است (پانل سمت راست شکل بالا را ببینید) و می توان آن را با هر دو سیستم 3.3 و 5 ولت استفاده کرد.
ابتدا برد را به UNO وصل کرده و برنامه موجود BH1750.ino را اجرا کنید. شما باید مقادیر لوکس را در حال پیمایش روی نمایشگر سریال ببینید. با نگاهی به لیست برنامه، توجه کنید که ابتدا #include wire.h و از دستور wire.begin() در setup() استفاده می کنیم. سپس تابع initBH1750() را نیز از setup() فراخوانی می کنیم. در نهایت، مقادیر حسگر را در حلقه() می خوانیم.
برای مقداردهی اولیه سنسور در initBH1750() از دستورات استفاده می کنیم:
(1) Wire.beginTransmission(BH1750addr)؛
(2) Wire.write(BHmodata);
و سپس (3) Wire.endTransmission()
اظهارات؛ 1) آدرس انتقال را به حسگر با استفاده از متغیر BH1750addr تنظیم کنید، 2) کد اولیه را در متغیر BHmodedata روی سنسور بنویسید، و 3) در واقع داده ها را روی سنسور بنویسید.
در بخش loop() با استفاده از دستورات سنسور را می خوانیم: