- 29a Bùi Xuân Phái, P.Tây Thạnh, Quận Tân Phú, TPHCM
- linhkienduchuy2018@gmail.com
- 0942954739
Giao miễn phí trong nội thành TPHCM đối với đơn hàng trên 1 triệu đồng
Tặng ngay 50.000đ cho đơn hàng trên 2 triệu đồng
GY-33 có cảm biến nhận dạng LED và RGB tích hợp. Ánh sáng phản xạ từ vật thể vào cảm biến mô-đun. Ánh sáng xuyên qua bộ lọc chặn IR được nhận dạng bằng tỷ lệ RGB của nó. Các giá trị này sau đó được chuyển đổi thành tín hiệu tương tự và được gửi đến vi điều khiển bằng giao thức truyền thông IIC hoặc UART.
SƠ ĐỒ CHÂN:
Pin 1: VCC Nguồn cấp ừ 3-5V
Pin 2: CT là chân TX khi ở chế độ UART/ là SCL khi ở chế độ I2C
Pin 3: DR là chân RX khi ở chế độ UART/ là SDA khi ở chế độ I2C
Pin 4: GND Nguồn cấp 0V
Pin 5: NC Không sử dụng
Pin 6: INT Chân interrupt
Pin 7: SDA I2C có hiệu lực khi chân S1 = 0 (kết nối đến GND)
Pin 8: SCL I2c có hiệu lực khi chân S1 = 0 (kết nối đến GND)
Pin 9: S0 Khi S0 = 0; Pin 2 = SCL; Pin 3 = SDA
Khi S0 = 1; Pin 2 = TX; Pin 3 = RX
Pin 10: S1 Khi S1=0; Pin 7 = SCL, PIN 8 = SDA
THÔNG SỐ KỸ THUẬT:
Phạm vi đo: RGB 0~255;
Tần số: 10 Hz;
Điện áp làm việc: 3~5V;
Dòng điện làm việc: 15mA;
Nhiệt độ làm việc: -20° ~ 85°;
Nhiệt độ lưu trữ: -40° ~ 125°;
Kích thước: 24,3mm x 26,7mm;
Chip cảm biến: TCS34725.
GIAO TIẾP GY-33 VỚI ARDUINO:
THAM KHẢO CODE GIAO TIẾP VỚI ARDUINO:
#include <i2cmaster.h> #define uint16_t unsigned int typedef struct { uint16_t Red; uint16_t Green; uint16_t Blue; uint16_t Clear; } RGB; unsigned char Re_buf; unsigned char sign=0; RGB rgb; uint16_t CT=0,Lux=0; byte color=0,rgb_data[3]={0}; void setup() { Serial.begin(115200); i2c_init(); delay(1); } void loop() { unsigned char data[9]={0}; if(!sign) { iic_read(0x00,data,8); rgb.Red=(data[0]<<8)|data[1]; rgb.Green=(data[2]<<8)|data[3]; rgb.Blue=(data[4]<<8)|data[5]; rgb.Clear=(data[6]<<8)|data[7]; Serial.print("Red: "); Serial.print(rgb.Red); Serial.print(",Green: "); Serial.print( rgb.Green); Serial.print(",Blue"); Serial.print( rgb.Blue); Serial.print(",Clear"); Serial.println(rgb.Clear); iic_read(0x08,data,4); Lux=(data[0]<<8)|data[1]; CT=(data[2]<<8)|data[3]; Serial.print("CT:"); Serial.print(CT); Serial.print(",Lux:"); Serial.println( Lux); iic_read(0x0c,data,3); rgb_data[0]=data[0]; rgb_data[1]=data[1]; rgb_data[2]=data[2]; Serial.print("r:"); Serial.print( rgb_data[0]); Serial.print(",g:"); Serial.print( rgb_data[1]); Serial.print(",b:"); Serial.println( rgb_data[2]); iic_read(0x0f,data,1); color=data[0]; Serial.print(",color:"); Serial.println( color,HEX); } if(sign==1) { iic_read(0x10,&data[8],1); i2c_start_wait(0xb4); i2c_write(0x10); i2c_write(0x31); // i2c_write((data[8]|0x01)); i2c_stop(); sign=3; } delay(200); } void iic_read(unsigned char add,unsigned char *data,unsigned char len) { i2c_start_wait(0xb4); i2c_write(add); i2c_start_wait(0xb5); while(len-1) { *data++=i2c_readAck(); len--; } *data=i2c_readNak(); i2c_stop(); } void serialEvent() { while (Serial.available()) { Re_buf=(unsigned char)Serial.read(); if (Re_buf=='a') sign=0; if (Re_buf=='b') sign=1; Re_buf=0; } }
Bình luận