Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses LCD NOKIA 5110 / 3310 menggunakan Arduino atau sejenisnya yang mana digunakan untuk menampilkan nilai tiga buah jarak atau 3-channel sensor jarak, sebenarnya jika diganti dengan sensor lain bisa juga, misalkan sensor gas atau sensor suhu, yang membahagiakan lagi coding / program ini bisa digunakan untuk OLED juga dengan perintah dan library yang sama, untuk lebih jelasnya berikut adalah skema dan programnya, untuk library bisa didownload disini.
DOWNLOAD LIBRARY
a. Arduino UNO
b. LCD NOKIA 5110 / 3310
Ket :
1. VCC = 3.3 volt
2. Pin BL diberi Resistor 220 ohm lalu ke 5v
3. Pin CLK, CE, DIN, DC, CE diberi Resistor 1 KOhm lalu ke pin Arduino
c. Sensor Jarak SRF04
d. Program Arduino IDE
#include <U8glib.h>
#include <stdlib.h>
#define trigPin1 A0
#define echoPin1 A1
#define trigPin2 A2
#define echoPin2 A3
#define trigPin3 A4
#define echoPin3 A5
U8GLIB_PCD8544 u8g(8, 9, 11, 10, 12); // CLK=8, DIN=9, CE=11, DC=10, RST=12
char tmp_string1[8];
char tmp_string2[8];
char tmp_string3[8];
int duration1, distance1;
int duration2, distance2;
int duration3, distance3;
void draw(void) {
itoa(distance1, tmp_string1, 10);
itoa(distance2, tmp_string2, 10);
itoa(distance3, tmp_string3, 10);
//u8g.setFont(u8g_font_fub30);
//u8g.setFont(u8g_font_profont11);
u8g.setFont(u8g_font_unifont);
//u8g.setFont(u8g_font_osb21);
//u8g.setFont(u8g_font_profont11);
u8g.drawStr(0, 10, "Depan= ");
u8g.drawStr(50, 10, tmp_string1);
u8g.drawStr(0, 25, "Kanan= ");
u8g.drawStr(50, 25, tmp_string2);
u8g.drawStr(0, 40, "Kiri= ");
u8g.drawStr(50, 40, tmp_string3);
}
void setup(void) {
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
}
void loop(void) {
digitalWrite(trigPin1, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = (duration1/2) / 29.1;
digitalWrite(trigPin2, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = (duration2/2) / 29.1;
digitalWrite(trigPin3, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin3, LOW);
duration3 = pulseIn(echoPin3, HIGH);
distance3 = (duration3/2) / 29.1;
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
delay(100);
}
e. VIDEO HASILNYA
No comments:
Post a Comment