2024年11月18日月曜日

コード置き場(M5 AtomS3 Lite+Ambient Light Unit)

https://simblo.net/u/bdynFG/post/143923からリンク。投稿先ではコードブロックの処理がエラーになるので投稿できなかったため。


#include <M5AtomS3.h>
#include <M5_DLight.h>

M5_DLight sensor;
uint16_t lux;

void setup() {
    AtomS3.begin(true);
    AtomS3.dis.setBrightness(100); // set brightness: 0~255, default:100 
    //Serial.begin(9600);
    //Serial.println("Sensor begin.....");
    USBSerial.begin(9600);
    USBSerial.println("Sensor begin.....");
    sensor.begin(&Wire, (uint8_t)2, (uint8_t)1);    // I2Cの割り当てピンの設定。SDA=2, SDL=1に設定する。デフォルトSDA=38, SDL=39らしい。
    sensor.setMode(CONTINUOUSLY_H_RESOLUTION_MODE);
}

char info[40];

CRGB dispColor( uint8_t r, uint8_t g, uint8_t b) {
    return ( CRGB)( ( r << 16 ) | ( g << 8 ) | b);
}
void loop() {
    lux = sensor.getLUX();
    sprintf(info, "lux: %d", lux);
    // luxが100を超えたら、LEDを白点灯、それより下なら青点灯。
    if ( lux > 100 ) {
        AtomS3.dis.drawpix(dispColor( 255, 255, 255)); // WHITE
    } else {
        AtomS3.dis.drawpix(dispColor( 0, 0, 255)); // BLUE
    }
    AtomS3.update();
    USBSerial.println(info);    // 現在のlux値をUSBシリアルポートに出力。
    delay(500);
}