ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC

$3,13

نوع ماژول

ماژول تشخیص رنگ و IR

ولتاژ تغذیه

1V8, 3V3

نوع خروجی

I2C, Digital

محدوده کاری

50k lux

محدوده طول موج

~400 to ~1100 nm

پیک طول موج

560nm

جریان مصرفی

10 mA to 30 mA (Typ. 20 mA)

ابعاد

Gebra small(36.29mm x 32.72mm)

بهره

128X, 1X, 32X, 4X

دمای کاری

-40 to +85 °C

مروری بر BU27006MUC

BU27006MUC-Z یک آی سی سنسور رنگ دیجیتال است که رنگ‌های قرمز، سبز، آبی (RGB) و مادون قرمز را تشخیص داده و آنها را به مقادیر دیجیتال تبدیل می کند. حساسیت بالا، دامنه دینامیکی گسترده و ویژگی های IRcut عالی، این آی سی را قادر می سازد تا میزان دقیق روشنایی و دمای رنگ نور محیط را اندازه گیری کند. این سنسور همچنین میتواند نویز نورهای چشمک زن صفحه نمایش و نور اتاق را تشخیص دهد و به سبب همین ویژگی‌ها گزینه ی مناسبی برای تنظیم نور پس زمینه LCD تلویزیون، تلفن همراه و تبلت‌ها میباشد.

مشخصات فنی

  • Output type: Digital – I2C
  • Operating Range: 50k lux
  • Resolution: 16 Bit
  • Wavelength Range: ~400 to ~1100 nm
  • Peak Wavelength: 560nm

کاربردها

  • Mobile Phone, Tablet PC, Notebook PC, Digital Camera, Portable Game Machine, LCD TV

ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC

Gebra BU27006MUC Dijital Renk Algılama Modülü
  • با توجه به اینکه دسترسی به پایه‌های سنسور دشوار است، کاربران برای توسعه سخت‌افزاری و نرم‌افزاری این سنسور به یک برد ابتدایی (starter board) و درایور نیاز دارند. برای راحتی کاربران، GebraMS برد ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC را طراحی کرده است. کاربران می‌توانند به کمک این برد، به مهم‌ترین پایه‌های سنسور به‌راحتی دسترسی پیدا کنند.
  • کافی است برد ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC را روی برد (Breadboard) قرار دهید و سپس با یکی از بردهای Arduino، Raspberry Pi یا Discovery و با اعمال ولتاژ مناسب، آن را راه‌اندازی کنید.
  • ما به‌ویژه استفاده از Gebra STM32F303 را توصیه می‌کنیم؛ چرا که این برد دارای رگولاتور داخلی ۳.۳ ولت است و ترتیب پایه‌های آن با تمامی ماژول‌های Gebra هماهنگ است (استاندارد GEBRABUS)، بنابراین می‌توانید برد ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC را مستقیماً به سوکت مربوطه متصل کرده و بدون نیاز به سیم‌کشی، برنامه‌نویسی را آغاز کنید.

GebraBit BU27006MUC یک ماژول سنسور‌ دیجیتال رنگ است که رنگ‌های قرمز، سبز، آبی (RGB) و اشعه مادون قرمز را تشخیص داده و آنها را به مقادیر دیجیتال تبدیل می کند و می تواند با ولتاژهای تغذیه “1V8” یا “3V3” که توسط انتخابگر جامپر “VCC SEL” قابل تنظیم است، کار کند.

ماژول GebraBit BU27006MUC با رابط I2C ارتباط برقرار می کند و دارای یک LED اختصاصی برای پین وقفه است.

ویژگی‌های ماژول GebraBit BU27006MUC

  • On Board, ON/OFF LED indicator
  • GebraBit Pin Compatible with GEBRABUS
  • It can be used as a daughter board of GebraBit MCU Modules
  • Featuring Castellated pad (Assembled as SMD Part)
  • Separatable screw parts to reduce the size of the board
  • Package: GebraBit small (36.29mm x 32.72mm)

پین‌های ماژول GebraBit BU27006MUC

پین های تغذیه

  • 3V3 و 1V8 : : این پین‌ها می توانند با توجه به وضعیت Jumper Selector “VCC SEL” ، تغذیه اصلی سنسور و سطح منطق(Logic Level) ارتباط دییجیتال(I2C ) سنسور را تامین کنند.
  • GND : این پین زمین مشترک برای تغذیه و سطح منطق(Logic Level) سنسور می باشد.

پین های I2C

  • SDA : این پین، پین دیتای ارتباط I2C می باشد، که به پین دیتای متناظر در میکروکنترلر(پردازنده) ، متصل می شود. با توجه به وضعیت جامپر VCC SEL، می توانید از سطح منطقی با ولتاژ 1V8 یا 3V3 استفاده کنید.
  • SCL : این پین، پین کلاک ارتباط I2C می باشد، که به پین کلاک متناظر در میکروکنترلر(پردازنده) ، متصل می شود. با توجه به وضعیت جامپر VCC SEL، می توانید از سطح منطقی با ولتاژ 1V8 یا 3V3 استفاده کنید.

پین وقفه

  • INT: پین Interrupt (وقفه) سنسور BU27006MUC بوده که با توجه به دیتاشیت سنسور، کاربر می تواند شرایط وقوع وقفه،حالات و روش های وقوع وقفه و … را تنظیم کند.

معرفی بخش های ماژول

سنسور BU27006MUC

سنسور BU27006MUC حسگر رنگی این ماژول است که در مرکز ماژول قرار گرفته و مدار آن طراحی شده است.

جامپرسلکتور VCC SEL

با توجه به وضعیت مقاومت‌ 0R  جامپر “VCC SEL” ولتاژ تغذیه اصلی ماژول بین “1V8” یا “3V3” تعیین می‌شود.

LED وقفه

یکLED  اختصاصی  برای پین وقفه روی ماژول در نظر گرفته شده است که با تغییر وضعیت وقفه با توجه به دیتاشیت سنسور، وضعیت LED نیز تغییر میکند.

LED تغذیه

با توجه به وضعیت جامپر VCC SEL و با اعمال ولتاژ به ماژول توسط پین مربوطه، LED ماژول روشن می شود.

اتصال به پردازنده

اتصال I2C با GebraBit STM32F303

برای اتصال I2C ماژول  BU27006MUC GebraBit به ماژول میکروکنترلرGebraBit STM32F303 بعد از تعریف کردن SDA و SCL رو پین های PB9 و PB8 (برای راحتی کار در STMCUBEMX)مراحل زیر را دنبال کنید:

  • پین “3V3” ماژول GebraBit BU27006MUC را به پین “3V3” خروجی ماژول میکروکنترلر متصل کنید.(سیم قرمز)
  • پین “GND” ماژول GebraBit BU27006MUC را به پین “GND” ماژول میکروکنترلر متصل کنید.(سیم سیاه)
  • پین “SCL” ماژول GebraBit BU27006MUC را به پین PB8 ماژول میکروکنترلر (SCL) متصل کنید.(سیم آبی)
  • پین “SDA” ماژول GebraBit BU27006MUC را به پین PB9 ماژول میکروکنترلر (SDA) متصل کنید.(سیم زرد)

توجه: با توجه به اینکه پین PA14 ماژول میکروکنترلرGebraBit STM32F303 برای پروگرام کردن میکروکنترلر استفاده میشود،تنظیم I2C بر روی پین های PA14 و PA15 در این ورژن مقدور نمی باشد،لذا در اتصال I2C به ماژول میکروکنترلرGebraBit STM32F303 در این ورژن ، ماژول  GebraBit BU27006MUC نمی تواند به صورت Pin to Pin بر روی آن قرار گیرد.

اتصال I2C با GebraBit ATMEGA32A

با توجه به اینکه پین های I2C میکروکنترلر ATMEGA32A بر اساس استاندارد GEBRABUS متناظر با پین های I2C  دیگر ماژول های GEBRABIT می باشد،  ماژول GebraBit BU27006MUC را به صورت Pin to Pin بر روی ماژول GebraBit ATMEGA32A قرار داده و به راحتی با ماژول GebraBit BU27006MUC  از طریق I2C ارتباط برقرار کنید:

توجه: در صورت استفاده از ماژول‌های میکروکنترلریGebraBit  توجه داشته باشید که جامپر سلکتورVCC SEL ماژول GebraBit BU27006MUC روی “3V3” باشد تا راحت تر بتوانید با گرفتن ولتاژ”3V3” از ماژول میکروکنترلری ، ماژول سنسور مورد نظر را راه اندازی کنید.

اتصال I2C با ARDUINO UNO

برای اتصال I2C ماژول GebraBit BU27006MUC به ARDUINO UNO مراحل زیر را دنبال کنید:

  • پین “3V3” ماژول GebraBit BU27006MUC را به پین “3V3” خروجی برد ARDUINO UNO متصل کنید.(سیم قرمز)
  • پین “GND” ماژول GebraBit BU27006MUC را به پین “GND” برد ARDUINO UNO متصل کنید.(سیم سیاه)
  • پین “SCL” ماژول GebraBit BU27006MUC را به پین A5 برد  ARDUINO UNO( (SCLمتصل کنید.(سیم آبی)
  • پین “SDA” ماژول GebraBit BU27006MUC را به پین A4 برد ARDUINO UNO( (SDAمتصل کنید.(سیم نارنجی)
نوع ماژول

ماژول تشخیص رنگ و IR

ولتاژ تغذیه

1V8, 3V3

نوع خروجی

I2C, Digital

محدوده کاری

50k lux

محدوده طول موج

~400 to ~1100 nm

پیک طول موج

560nm

جریان مصرفی

10 mA to 30 mA (Typ. 20 mA)

ابعاد

Gebra small(36.29mm x 32.72mm)

بهره

128X, 1X, 32X, 4X

دمای کاری

-40 to +85 °C

هدف این پروژه چیست؟

هدف این پروژه، BU27006MUCZ سنسور نور محیط را با یک Arduino برای اندازه‌گیری و پایش شدت نور در محیط‌های مختلف، واسط کردن است. این سنسور، با ارائه‌ی قرائت‌های دقیق در واحد lux، آن را برای کاربردهایی مانند کنترل خودکار روشنایی، تنظیم روشنایی صفحه‌نمایش و پایش محیطی مناسب می‌سازد. کاربران می‌توانند با خواندن داده‌های شدت نور به‌صورت real-time، سیستم‌هایی طراحی کنند که در محیط‌های هوشمند، با بهره‌وری انرژی بالا و قابلیت استفاده‌ی بهتر، به شرایط نوری متغیر پاسخ می‌دهند.

در این آموزش چه چیزهایی خواهیم آموخت؟

پیاده‌سازی پروژه‌های مبتنی بر سنسور برای کنترل خودکار روشنایی و پایش محیطی، و ارتقاء مهارت در ساخت سیستم‌هایی که بر اساس شدت نور واکنش نشان می‌دهند.

اتصال BU27006 سنسور نور محیط به Arduino و برقراری ارتباط از طریق I2C.

استفاده از یک library موجود برای سازگاری BU27006 با Arduino و کسب دانش در مورد پردازش داده‌ها از طریق I2C.

اندازه‌گیری سطح نور محیط با استفاده از سنسور به واحد lux و تفسیر داده‌ها برای کاربردهای عملی.

برای شروع این پروژه به چه چیزهایی نیاز داریم؟

برای اجرای این پروژه به سخت‌افزار و نرم‌افزار نیاز داریم. عناوین این سخت‌افزارها و نرم‌افزارها در جدول زیر به شما ارائه شده است و می‌توانید با کلیک بر روی هر یک، آن را تهیه/دانلود کرده و برای شروع آماده شوید.

سخت افزارهای مورد نیازنرمافزارهای مورد نیاز
Arduino ProgrammerArduino IDE
Arduino Development Board- ( Arduino UNO )
ماژول تشخیص رنگ دیجیتال Gebra BU27006MUC

GebraMS برای راحتی شما، کتابخانه‌های ویژه‌ای را برای اکثر پروژه‌های آردوینو آماده کرده است.
شما باید کتابخانه آماده شده توسط GebraMS را دانلود کرده و آن را به Arduino IDE خود اضافه کنید.

ابتدا، همان‌طور که در تصویر زیر دیده می‌شود، ماژول Gebra BU27006MUCZ را به Arduino UNO به این صورت متصل می‌کنیم:

سورس کد

کتابخانه پروژه (Library)

جبرابیت علاوه بر طراحی ماژولار انواع حسگرها و قطعات مجتمع، برای سهولت در نصب و توسعه نرم‌افزار توسط کاربران، مجموعه‌ای از کتابخانه‌های ساختاریافته و مستقل از سخت‌افزار را به زبان C ارائه می‌دهد. در این راستا، کاربران می‌توانند کتابخانه‌ی مربوط به ماژول مورد نظر خود را در قالب فایل‌های “.h” و “.c” دانلود کنند.

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

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

USER REGISTER MAP

نقشه رجیستر یا دستورات سنسور در این بخش تعریف شده‌اند:

C

/************************************************
 *              USER REGISTER MAP               *
 ***********************************************/
#define BU27006MUCZ_SYSTEM_CONTROL       0x40
#define BU27006MUCZ_MODE_CONTROL1        0x41
#define BU27006MUCZ_MODE_CONTROL2        0x42
#define BU27006MUCZ_MODE_CONTROL3        0x43
#define BU27006MUCZ_RED_DATA             0x50  // 2 byte
#define BU27006MUCZ_GREEN_DATA           0x52  // 2 byte
#define BU27006MUCZ_BLUE_DATA            0x54  // 2 byte
#define BU27006MUCZ_IR_DATA              0x56  // 2 byte
#define BU27006MUCZ_FLICKER_DATA         0x58  // 2 byte
#define BU27006MUCZ_FLICKER_COUNTER      0x5A
#define BU27006MUCZ_FIFO_LEVEL           0x5B
#define BU27006MUCZ_FIFO_DATA            0x5C  // 2 byte
#define BU27006MUCZ_MANUFACTURER_ID      0x92
#define BU27006MUCZ_ADDRESS              0x38
/*----------------------------------------------*
 *           USER REGISTER MAP End              *
 *----------------------------------------------*/

BU27006MUCZ _Ability Enum

این enum برای فعال‌سازی و غیرفعال‌سازی بخش‌های مختلف سنسور استفاده می‌شود:

C

 typedef enum Ability
 {
 	Disable = 0 ,
 	Enable
 }BU27006MUCZ_Ability;

BU27006MUCZ _Reset_Status Enum

با استفاده از این enum، وضعیت ریست سنسور تعیین می‌شود:

C

typedef enum
{
	FAILED = 0 ,
	DONE
}BU27006MUCZ_Reset_Status;

BU27006MUCZ_ RGB_Gain Enum

مقادیر این enum برای تنظیم تقویت‌کننده RGB سنسور استفاده می‌شوند:

C

 typedef enum RGB_Gain
 {
   RGB_GAIN_1X   = 0,
   RGB_GAIN_4X   = 1,
   RGB_GAIN_32X  = 2,
   RGB_GAIN_128X = 3,
 } BU27006MUCZ_RGB_Gain;

BU27006MUCZ_FLC_Gain Enum

مقادیر این enum برای تنظیم FLC gain سنسور استفاده می‌شوند:

C

 typedef enum FLC_Gain
  {
    FLC_GAIN_1X   = 0,
    FLC_GAIN_2X   = 1,
    FLC_GAIN_4X   = 2,
    FLC_GAIN_8X   = 3,
    FLC_GAIN_16X  = 4,
    FLC_GAIN_32X  = 5
  } BU27006MUCZ_FLC_Gain;

BU27006MUCZ_Interrupt_Channel Enum

برای تنظیم منبع وقفه در سنسور، از مقادیر این enum استفاده می‌شود:

C

 typedef enum Interrupt_Channel
 {
 	CLEAR_CHANNEL = 0 ,
 	ALS_CHANNEL
 }BU27006MUCZ_Interrupt_Channel;

BU27006MUCZ_Interrupt_Mode Enum

با استفاده از این enum، نوع وقفه سنسور انتخاب می‌شود:

C

 typedef enum Interrupt_Mode
 {
 	 INTERRUPT_DISABLE  ,
   RGB_IR_COMPELETION ,
   FLICKER_COMPELETION,
   FIFO_64_DATA_READY
 } BU27006MUCZ_Interrupt_Mode;

BU27006MUCZ_RGB_Measurement_Mode Enum

برای مشخص کردن حالت اندازه‌گیری RGB سنسور، از مقادیر این enum استفاده می‌شود:

C

 typedef enum RGB_Measurement_Mode
 {
 	_55_mS_MODE  = 1,
  _100_mS_MODE = 2
 } BU27006MUCZ_RGB_Measurement_Mode;

BU27006MUCZ_FLC_Measurement_Mode Enum

مقادیر این enum برای مشخص کردن حالت اندازه‌گیری FLC سنسور استفاده می‌شوند:

C

 typedef enum FLC_Measurement_Mode
 {
   _1_KHZ_MODE,
   _2_KHZ_MODE
 } BU27006MUCZ_FLC_Measurement_Mode;

BU27006MUCZ_Data_Status Enum

مقادیر این enum تعیین می‌کنند که داده‌های خوانده شده به‌روزرسانی شوند یا خیر:

C

 typedef enum Data_Status
 {
 	NOT_UPDATED = 0 ,
 	UPDATED
 }BU27006MUCZ_Data_Status;

BU27006MUCZ_Interrupt_Status Enum

مقادیر این Enum برای اطلاع از اینکه وقفه در سنسور انجام شده است یا خیر استفاده می‌شوند.

C

 typedef enum Interrupt_Status
 {
 	INTERRUPT_NOT_FULFILLED = 0 ,
 	INTERRUPT_FULFILLED
 }BU27006MUCZ_Interrupt_Status;

BU27006MUCZ struct

تمام خصوصیات سنسور، ضرایب کالیبراسیون و داده‌های سنسور در این «struct» تعریف شده‌اند و همه اطلاعات و تنظیماتی که روی سنسور اعمال می‌شوند در این «structure» ذخیره می‌شوند و می‌توانید تغییرات هر بخش از سنسور را در محیط «Debug Session» مشاهده کنید.

C

 typedef	struct BU27006MUCZ
  {
  	  uint8_t                       	 Register_Cache;
  	  uint8_t				             PART_ID;
  	  uint8_t							 MANUFACTURER_ID;
  	  BU27006MUCZ_Reset_Status			 RESET;
  	  BU27006MUCZ_Ability                RGB_IR;
  	  BU27006MUCZ_Ability                FLC;
  	  BU27006MUCZ_RGB_Gain               RGB_GAIN;
 	  BU27006MUCZ_RGB_Measurement_Mode   RGB_MEASUREMENT_MODE;
 	  BU27006MUCZ_FLC_Gain               FLC_GAIN;
 	  BU27006MUCZ_FLC_Measurement_Mode   FLC_MEASUREMENT_MODE;
 	  float								 ALS_RESOLUTION_TIME;
 	  BU27006MUCZ_Data_Status            RGB_DATA;
 	  BU27006MUCZ_Data_Status            FLC_DATA;
 	  BU27006MUCZ_Interrupt_Mode         INTERRUPT_MODE;
       BU27006MUCZ_Interrupt_Channel      INTERRUPT_CHANNEL;
 	  uint8_t         					 FLICKER_COUNTER;
 	  uint8_t                            FIFO_LEVEL;
 	  BU27006MUCZ_Interrupt_Status		 INTERRRUPT_STATUS;
 	  uint32_t                        	 INTERRUPT_UPPER_THRESHOLD;
 	  uint32_t                           INTERRUPT_LOWER_THRESHOLD;
 	  uint8_t 							 REGISTER_DATA[REGISTER_DATA_BUFFER_SIZE];
 	  uint16_t                           RED_DATA;
 	  uint16_t                           GREEN_DATA;
 	  uint16_t               			 BLUE_DATA;
 	  uint16_t               			 IR_DATA;
 	  uint16_t               			 FLICKER_DATA;
 	  uint16_t 							 FIFO_DATA[FIFO_DATA_BUFFER_SIZE];
         float 							 RED_LUX;
 		float 							 GREEN_LUX;
 		float 							 BLUE_LUX;
 }GebraBit_BU27006MUCZ;

Declaration of functions

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

C

 extern void GB_BU27006MUCZ_Read_Reg_Data(uint8_t regAddr,  uint8_t *data)	;
  extern void GB_BU27006MUCZ_Burst_Read(uint8_t regAddr,  uint8_t *data, uint16_t byteQuantity);
  extern void GB_BU27006MUCZ_Read_Reg_Bits (uint8_t regAddr, uint8_t start_bit, uint8_t len, uint8_t* data);
  extern void GB_BU27006MUCZ_Write_Command( uint8_t cmd);
  extern void GB_BU27006MUCZ_Write_Reg_Data(uint8_t regAddr,  uint8_t data)	;
  extern void GB_BU27006MUCZ_Burst_Write(uint8_t regAddr,  uint8_t *data, uint16_t byteQuantity)								;
  extern void GB_BU27006MUCZ_Write_Reg_Bits(uint8_t regAddr, uint8_t start_bit, uint8_t len, uint8_t data);
  /********************************************************
   *       Declare BU27006MUCZ Configuration Functions         *
  ********************************************************/
 extern void GB_BU27006MUCZ_Soft_Reset ( GebraBit_BU27006MUCZ * BU27006MUCZ )  ;
 extern void GB_BU27006MUCZ_RGB_Gain ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_RGB_Gain gain ) ;
 extern void GB_BU27006MUCZ_RGB_Measurement_Mode ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_RGB_Measurement_Mode mode )   ;
 extern void GB_BU27006MUCZ_FLC_Measurement_Mode ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_FLC_Measurement_Mode mode )   ;
 extern void GB_BU27006MUCZ_FLC_Gain ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_FLC_Gain gain ) ;
 extern void GB_BU27006MUCZ_RGB_IR ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_Ability rgb )   ;
 extern void GB_BU27006MUCZ_FLC ( GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_Ability flc );
 extern void GB_BU27006MUCZ_Interrupt(GebraBit_BU27006MUCZ * BU27006MUCZ , BU27006MUCZ_Interrupt_Mode mode)  ;
 extern void GB_BU27006MUCZ_Check_Data_Updated ( GebraBit_BU27006MUCZ * BU27006MUCZ )  ;
 extern void GB_BU27006MUCZ_Part_ID ( GebraBit_BU27006MUCZ * BU27006MUCZ  )  ;
 extern void GB_BU27006MUCZ_Manufacture_ID ( GebraBit_BU27006MUCZ * BU27006MUCZ  )  ;
 extern void GB_BU27006MUCZ_Flicker_Counter ( GebraBit_BU27006MUCZ * BU27006MUCZ ) ;
 extern void GB_BU27006MUCZ_FIFO_Level ( GebraBit_BU27006MUCZ * BU27006MUCZ ) ;
 extern void GB_BU27006MUCZ_Read_FIFO_Flicker_Data ( GebraBit_BU27006MUCZ * BU27006MUCZ );
 extern void GB_BU27006MUCZ_initialize( GebraBit_BU27006MUCZ * BU27006MUCZ )  ;
 extern void GB_BU27006MUCZ_Configuration(GebraBit_BU27006MUCZ * BU27006MUCZ)  ;
 extern void GB_BU27006MUCZ_Read_RGB_IR_FLICKER(GebraBit_BU27006MUCZ * BU27006MUCZ);
 extern void GB_BU27006MUCZ_Color_Luminosity(GebraBit_BU27006MUCZ * BU27006MUCZ);
 extern void GB_BU27006MUCZ_Get_Data(GebraBit_BU27006MUCZ * BU27006MUCZ);

فایل منبع Gebra_BU27006MUCZ.c

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


برنامه نمونه در Arduino

پس از اتصال ماژول به Arduino و افزودن کتابخانه به IDE، به مسیر زیر بروید:
File > Examples > Gebra_BU27006MUCZ > RGB


توضیح فایل نمونه

enum‌ها و توابع مورد نیاز ماژول Gebra BU27006MUCZ به ساختارها اضافه شده‌اند. در بخش بعدی، یک متغیر به نام BU27006MUCZ از نوع ساختار Gebra_BU27006MUCZ (که در هدر Gebra_BU27006MUCZ تعریف شده و در بخش توضیحات کتابخانه شرح داده شده است) برای پیکربندی ماژول Gebra BU27006MUCZ تعریف شده است:

C

GebraBit_BU27006MUCZ BU27006MUCZ;

در بخش بعدی کد نوشته شده، با استفاده از توابع
GB_BU27006MUCZ_initialize(&BU27006MUCZ_Module)
و
GB_BU27006MUCZ_Configuration(&BU27006MUCZ_Module)
ماژول Gebra BU27006MUCZ را تنظیم می‌کنیم و در نهایت در بخش حلقه while برنامه، داده‌ها از سنسور خوانده شده و مقادیر RED، BLUE، GREEN، IR و Flicker به‌صورت پیوسته دریافت می‌شوند:

