Malam sebelum sidang TA, kali ini saya akan menjelaskan mengenai bagaimana cara mengakses LCD TFT menggunakan Arduino Mega, Lcd TFT yang dipakai adalah LCD TFT 2.2 ukuran 240*320. pada percobaan kali ini saya hanya menampilkan count down saja dan juga beberapa tulisan yang menjelaskan letak dan warnanya. Yang harus diperhatikan dalam bermain LCD TFT ini adalah konfigurasi pin dan level tegangannya, jangan menggunakan level tegangan 5v, gunakanlah level tegangan 3,3 volt sesuai dengan datasheet. Pada contoh ini digunakan IC CD4050 sebagai level shifter atau menurunkan level tegangan dari 5v menjadi 3,3 volt. alasan mengapa menggunakan Arduino mega karena daya tampung Arduino tipe ini lebih besar dibanding Arduino UNO jadi untuk mengembangkan program lebih banyak akan terasa mudah. untuk lebih jelasnya berikut adalah skematik dan programnya.
a. Arduino Mega
c. Konfigurasi LCD TFT ke Arduino Mega
Pada contoh menggunakan Arduino Uno tapi pasangkan sesuai Arduino Mega
Sumber : http://gordonsprojects.blogspot.com/2014/04/arduino-tft-serial-spi-22-ili9341.html
d. Program Arduino IDE Count Down
//download library di link berikut lalu ekstrak di folder library Arduino
//http://www.4shared.com/zip/GEl6qr4_ba/UTFT.html
#include <memorysaver.h>
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
int hours = 24;
int minutes = 0;
int count=0;
UTFT myGLCD(TFT01_22SP,11,13,5,4,6);
void setup()
{
// initialize the serial communication:
Serial.begin(9600);
Serial.println("Starting 24 countdown");
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
}
void displayDigits( int value , int x , int y ) {
String strValue = (value<10 ? "0" + String(value): String(value));
myGLCD.print(strValue , x, y );
}
void loop()
{
myGLCD.print("Text rotation", 0, 0);
myGLCD.setColor(0, 0, 255);
myGLCD.print("Arduino", 0, 16, 0);
myGLCD.print("Arduino", 319, 0, 90);
myGLCD.print("Arduino", 319, 239, 180);
myGLCD.print("Arduino", 0, 239, 270);
myGLCD.setColor( 255 , 0 , 0 );
myGLCD.print("Hello World", 80 , 160 , 0);
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.print(String(hours) , 100, 90 );
myGLCD.print(String(minutes) , 180 , 90);
while( true ) {
count++;
if( count%10000==0 ) {
Serial.println("Update");
Serial.flush();
if (--minutes<0) {
minutes=60;
if(--hours<0) {
hours=24;
}
}
displayDigits( hours , 100, 90);
displayDigits( minutes, 180 , 90);
}
}
}
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
int hours = 24;
int minutes = 0;
int count=0;
UTFT myGLCD(TFT01_22SP,11,13,5,4,6);
void setup()
{
// initialize the serial communication:
Serial.begin(9600);
Serial.println("Starting 24 countdown");
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
}
void displayDigits( int value , int x , int y ) {
String strValue = (value<10 ? "0" + String(value): String(value));
myGLCD.print(strValue , x, y );
}
void loop()
{
myGLCD.print("Text rotation", 0, 0);
myGLCD.setColor(0, 0, 255);
myGLCD.print("Arduino", 0, 16, 0);
myGLCD.print("Arduino", 319, 0, 90);
myGLCD.print("Arduino", 319, 239, 180);
myGLCD.print("Arduino", 0, 239, 270);
myGLCD.setColor( 255 , 0 , 0 );
myGLCD.print("Hello World", 80 , 160 , 0);
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.print(String(hours) , 100, 90 );
myGLCD.print(String(minutes) , 180 , 90);
while( true ) {
count++;
if( count%10000==0 ) {
Serial.println("Update");
Serial.flush();
if (--minutes<0) {
minutes=60;
if(--hours<0) {
hours=24;
}
}
displayDigits( hours , 100, 90);
displayDigits( minutes, 180 , 90);
}
}
}
e. Program Arduino IDE Tampilkan Data ADC
//download library di link berikut lalu ekstrak di folder library Arduino
//http://www.4shared.com/zip/GEl6qr4_ba/UTFT.html
#include <memorysaver.h>
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
UTFT myGLCD(TFT01_22SP,11,13,5,4,6);
void setup()
{
// initialize the serial communication:
Serial.begin(9600);
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
}
void displayDigits( int value , int x , int y ) {
//String strValue = (value<2000 ? "" + String(value): String(value));
String strValue = String(value);
myGLCD.print(strValue , x, y );
}
void loop()
{
myGLCD.setColor( 255 , 255 , 255 );
myGLCD.print("DATA ADC", 80 , 160 , 0);
while( true ) {
int sensorValue = analogRead(A0);
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.print(String(sensorValue), 100, 90 );
displayDigits(sensorValue , 100, 90);
delay(500);
}
}
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
UTFT myGLCD(TFT01_22SP,11,13,5,4,6);
void setup()
{
// initialize the serial communication:
Serial.begin(9600);
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
}
void displayDigits( int value , int x , int y ) {
//String strValue = (value<2000 ? "" + String(value): String(value));
String strValue = String(value);
myGLCD.print(strValue , x, y );
}
void loop()
{
myGLCD.setColor( 255 , 255 , 255 );
myGLCD.print("DATA ADC", 80 , 160 , 0);
while( true ) {
int sensorValue = analogRead(A0);
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.print(String(sensorValue), 100, 90 );
displayDigits(sensorValue , 100, 90);
delay(500);
}
}
f. VIDEO HASILNYA
Sippp. Semoga menjadi amal jariah.
ReplyDeleteAamiin. Makasih pak
ReplyDeletemantaf
ReplyDelete