#include #define LCD_ADRS 0x3E #define TEMP_SENSOR 3 // Analog port 3 int ans, tv, temp; char moji[]="Temperature....."; char s[]=" "; //SCL = A5:LCD No.2 SDA=A4:LCD No.3 void setup() { Wire.begin(); init_LCD(); Serial.begin(9600); } void loop() { ans = analogRead(TEMP_SENSOR); tv = map(ans, 0, 1023, 0, 5000); temp = map(tv, 300, 1600, -30, 100); Serial.println(temp); sprintf(s, "temp = %2d", temp); s[9]=0xDF; s[10]='C'; writeCommand(0x01); //Clear Display writeCommand(0x80); //1st Line top for(int i=0; i<16; i++) { writeData(moji[i]); } writeCommand(0x40+0x80); //2nd Line top for(int i=0; i<16; i++) { writeData(s[i]); } delay(1000); } void writeData(byte t_data) { Wire.beginTransmission(LCD_ADRS); Wire.write(0x40); Wire.write(t_data); Wire.endTransmission(); delay(1); } void writeCommand(byte t_command){ Wire.beginTransmission(LCD_ADRS); Wire.write(0x00); Wire.write(t_command); Wire.endTransmission(); delay(10); } void init_LCD() { delay(100); writeCommand(0x38); delay(20); writeCommand(0x39); delay(20); writeCommand(0x14); delay(20); writeCommand(0x73); delay(20); writeCommand(0x56); // 3.3V //writeCommand(0x52); // 5V delay(20); writeCommand(0x6C); delay(20); writeCommand(0x38); delay(20); writeCommand(0x01); delay(20); writeCommand(0x0C); delay(20); }