12774| 5
|
[进阶] 针对CM32181数字光线传感芯片开发的Arduino驱动库 |
【背景】 因工作需要单片机测试Capella Micro公司的CM32181数字环境光线传感器, 一块小PCBA。 此芯片为3.3V供电和3.3V I2C总线,支持polling和interrupt双模式操作。 此芯片在Arduino圈较少见,调试OK后顺便整成了一个Arduino驱动库上传到github上 方便大家使用。很希望以后能有更多的人为Arduino兼容丰富芯片做努力! 【驱动库github地址】 https://github.com/ShineHua2017/CM32181_arduino 【芯片Data Sheet地址】 http://www.ibselectronics.com/ibsstore/datasheet/CM32181A3OP.pdf 【调试环境】 UNO x 1 5V-3.3V IO电平转换板(需要SCL,SDA两路) x 1 4.7K电阻(SCL,SDA上拉用) x 2 芯片传感器PCBA的FFC接口转排针小板 x 1 【示例代码】 [mw_shl_code=c,true]/* Arduino demo code for control Light Sensor chip -- CM32181 * Setup chip on polling mode and read Lux value * * The circuit: * Ardunio CM32181 * SDA <---> SDA * SCL <---> SCL * * library coding based on TWI library * * Written by Shine Hua * Email Address: 20497409@qq.com huashine2013@gmail.com * */ #include <CM32181_arduino.h> //CM32181 ADDR pin pull high to select address 0x48 //or low to select address 0x10 CM32181 cm(0x10); //when ADDR pin connect GND void setup() { boolean error = false; uint16_t chip_id = 0; //uint16_t chip_status = 0; Serial.begin(9600); error = cm.init_chip(); if(error == false){ Serial.println("Not found chip device or init error!"); while(true) {} } chip_id = cm.get_chip_ID(); if(chip_id != 0x81){ //chip ID must be 0x81 Serial.println("unknown chip!"); while(true) {} } //chip_status = cm.get_chip_status(); //error = cm.powerdown_chip(); //error = cm.powerup_chip(); } void loop() { uint16_t get_data = cm.read_sensor_raw(); //This is sensor raw data, not lux value. you need trans. String desc = "LUX raw data:"; desc += get_data; Serial.println(desc); delay(5); }[/mw_shl_code] 【细节部分】 |
本帖最后由 ShineHua2017 于 2017-1-12 20:28 编辑 Rockets 发表于 2017-1-12 14:18 输出的值 x 0.042就可以得到真实的光照度Lux ~! :) datasheet里有讲CM3218输出是raw data值 0~65535并不是Lux值 换算公式如下: Lux = 分辨率 × step 这个step就是CM3218输出的raw data,而分辨率根据设定寄存器的不同ALS_SM灵敏度,ALS_IT 积分时间,PSM省电模式,对应不同值,datasheet里有对应表格可查 我的library里初寄存器初始化状态为ALS_SM = 01 ALS_IT = 0000 PSM = 00 则分辨率为0.042 抱歉ALS_IT设成1100datasheet里查不到,我github刚有更新了库文件设为为0000 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed