像Cuderm的sebutape®和courage-khazaka electronic的sebumeter®
但是……╮(╯_╰)╭
Sebutape只能得知皮膚油的程度~沒有一個確切的數據
Sebumeter儀器看起來又有點麻煩、有點複雜而且也不算便宜
所以想說就試著改進這些缺點
來DIY一台簡單、便宜又好用的油度檢測計吧!!!
----程式碼----
#include <wire.h> #include <TSL2561.h> #include <liquidcrystal_i2c.h> // Example for demonstrating the TSL2561 library - public domain! // connect SCL to analog 5 // connect SDA to analog 4 // connect VDD to 3.3V DC // connect GROUND to common ground // ADDR can be connected to ground, or vdd or left floating to change the i2c address // The address will be different depending on whether you let // the ADDR pin float (addr 0x39), or tie it to ground or vcc. In those cases // use TSL2561_ADDR_LOW (0x29) or TSL2561_ADDR_HIGH (0x49) respectively TSL2561 tsl(TSL2561_ADDR_FLOAT); //int ledPinR = 11; // 這裡設定所要閃爍的LED燈腳位 //int ledPinG = 9; //int ledPinB = 6; LiquidCrystal_I2C lcd(0x3F,20,4); void setup(void) { // pinMode(ledPinR, OUTPUT); // 這裡設定所要輸出的PIN腳模式 // pinMode(ledPinG, OUTPUT); // pinMode(ledPinB, OUTPUT); // digitalWrite(ledPinR, HIGH); // digitalWrite(ledPinG, HIGH); // digitalWrite(ledPinB, HIGH); lcd.init(); // Print a message to the LCD. lcd.backlight(); lcd.setCursor(3,0); lcd.print("Hello, world!"); lcd.setCursor(2,1); lcd.print("ToppyBio.Com. Hi"); delay(1500); lcd.clear(); lcd.setCursor(0,0); lcd.print("Fu:"); lcd.setCursor(8,0); lcd.print("Vi:"); lcd.setCursor(12,1); lcd.print("IR:"); lcd.setCursor(0,1); lcd.print("Lux:"); Serial.begin(9600); if (tsl.begin()) { Serial.println("Found sensor"); } else { Serial.println("No sensor?"); while (1); } // You can change the gain on the fly, to adapt to brighter/dimmer light situations //tsl.setGain(TSL2561_GAIN_0X); // set no gain (for bright situtations) tsl.setGain(TSL2561_GAIN_16X); // set 16x gain (for dim situations) // Changing the integration time gives you a longer time over which to sense light // longer timelines are slower, but are good in very low light situtations! tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS); // shortest integration time (bright light) //tsl.setTiming(TSL2561_INTEGRATIONTIME_101MS); // medium integration time (medium light) //tsl.setTiming(TSL2561_INTEGRATIONTIME_402MS); // longest integration time (dim light) // Now we're ready to get readings! } void loop(void) { // Simple data read example. Just read the infrared, fullspecrtrum diode // or 'visible' (difference between the two) channels. // This can take 13-402 milliseconds! Uncomment whichever of the following you want to read uint16_t x = tsl.getLuminosity(TSL2561_VISIBLE); //uint16_t x = tsl.getLuminosity(TSL2561_FULLSPECTRUM); //uint16_t x = tsl.getLuminosity(TSL2561_INFRARED); Serial.println(x, DEC); // More advanced data read example. Read 32 bits with top 16 bits IR, bottom 16 bits full spectrum // That way you can do whatever math and comparisons you want! uint32_t lum = tsl.getFullLuminosity(); uint16_t ir, full; ir = lum >> 16; full = lum & 0xFFFF; // ir= Serial.print("IR: "); Serial.print(ir); Serial.print("\t\t"); Serial.print("Full: "); Serial.print(full); Serial.print("\t"); Serial.print("Visible: "); Serial.print(full - ir); Serial.print("\t"); Serial.print("Lux: "); Serial.println(tsl.calculateLux(full, ir)); lcd.setCursor(2,0); lcd.print(full); lcd.setCursor(8,0); lcd.print(full - ir); lcd.setCursor(14,0); lcd.print(ir); lcd.setCursor(5,1); lcd.print(tsl.calculateLux(full, ir)); delay(1000); lcd.setCursor(3,0); lcd.print(" "); lcd.setCursor(11,0); lcd.print(" "); lcd.setCursor(14,1); lcd.print(" "); lcd.setCursor(3,1); lcd.print(" "); }
請問是否可以承接外銷訂單
回覆刪除我歐洲客戶對此儀器很有興趣