1. Tujuan [kembali]
- Aplikasi running text dapat mengukur nilai suhu dan kelembaban menggunakan sensor DHT 11 dengan keypad sebagai input output dot matrik dan buzzer
- Merangkai dan menguji I/O pada aplikasi running text dapat mengukur nilai suhu dan kelembaban menggunakan sensor DHT 11 dengan keypad sebagai input output dot matrik dan buzzer
- Pengaplikasian aplikasi running text yang dapat mengukur nilai suhu dan kelembaban menggunakan sensor DHT 11 dengan keypad sebagai input output dot matrik dan buzzer
2. Alat dan bahan [kembali]
- Arduino MEGA 2560
- Keypad
- DHT11
- Jumper
- Dot matrix 8x8
- IC Max7219
- Buzzer
3.Landasan Teori [kembali]
1. Arduino Uno
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet).
Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz
osilator kristal, koneksi USB, jack power, ICSP header, dan tombol
reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya
menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB
atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk
menjalankannya.
2. Dot matrix 8x8
Dot matrix adalah susunan titik-titik dua dimensi yang digunakan untuk menampilkan karakter-karakter, simbol atau gambar. Dahulu dot matrix digunakan pada printer-printer tua dan banyak perangkat tampilan digital. Pada printer, titik-titik tersebut adalah daerah yang diredupkan. Sedangkan pada display, titik-titik tersebut adalah daerah yang bercahaya. Sebagaimana pada LED atau CRT display cara kerjanya titik-titik yang sebelumnya mati, bercahaya sesuai sesuai obyek yang diinginkan.
Dot matrix banyak digunakan untuk menampilkan informasi pada mesin-mesin, jam, indikator keberangkatan kereta api dan perangkat lainnya yang membutuhkan display sederhana untuk resolusi yang terbatas. Display ini terdiri dari LED yang tersusun secara matrix berbentuk segi empat (bentuk selain segi empat juga ada) sehingga dengan menyalakan/mematikan lampu yang diinginkan, teks atau grafik yang dapat ditampilkan. Pengendali dot matrix mengkonversi instruksi dari decoder ke dalam sinyal elektris yang dapat menyalakan atau mematikan lampu sehingga tampilan yang diinginkan dapat terjadi.
3. DHT11
DHT-11
adalah chip tunggal kelembaban relatif
dan multi sensor suhu yang terdiri dari modul yang dikalibrasi keluaran
digital. Pada pengukuran suhu data yang dihasilkan 14 bit, sedangkan untuk
kelembaban data yang dihasilkan 12 bit.
Keluaran dari DHT-11 adalah
digital sehingga untuk
mengaksesnya diperlukan
pemrograman dan tidak
diperlukan pengkondisi sinyal
atau ADC .
spesifikasi :• Pasokan Voltage: 5 V
• Rentang temperatur :0-50 ° C kesalahan ± 2 ° C
• Kelembaban :20-90% RH ± 5% RH error
• Interface: Digital
4. Max7219
MAX7219 adalah IC yang berguna sebagai driver antarmuka antara mikro-kontroller dengan LED 7 Segmen (hingga 8-digit), tampilan balok (bar display), atau 64 LED individual yang bersifat common cathode. Antarmuka serial ini dapat mencapai kecepatan hingga 10 MHz.
Dalam chip ini sudah tersedia dekoder BCD (kode-B), rangkaian pemindai multiplekser, pengarah (driver) segmen dan digit, dan 8x8 RAM statik untuk mengingat setiap kondisi setiap digit (latched state).
Dalam chip ini sudah tersedia dekoder BCD (kode-B), rangkaian pemindai multiplekser, pengarah (driver) segmen dan digit, dan 8x8 RAM statik untuk mengingat setiap kondisi setiap digit (latched state).
5. Jumper
Jumper pada sebuah komputer sebenarnya
adalah connector (penghubung) sirkuit elektrik yand digunakan untuk
menghubungkan atau memutus hubungan pada suatu sirkuit.
6.Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loudspeaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).
7. Keypad
Cara kerjanya cukup sederhana, misalnya ketika tombol
S1 ditekan, maka COL1 dan ROW1 akan terhubung, jika S5 yang ditekan,
maka COL2 dan ROW2 (matrix 3x4) atau COL1 dan ROW2 (matrix 4x4) akan
terhubung. demikian seterusnya untuk tombol lainnya
Scanning Matrix Keypad
Ada beberapa teknik untuk membaca data dari matrix keypad tersebut, salah satunya adalah dengan teknik scanning,
dimana baris atau kolom selalu dipindai untuk mendeteksi tombol yang
ditekan. Caranya yaitu dengan memberikan status ‘0’ (low) pada pin COL
secara bergantian, lalu pin ROW dideteksi apakah ada salah satunya yang
berkondisi ‘0’ (low).
Untuk contoh penggunaan
matrix 3x4, pertama COL1 diberi logika ‘0’, kemudian status ROW dibaca
apakah statusnya ‘1’ (high) semua atau ada salah satu yang low.
Jika ROW1 yang Low berarti tombol S1 yang di tekan, jika ROW2 yang Low,
berarti tombol S4 yang ditekan, jika High semua, berarti tidak ada
tombol yang ditekan dalam kolom ini, scanning dilanjutkan ke kolom
berikutnya.
Sekarang COL2 yang diberi logika ‘0’ (low). Jika ROW1
yang Low berarti tombol S2 yang di tekan, jika ROW2 yang Low, berarti
tombol S5 yang ditekan, jika High semua, berarti tidak ada tombol yang
ditekan dalam kolom ini. Demikian selanjutnya untuk COL3.
Tabel status scanning keypad 3x4
4. Grafik Respon Sensor [kembali]
Grafik respon sensor DHT11 |
Grafik di atas menggambarkan hubungan antara temperatur terhadap waktu dan kelembaban terhadap waktu. Kelembaban bernilai konstan pada 45% pada saat alat mulai di running dan sampai alat dihentikan. Sedangkan nilai suhu semakin lama mendekati nilai suhu kamar pada kisaran 22 derajat celcius. Jadi dapat disimpulkan bahwa sensor bekerja dengan baik dan akurat.
5. Rangkaian Simulasi dan Prinsip Kerja[kembali]
Prinsip Kerja :
input
berupa keypad dan sensor dht11 serta output berupa dot matrix dan
buzzer. Keypad dihubungkan ke pin 0-6. sedangkan dht11 dihubungkan ke
pin positif ke vcc, negatif ke ground, data ke pin 7. Untuk output
dotmatrix pin clock ke pin 13, data ke pin 11, cs pin ke pin 10, dan 1
kaki pin dihubungkan ke vcc dan satu lagi dihubungkan ke ground.
Sedangkan untuk output buzzer memiliki 2 kaki (positif dan negatif),
positif ke kaki 8 dan negatif ke ground.
Alat diprogram
untuk dapat membaca temperatur ketika keypad ditekan angka 1. Besaran
fisis (analog) yang didapat dari sensor dht11 akan diubah ke besaran
digital dimana akan dikirimkan ke arduino untuk diproses dan dikirimkan
ke dot matrix.
Sementara itu
ketika ditekan angka 2 maka kelembapan yang didapatkan dari sensor dht11
akan diubah ke besaran digital lalu dikirim ke arduino dan diproses
lalu ditampilkan ke dot matrix.
Buzzer otomatis juga akan berbunyi sebagai indikasi bahwasanya sensor suhu sudah bekerja.
Terdapat IC Max7219 yang berguna sebagai driver antarmuka antara mikro-kontroller Dalam chip ini sudah tersedia dekoder BCD (kode-B), rangkaian pemindai multiplekser, pengarah (driver) segmen dan digit, dan 8x8 RAM statik untuk mengingat setiap kondisi setiap digit (latched state) serta terdapat socket IC, resistor 10KOhm, 100nF kapasitor, dan 10 uF kapasitor elektrolit. Semua dipatri dalam satu modul yang kompak .
Dengan Modul max 7219 tersebut terdiri dari led dot matriks Common Cathode ukuran 8×8 yang berwarna merah, dan ic MAX7219 untuk mengendalikan nyala tiap piksel LED. Sedangkan Resistor 10k berfungsi sebagai pull down, sehingga tegangan yang diterima benar-benar dalam kondisi 0V ketika Keypad belum ditekan dan tidak membuat LED Dot Matrix nya rusak.
6. Listing Program [kembali]
#include <MD_Parola.h> //librabry untuk dot matrix
#include <MD_MAX72xx.h>
#include <SPI.h> //library untuk serial peripheral interface
#include "DHT.h" //include library sensor suhu
#include <Keypad.h> //library untuk keypad
#define buzz 8 //mendefinisikan pin 8 untuk buzzer
const uint16_t WAIT_TIME = 1000; //delay waktu 1000 ms
const byte ROWS = 4; //empat baris
const byte COLS = 3; //4 kolom
//define simbol pada button di keypad
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {3, 2, 1, 0}; //hubungkan ke baris pinout pada keypad
byte colPins[COLS] = {6, 5, 4}; //hubungkan ke kolom pinout pada keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// tentukan jumlah device dan hardware interface
// catatan : pin ini mungkin tidak akan berfungsi dengan perangkat keras dan mungkin perlu disesuaikan
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 2
#define CLK_PIN 13 //clock pada dot matrix dihubungkan ke pin 13
#define DATA_PIN 11 //data dibuhubungkan pada pin 11
#define CS_PIN 10 //
#define DHTPIN 7 // pin apa yang akan terhubung
#define DHTTYPE DHT11 //sensor suhu & kelembapan DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Koneksi hardware SPI
//MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// pin output yang dapat diubah
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup(void)
{
P.begin();
Serial.begin(9600); // inisialisasi komunikasi serial
Serial.println("DHTxx test!");
dht.begin();
pinMode(buzz,OUTPUT);
}
void loop(void)
{
{
digitalWrite(buzz,HIGH);
delay(80);
digitalWrite(buzz,LOW);
delay(80);
}
char kode = keypad.getKey();
if(kode==NO_KEY)
return;
if(kode=='1')
{
int t = dht.readTemperature();
char temp[4];
itoa(t,temp,10); //konversi int ke char !!
Serial.println(temp);
P.print(temp);
delay(WAIT_TIME);
}
else if(kode=='2')
{
float h = dht.readHumidity();
char humidity[8];
itoa(h,humidity,10);
Serial.println(humidity);
P.print(humidity);
delay(WAIT_TIME);
}
}
#include <MD_MAX72xx.h>
#include <SPI.h> //library untuk serial peripheral interface
#include "DHT.h" //include library sensor suhu
#include <Keypad.h> //library untuk keypad
#define buzz 8 //mendefinisikan pin 8 untuk buzzer
const uint16_t WAIT_TIME = 1000; //delay waktu 1000 ms
const byte ROWS = 4; //empat baris
const byte COLS = 3; //4 kolom
//define simbol pada button di keypad
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {3, 2, 1, 0}; //hubungkan ke baris pinout pada keypad
byte colPins[COLS] = {6, 5, 4}; //hubungkan ke kolom pinout pada keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// tentukan jumlah device dan hardware interface
// catatan : pin ini mungkin tidak akan berfungsi dengan perangkat keras dan mungkin perlu disesuaikan
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 2
#define CLK_PIN 13 //clock pada dot matrix dihubungkan ke pin 13
#define DATA_PIN 11 //data dibuhubungkan pada pin 11
#define CS_PIN 10 //
#define DHTPIN 7 // pin apa yang akan terhubung
#define DHTTYPE DHT11 //sensor suhu & kelembapan DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Koneksi hardware SPI
//MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// pin output yang dapat diubah
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup(void)
{
P.begin();
Serial.begin(9600); // inisialisasi komunikasi serial
Serial.println("DHTxx test!");
dht.begin();
pinMode(buzz,OUTPUT);
}
void loop(void)
{
{
digitalWrite(buzz,HIGH);
delay(80);
digitalWrite(buzz,LOW);
delay(80);
}
char kode = keypad.getKey();
if(kode==NO_KEY)
return;
if(kode=='1')
{
int t = dht.readTemperature();
char temp[4];
itoa(t,temp,10); //konversi int ke char !!
Serial.println(temp);
P.print(temp);
delay(WAIT_TIME);
}
else if(kode=='2')
{
float h = dht.readHumidity();
char humidity[8];
itoa(h,humidity,10);
Serial.println(humidity);
P.print(humidity);
delay(WAIT_TIME);
}
}
7. Flowchart [kembali]
8. Foto Alat [kembali]
9. Video [kembali]
- Video Simulasi Rangkaian
- Video Percobaan Alat
10. Link Download [kembali]
Berikut merupakan link download untuk Rangkaian ProteusBerikut merupakan link download untuk Video Simulasi dan Percobaan Alat
Berikut merupakan link download untuk Program
Berikut merupakan link download untuk Visual Designer
Tidak ada komentar:
Posting Komentar