#include <LiquidCrystal_I2C.h> //MEMASUKAN LIBRARY
LiquidCrystal_I2C lcd(0x27,16,2);
#define Tegangan_ADC 5000.0 // in millivolt
#define Resolusi 1024.0
#define LM35 A0
int nilai_Adc ;
int mV ;
float suhu_celsius;
float suhu_fahrenheit;
char * LargeText = " RAFIF PUTRA HADITAMA EK2D/16 ";
int iLineNumber = 0;
int iCursor = 0;
byte suhu1[] =
{
B00000,
B01110,
B01010,
B01010,
B01010,
B10001,
B10001,
B01110
};
byte suhu2[] = {
B00000,
B01110,
B01110,
B01110,
B01110,
B11111,
B11111,
B01110
};
void setup() {
lcd.init(); //MENGAKTIFKAN LCD
lcd.backlight(); //MENGAKTIFKAN BACKLIGHT
lcd.setCursor(4,0);
lcd.print("SENSOR &");
lcd.setCursor(3,1);
lcd.print("TRANDUSER");
delay(1500);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("SENSOR SUHU");
lcd.setCursor(4,1);
lcd.print("LM 35");
delay(1500);
lcd.clear();
lcd.createChar(1, suhu1);
lcd.createChar(2, suhu2);
pinMode(LM35, INPUT);
}
void loop() {
nilai_Adc = analogRead(LM35);
mV = nilai_Adc * (Tegangan_ADC / Resolusi);
suhu_celsius = mV / 10;
suhu_fahrenheit = suhu_celsius * 9 / 5 + 32;
{
UpdateLCDDisplay();
lcd.setCursor(0,1);
lcd.write(1);
lcd.print(" SUHU: ");
lcd.print(suhu_celsius);
lcd.print("C ");
lcd.write(2);
delay(500);
}
{
UpdateLCDDisplay();
lcd.setCursor(0,1);
lcd.write(2);
lcd.print(" SUHU: ");
lcd.print(suhu_celsius);
lcd.print("C ");
lcd.write(1);
delay(500);
}
}
void UpdateLCDDisplay(){
int iLenOfLargeText = strlen(LargeText); // Calculate lenght of string.
if (iCursor == (iLenOfLargeText - 1) ) // Reset variable for rollover effect.
{
iCursor = 0;
}
//lcd.clear();
lcd.setCursor(0,iLineNumber);
if(iCursor < iLenOfLargeText - 16) // This loop exicuted for normal 16 characters.
{
for (int iChar = iCursor; iChar < iCursor + 16 ; iChar++)
{
lcd.print(LargeText[iChar]);
}
}
else
{
for (int iChar = iCursor; iChar < (iLenOfLargeText - 1) ; iChar++) // This code takes care of printing charecters of current string.
{
lcd.print(LargeText[iChar]);
}
for (int iChar = 0; iChar <= 16 - (iLenOfLargeText - iCursor); iChar++) // Reamining charecter will be printed by this loop.
{
lcd.print(LargeText[iChar]);
}
}
iCursor++;
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL