ผมพยามใช้ LCD แสดงผลโดยใช้ได้ปกติ แต่ผมเปลียน LCD รุ่นเดียวกันแต่กับไม่แสดงผล. ผมลองต่อ LCD ตัวใหม่ อีก 2 ตัวใหม่ก็ไม่ได้ (ด้านหลังบอร์ด I2C จะมีจัมเปอร์ให้เราบัดกรี 3 จุดคือ A0, A1, A2 ก็ทำเหมือนตัวแรกที่ใช้งานได้ แต่ก็ไใ่แสดงผลครับ) ผมใช้กับ Arduino Uno R3 ครับ
code
#include <MapFloat.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
float WATERPIN = 12;
float sensorPin = A0;
float sensorValue = 0.0;
float percentValue = 0.0;
float Max = 70.0;
float Min = 20.0;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
pinMode(WATERPIN, OUTPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println("\n\nAnalog Value: ");
Serial.println(sensorValue);
percentValue = mapFloat(sensorValue, 1024.00, 200.00, 0.00, 100.00);
if (percentValue >= Min)
{
digitalWrite(WATERPIN, HIGH);
}
if(percentValue <= Max)
{
digitalWrite(WATERPIN, LOW);
}
Serial.print("\nPercentValue: ");
Serial.print(percentValue);
Serial.print("%");
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" L=20% H=70%");
lcd.setCursor(0,1);
lcd.print("Moisture= ");
lcd.print(percentValue);
lcd.print("%");
delay(1000);
}
ปัญหาการใช้จอ LCD I2C ครับ ใครรู้บ้างช่วยที
code
#include <MapFloat.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
float WATERPIN = 12;
float sensorPin = A0;
float sensorValue = 0.0;
float percentValue = 0.0;
float Max = 70.0;
float Min = 20.0;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
pinMode(WATERPIN, OUTPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println("\n\nAnalog Value: ");
Serial.println(sensorValue);
percentValue = mapFloat(sensorValue, 1024.00, 200.00, 0.00, 100.00);
if (percentValue >= Min)
{
digitalWrite(WATERPIN, HIGH);
}
if(percentValue <= Max)
{
digitalWrite(WATERPIN, LOW);
}
Serial.print("\nPercentValue: ");
Serial.print(percentValue);
Serial.print("%");
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" L=20% H=70%");
lcd.setCursor(0,1);
lcd.print("Moisture= ");
lcd.print(percentValue);
lcd.print("%");
delay(1000);
}