C

void setup() {
    Wire.begin();           // Initialize the I2C bus
    Serial.begin(9600);     // Initialize serial communication for debugging

    GB_BU27006MUCZ_initialize(&BU27006MUCZ); // Initialize the BU27006MUCZ sensor
    GB_BU27006MUCZ_Configuration(&BU27006MUCZ); // Configure the BU27006MUCZ sensor
}

void loop() {
    GB_BU27006MUCZ_Get_Data(&BU27006MUCZ); // Read data from the sensor

    Serial.print("RED:   ");
    Serial.print(BU27006MUCZ.RED_LUX);
    Serial.println(" lx");

    Serial.print("GREEN: ");
    Serial.print(BU27006MUCZ.GREEN_LUX);
    Serial.println(" lx");

    Serial.print("BLUE:  ");
    Serial.print(BU27006MUCZ.BLUE_LUX);
    Serial.println(" lx");

    delay(2000); // Delay between readings
}

The Sample file code text:

C

#include "GebraBit_BU27006MUCZ.h"

GebraBit_BU27006MUCZ BU27006MUCZ;

void setup() {
    Wire.begin();           // Initialize the I2C bus
    Serial.begin(9600);     // Initialize serial communication for debugging

    GB_BU27006MUCZ_initialize(&BU27006MUCZ); // Initialize the BU27006MUCZ sensor
    GB_BU27006MUCZ_Configuration(&BU27006MUCZ); // Configure the BU27006MUCZ sensor
}

void loop() {
    GB_BU27006MUCZ_Get_Data(&BU27006MUCZ); // Read data from the sensor

    Serial.print("RED:   ");
    Serial.print(BU27006MUCZ.RED_LUX);
    Serial.println(" lx");

    Serial.print("GREEN: ");
    Serial.print(BU27006MUCZ.GREEN_LUX);
    Serial.println(" lx");

    Serial.print("BLUE:  ");
    Serial.print(BU27006MUCZ.BLUE_LUX);
    Serial.println(" lx");

    delay(2000); // Delay between readings
}

Arduino خود را به کامپیوتر وصل کنید و برد Arduino خود را انتخاب کنید.

سپس کد نمونه را تأیید (Verify) و آپلود (Upload) کنید.

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

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

اگر هر یک از اسناد فنی ناقص یا اشتباه است، لطفاً به ما اطلاع دهید

با نظرات خود به تیم جبرا در بهبود کیفیت کمک کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توجه!

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

برای اطلاع دقیق از مقادیر کاری و حداکثر مقادیر مجاز آی‌سی‌ها (IC)، کاربران باید حتماً به دیتاشیت اصلی و رسمی آن قطعات مراجعه کنند.

سبد خرید
پیمایش به بالا