ทำไมผมแสดงค่าLUX บนจอ LCD แล้วค่ามันเพี้ยนอะคับ
มันไม่ตรงกับ Serial.print อะครับ
#include <BH1750FVI.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
BH1750FVI LightSensor(BH1750FVI::k_DevModeContLowRes);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
Serial.begin(9600);
lcd.begin();
LightSensor.begin();
}
void loop()
{
int lux = LightSensor.GetLightIntensity();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lux");
lcd.setCursor(7,0);
lcd.print(lux);
delay(100);
}
เช็คว่าเซนเซอร์แสงทำงานถูกต้อง เช็คการแสดงข้อความออกจอ lcd ถูกต้อง
จากที่แจ้ง 2 ส่วนนี้ปกติ มาดูที่โคด
ส่วนโคดไม่น่ามีปัญหา อาจจะแสดงผลเร็วเกินไป ค่าที่แสดง serial กับค่าจอ lcd จึงเป็นคนละค่ากัน ลองหน่วงเวลาประมาณ 3 วินาทีทดสอบครับ delay(3000);
ตามรูปน่าจะเป็นเพราะข้อมูลเก่าไม่ได้ถูกลบ
เพิ่มโคดเคลียร์จอ lcd ก่อนสั่งให้แสดงข้อความครับ