Disusun Oleh :
Bernadina Putri Ningrum / 191313009
Gabriel Aji Kristiadi / 191313012
Disusun Oleh :
Bernadina Putri Ningrum / 191313009
Gabriel Aji Kristiadi / 191313012
Disusun Oleh :
Bernadina Putri Ningrum / 191313009
Gabriel Aji Kristiadi / 191313012
Dengan ini menyatakan bahwa karya dengan judul “Rancang Bangun Oksigen
Konsentrator Dengan Pendeteksi Kemurnian Oksigen OCS – 3F Berbasis
Mikrokontroler ATMEGA – 328” belum pernah dipublikasikan dan tidak memuat
karya orang lain terkecuali dibagian daftar pustaka selayaknya karya ilmiah.
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Bernadina Putri Ningrum
Nomor Mahasiswa : 191313009
Nama : Gabriel Aji Kristiadi
Nomor Mahasiswa : 191313012
ABSTRAK
ABSTRACT
KATA PENGANTAR
Puji syukur Tuhan Yang Maha Esa, yang telah melimpahkan rahmat dan
berkat-Nya sehingga dapat melaksanakan Tugas Akhir serta dapat menyelesaikan
laporan Tugas Akhir yang berjudul “Rancang Bangun Oksigen Konsentrator Dengan
Pendeteksi Kemurnian Oksigen OCS – 3F Berbasis Mikrokontroler” dengan tapat
waktu. Laporan Tugas Akhir ini disusun sebagai persyaratan kelulusan pada Program
Studi Diploma III Teknologi Elektromedis Fakultas Vokasi Universitas Sanata Dharma
Yogyakarta.
1. Tuhan Yang Maha Esa, yang telah memberi rahmat, berkat, keselamatan dan
kesehatan selama penulis menyelesaikan Tugas Akhir.
2. Bernardinus Sri Widodo, S.T.,M.Eng selaku DEKAN Fakultas Vokasi
Universitas Sanata Dharma dan Ketua Penguji.
3. Bapak Antonius Hendro Noviyanto, S.T.,M.T. selaku dosen pembimbing
Tugas Akhir dan Kaprodi Teknologi Elektromedis.
4. Bapak Nugroho Budi Wicaksono, M.T. selaku dosen Sekretaris Penguji.
5. Dosen program studi Teknologi Elektromedis yang telah memberikan ilmu
selama perkuliahan.
6. Keluarga yang telah memberikan semangat, dorongan, dan dukungan moral
maupun materil sehingga penulis dapat menyelesaikan Tugas Akhir ini.
7. Gabriel Aji Kristiadi selaku partner mengerjakan Tugas Akhir.
8. Bernadina Putri Ningrum selaku partner mengerjakan Tugas Akhir.
9. Teman – teman prodi Teknologi Elektromedis angkatan 2019 atas kerja sama
dan kebersamaannya selama berjuang di Fakultas Vokasi Universitas Sanata
Dharma.
10. Tidak lupa juga penulis ucapakan terima kasih kepada diri sendiri yang telah
berjuang hingga saat ini, walaupun pernah hampir putus asa. Terimakasih untuk
mencoba selalu sabar, semangat, bangkit dari segala keterpurukan, juga
berjuang untuk mencari solusi. Semoga dari apa yang pernah dialami dapat
menjadi pembelajaran kedepannya.
Pada penulisan laporan Tugas Akhir ini masih jauh dari kata sempurna baik
dalam hal penulisan, tata bahasa, maupun isi yang tertuang dalam laporan ini. Oleh
karena itu kritik dan saran yang membangun sangat penulis harpakan demi
kesempurnaan laporan ini. Akhir kata terima kasih kepada semua pihak dan semoga
laporan Tugas Akhir ini dapat bermanfaat dan menambah ilmu pengetahuan bagi
teman-teman di Universitas Sanata Dharma.
Penulis
DAFTAR ISI
DAFTAR GAMBAR
DAFTAR TABEL
DAFTAR GRAFIK
BAB I
PENDAHULUAN
Berdasarkan latar belakang diatas, penulis tertarik untuk merancang alat Oksigen
Konsentrator dengan pemantauan tingkat kemurnian oksigen. Oleh karena itu dalam
karya tulis ini penulis akan membuat alat Oksigen Konsentrator.
1.3 Tujuan
Adapun tujuan dari tugas akhir :
1. Merancang alat Oksigen Konsentrator Berbasis Mikrokontroler ATMEGA-
328.
2. Merancang pendeteksi tingkat kemurnian oksigen menggunakan sensor OCS –
3F.
1.4 Manfaat
Adapun manfaat tugas akhir :
1. Bagu Fakultas Vokasi Universitas Sanata Dharma :
a. Menjadi tambahan referensi perpustakaan Universitas Sanata Dharma
b. Menjadi sarana melihat sejauh mana mahasiswa dapat menguasai ilmu
yang di berikan selama perkuliahan.
2. Bagi mahasiswa.
a. Menambah wawasan mahasiswa dalam hal penggunaan metode baru atau
alternative pada perkembangan alat kesehatan.
b. Menjadi sarana mahasiswa untuk mengasah keterampilan dan kreativitas,
serta cara berpikir kritis dalam menyelesaikan masalah yang ada.
c. Menjadi sarana mahasiswa dalam mengimplementasikan ilmu yang
didapat selama perkuliahan.
BAB II
LANDASAN TEORI
Pada bab ini penulis akan menjelaskan mengenai teori dari komponen dan
metode yang digunakan untuk menunjang penelitian “Rancang Bangun Oksigen
Konsentrator Dengan Pendeteksi Kemurnian Oksigen OCS-3F Berbasis
Mikrokontroler ATMEGA-328”. Berikut pemaparan dasar teori berdasarkan
komponen – komponen yang akan digunakan.
2.3 Oksigenasi
Oksigenasi adalah pemenuhan akan kebutuhan oksigen, kebutuhan dasar
manusia yang digunakan untuk kelangsungan metabolisme tubuh, untuk
mempertahankan hidup, dan untuk aktivitas berbagai organ atau sel. Apabila lebih dari
4 menit orang tidak mendapatkan oksigen maka akan merusak otak dan menyebabkan
pasien kehilangan kesadaran [3].
Oksigenasi merupakan kebutuhan dasar manusia yang paling mendasar.
Keberadaan oksigen merupakan salah satu komponen gas dan unsur vital dalam proses
metabolisme dan untuk mempertahankan kelangsungan hidup seluruh sel-sel tubuh.
Dalam kaitannya dengan pemenuhan kebutuhan oksigenasi tidak terlepas dari peranan
fungsi sistem pernafasan dan kardiovaskular yang menyuplai kebutuhan oksigen tubuh
[3].
2.4 Mikrokontroler
Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip
IC (Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu.
Pada dasarnya, sebuah IC Mikrokontroler terdiri dari satu atau lebih Inti Prosesor
(CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat
diprogram. Dalam pengaplikasiannya, Pengendali Mikro yang dalam bahasa Inggris
disebut dengan Microcontroller ini digunakan dalam produk ataupun perangkat yang
dikendalikan secara otomatis seperti sistem kontrol mesin mobil, perangkat medis,
pengendali jarak jauh, mesin, peralatan listrik, mainan dan perangkat-perangkat yang
menggunakan sistem tertanam lainnya [4].
Berat Modul 25 gr
Tabel 2. 1 Spesifikasi Arduino Uno
Bagian-bagian Arduino Uno:
Sumber: https://1.bp.blogspot.com/-LcqoMwEBPVY/YOgWiVdsHRI/AAAAAAAAANo/Y4kCC-
y5eEISoO1VeBL5JKXK91IsuFNZgCLcBGAsYHQ/s770/Bagian%2BArduino.jpg
Fungsi dari power jack pada modul arduino adalah sebagai media pemberi
tegangan listrik ke arduino apabila tak ingin menggunakan Power USB.
5. Pin Reset
Berfungsi untuk mereset arduino agar program dimulai dari awal. Cara
penggunannya yaitu dengan menghubungkan pin reset ini langsung ke ground.
6. Pin 3,3 V
Berfungsi sebagai pin positif untuk komponen yang menggunakan tegangan 3,3
volt.
7. Pin 5 V
Berfungsi sebagai pin positif untuk komponen yang menggunakan tegangan 5
volt. Pin 5 volt sering juga disebut pin VCC.
8. Pin Ground (GND)
Fungsi pin GND adalah sebagai pin negatif pada tiap komponen yang
dihubungkan ke arduino.
9. Pin Penambah Tegangan
Berfungsi sebagai media pemasok listrik tambahan dari luar sebesar 5 volt bila
tak ingin menggunakan power USB atau power jack.
10. Pin Analog
Berfungsi membaca tegangan dan sinyal analog dari berbagai jenis sensor
untuk diubah ke nilai digital.
11. Main Mikrokontroler
Berfungsi sebagai otak yang mengatur pin-pin pada arduino.
12. Tombol Reset
Komponen pendukung Arduino yang berfungsi untuk mengulang program dari
awal dengan cara menekan tombol.
13. Pin ICSP (In-Circuit Serial Programming)
Berfungsi untuk memprogram mikrokontroler seperti Atmega328 melalui
jalur USB Atmega16U2.
14. Lampu Indikator Power
Sumber: https://id.aliexpress.com/item/32728198956.html
Sumber: https://pdfcoffee.com/ocs-3f-21data-sheet-pdf-free.html
J3 LED Output
J5 Power Supply
Tabel 2. 3 Fungsi Konektor Pada Sensor OCS – 3F
Sumber: https://ae01.alicdn.com/kf/H020847c68c41473c8d1e99532005d8cbF.jpg
Sumber: https://khoiruliman.files.wordpress.com/2016/06/0000146_blue-backlight-2004a-lcd-module-
i2c-interface.jpeg
Sumber: https://s.kaskus.id/r540x540/images/2014/10/18/5702022_20141018011346.jpg
Sumber: https://components101.com/sites/default/files/inline-images/Eight-Channel-Relay-Module.jpg
COM (Common), adalah pin yang wajib dihubungkan pada salah satu dari dua
ujung kabel yang hendak digunakan.
NO (Normally Open), adalah pin tempat menghubungkan kabel yang satunya
lagi bila menginginkan kondisi posisi awal yang terbuka atau arus listrik
terputus.
NC (Normally Close), adalah pin tempat menghubungkan kabel yang satunya
lagi bila menginginkan kondisi posisi awal yang tertutup atau arus listrik
tersambung.
Relay Switched LED adalah indikator untuk mengetahui bahwa relay sudah
beroperasi.
Vcc adalah pin untuk menghubungkan tegangan input.
GND adalah pin untuk menghubungkan dengan Ground.
IN adalah pin untuk menghubungkan dengan sinyal input.
utama yang berbentuk lilitan yaitu lilitan Primer dan lilitan Sekunder. Lilitan
Primer merupakan Input dari pada Transformator sedangkan output-nya adalah
pada lilitan sekunder.
b. Penyearah Gelombang (Rectifier)
Rectifier atau penyearah gelombang adalah rangkaian Elektronika
dalam Power Supply (catu daya) yang berfungsi untuk mengubah gelombang
AC menjadi gelombang DC setelah tegangannya diturunkan oleh
Transformator Step down. Rangkaian Rectifier biasanya terdiri dari komponen
Dioda. Terdapat 2 jenis rangkaian Rectifier dalam Power Supply yaitu “Half
Wave Rectifier” yang hanya terdiri dari 1 komponen Dioda dan “Full Wave
Rectifier” yang terdiri dari 2 atau 4 komponen dioda.
c. Penyaring (Filter)
Dalam rangkaian DC Power Supply, filter digunakan untuk meratakan
sinyal arus yang keluar dari Rectifier. Filter ini biasanya terdiri dari komponen
Kapasitor (Kondensator) yang berjenis Elektrolit atau ELCO (Electrolyte
Capacitor).
d. Pengatur Tegangan (Voltage Regulator)
Untuk menghasilkan Tegangan dan Arus DC (arus searah) yang tetap
dan stabil, diperlukan Voltage Regulator yang berfungsi untuk mengatur
tegangan sehingga tegangan Output tidak dipengaruhi oleh suhu, arus beban
dan juga tegangan input yang berasal dari output filter. Voltage Regulator pada
umumnya terdiri dari Dioda Zener, Transistor atau IC (Integrated Circuit).
Sumber: https://www.andalanelektro.id/2021/01/mengenal-motor-stepper.html
Sumber: https://www.andalanelektro.id/2021/01/mengenal-motor-stepper.html
3. Stepper Hybrid
Stepper Hybrid adalah gabungan dari dua jenis stepper diatas.
Penggabungan jenis Variable Reluctance dan Permanen Magnet bertujuan
untuk memberikan daya maksimum dalam kemasan yang kecil. Karena
konstruksi yang digabungkan maka harga dari stepper Hybrid lebih malah
dari dua jenis yang lain. Namun, Stepper ini memiliki kombinasi sifat
terbaik dari keduanya. Jenis Hybrid memberikan kinerja yang lebih baik
dalam hal tingkat resolusi, torsi dan kecepatan. Rotor dari Stepper ini
memiliki multi-gerigi seperti tipe VR dan berisi magnet konsentrik aksial
disekitar porosya.
Sumber: https://www.andalanelektro.id/2021/01/mengenal-motor-stepper.html
2.5.11 Nepel
Komponen nepel memiliki peranan yang sangat penting dalam pemasangan
selang dari kompresor menuju rangkaian pneumatic guna mengalirkan udara
bertekanan, udara dapat dikeluarkan setelah udara mancapai volume yang diinginkan.
Pada alat pneumatic ini berfungsi untuk menyambungkan selang ke benda kerja yang
sudah terpasang diplat. Penyambung yang digunakan, penyambung bentuk L yang
berfungsi sebagai penyambung selang ke tabung filter, penyambung bentuk T yang
berfungsi sebagai penyambung selang dari kompresor menuju valve dan diteruskan ke
filter dan penyambung bentuk lurus yang berfungsi menyambung dari selang menuju
ke benda kerja seperti valve, limit switch, filter dan sensor [14].
Sumber: https://images.tokopedia.net/img/cache/700/VqbcmM/2021/2/10/949b9118-00e2-4ed7-9bcc-
8b913f68df7e.jpg
Gambar 2. 14 Nepel
BAB III
PERANCANGAN
Sumber: https://www.electronics-lab.com/wp
content/uploads/2015/04/8_Channel_Relay_Schematic.png
Sumber: https://1.bp.blogspot.com/-SGU8Horm2yM/X-
i6OOKKEuI/AAAAAAAAAKg/1eCqRDZrAFMTNox0LmNX-
Arhg4ZXhobCgCLcBGAsYHQ/s16000/ULN2003-Stepper-Motor-Driver-Pinout.png
Minggu 1 2 3 4 5 6 7 8 9 Pelaksana
Pemebelian
Aji
sensor
Perencanaan
Putri
pembuatan alat
Proses mendesain
Putri
rangka bodi alat
Mencari referensi
Putri
program sensor
Pembuatan
Aji
kerangka bodi alat
Percobaan sensor Aji
Pengujian sensor Aji, Putri
Proses desain
Aji
PCB
Proses pembuatan
Putri
PCB
Proses pembuatan
Aji
program
Perakitan alat dan
Aji, Putri
pengambilan data
BAB IV
IMPLEMENTASI DAN PEMBAHASAN
kaki TX pada sensor dihubungkan ke pin 0 (RX) arduino, kaki RX pada sensor
dihubungkan ke pin 1 (TX) arduino, dan kaki GND pada sensor dihubungkan ke GND
power supply yang juga terhubung ke GND arduino. Untuk inputan udara dari sensor
dapat dilihat pada gambar 3.3 dan untuk keluarannya langsung dihubungkan ke alat
kalibrator O2 Analyzer menggunakan breathing yang sesuai.
else { i = 0;
for (j = 0; j < 12; j++) { o2[j] = 0;
}}}}}
if (i == 12) { temp = 0;
for (j = 0; j < 12; j++) { temp += o2[j];
} if (temp == 0) {
o2c = o2[3] * 256 + o2[4]; o2f = o2[5] * 256 + o2[6];
}
i = 0;
for (j = 0; j < 12; j++) { o2[j] = 0;
}
//---O2
Serial.print("O2 :"); Serial.print(o2c/100);
Serial.print(o2c/10%10); Serial.print(" % / ");
//---Flow
Serial.print("Flow:");
Serial.print(o2f/10%10);
Serial.print(".");
Serial.print(o2f%10);
Serial.println(" L/min");
}}}}
4 8,2 8
5 10,2 10
Tabel 4. 1 Hasil Percobaan Pembacaan Flow Pada Sensor
Laju Aliran
12
10
0
1 2 3 4 5
Percobaan Ke-
O2 Analyzer OCS-3F
Berikut ini merupakan hasil pengujian konsentrasi oksigen dari sensor OCS – 3F:
2 34% 40%
3 51% 60%
4 76% 80%
5 92% 100%
Tabel 4. 2 Hasil Percobaan Pembacaan Konsentrasi Oksigen
Konsentrasi Oksigen
120%
100%
80%
60%
40%
20%
0%
1 2 3 4 5
Percobaan Ke-
O2 Analyzer OCS-3F
Kode dibawah merupakan program arduino uno yang akan digunakan untuk
melakukan pengujian pada LCD 20x4 yang akan digunakan.
#include <Wire.h>
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C
lcd(0x27,20,4); void setup() {
lcd.init();
lcd.init(); lcd.backlight(); lcd.setCursor(3,0);
lcd.print("Hello, world!");
lcd.setCursor(7,1);
lcd.print("TESTER"); lcd.setCursor(7,2);
lcd.print("LCD I2C");
}
void loop() {
}
Ketika selenoid tidak terhubung pada sumber tegangan, maka jalur aliran akan tertutup
sehingga aliran udara dari kompresor tidak dapat disalurkan ke jalur selang lain. Dan
ketika selenoid terhubung pada sumber tegangan, maka jalur aliran akan terbuka
sehingga aliran udara dapat disalurkan ke jalur selang lain.
4.2 Troubleshooting
Troubleshooting dilakukan pada proses pembuatan alat ini ketika ditemukan
suatu masalah ketika mengimplementasikan apa yang sudah direncanakan sebelumnya.
Tujuan dari proses troubleshooting ini adalah untuk memastikan bahwa alat masih
dapat bekerja sesuai dengan perencanaan meskipun dilakukan perubahan pada saat
implementasi.
Pada pengimplementasian perancangan elektronik, digunakan rangkaian pcb
yang berfungsi sebagai modul step down untuk menurunkan tegangan dari power
supply sebesar 12 VDC menjadi 5 VDC yang nantinya akan digunakan untuk
menyalakan Arduino. Namun, setelah melakukan uji coba menghidupkan Arduino
dengan beban, regulator LM7805 menjadi sangat panas. Selain itu, pada saat motor
stepper dan solenoid valve mulai bekerja, tegangan menjadi drop yang mengakibatkan
layar LCD menjadi redup. Maka diputuskan untuk mengganti rangkaian step down
LM7805 menggunakan modul step down yang baru.
Motor stepper yang digunakan untuk membuka katup kontrol flow hanya
berputar 1 arah yang mengakibatkan katup tidak dapat menutup dan flow yang
mengalir tidak sesuai dengan nilai yang telah ditentukan. Setelah konsultasi dengan
dosen pembimbing, maka dilakukan pemrograman ulang. Hasilnya motor stepper dapat
menstabilkan nilai flow yang telah diatur.
Kadar kemurnian oksigen yang dihasilkan dari alat yang dibuat hanya sebesar
21%, hal ini dikarenakan molecular sieve yang berfungsi untuk menyaring oksigen
mengalami penguapan saat akan dimasukkan ke dalam tabung filter. Hal ini
mengakibatkan molecular sieve tidak dapat digunakan lagi untuk menyaring oksigen.
Pada saat revisi, terdapat arus balik pada alat yang mengakibatkan kerusakan
pada sistem. Ketika relay dan motor stepper bekerja, sistem menjadi mereset ulang.
Setelah konsultasi dengan dosen pembimbing, maka diputuskan untuk mengganti
power supply 12 VDC menjadi 5 VDC serta memisahkan tegangan input relay dan
motor stepper yang awalnya mendapat sumber dari arduino dengan menyambungkan
langsung dari power supply. Hasilnya, sistem dapat berjalan dengan normal.
BAB V
PENUTUP
5.1 Kesimpulan
Alat yang dirancang berhasil memberikan gambaran pada desain alat oksigen
konsentrator namun masih memiliki kekurangan seperti kesalahan metode pemindahan
molecular sieve ke dalam tabung filter yang mengakibatkan konsentrasi yang
dihasilkan tidak maksimal. Namun sistem yang dibuat dapat berjalan dengan baik dan
motor stepper dapat menstabilkan flow sesuai dengan nilai yang diatur.
5.2 Saran
Saran yang dapat diberikan mengenai alat ini untuk kedepannya antara lain
perancangan yang lebih matang sebelum melakukan pembuatan alat. Selain itu,
komponen yang digunakan harus dipastikan dapat menggerakkan beban kerja dengan
baik untuk menghindari kecacatan dalam sistem. Proses pengkabelan atau wiring juga
dapat dilakukan dengan lebih rapi untuk menghindari korsleting dan kebingunngan
ketika melakukan troubleshooting.
DAFTAR PUSTAKA
LAMPIRAN
Program Arduino
#include <Wire.h>
#include <Stepper.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
//---------------------------------------------bagian Stepper
#include "Stepper_28BYJ_48.h"
Stepper_28BYJ_48 stepper(7,6,5,4);
//-----------------------------------------------Relay
int FAN = 13;
int SL = 12;
int KPR = 11;
int SL2 = 10;
int hitung = 0;
bool keluaran = 0;
unsigned long sebelum;
unsigned long waktu = 2000;
//------------------------------------------------bagianI2C-LCD--------
int start = A0;
int Stopp = A3;
int up = A1;
int down = A2;
//------------------------------------------------bagianTombol---------
float nilai = 10.0; //flow pertama pada setpoin
int w = 0;
int x = 0;
int y = 0;
int z = 0;
int menu = 0;
//------------------------------------------------bagianpembagisesi----
void setup() {
Serial.begin(9600);
//------------------------------------------------bagian Tombol
pinMode(start, INPUT_PULLUP);
pinMode(Stopp, INPUT_PULLUP);
pinMode(up, INPUT_PULLUP);
pinMode(down, INPUT_PULLUP);
//------------------------------------------------bagian Relay
pinMode (FAN, OUTPUT);
pinMode (SL, OUTPUT);
pinMode (KPR, OUTPUT);
pinMode (SL2, OUTPUT);
//------------------------------------------------bagian Motor
//------------------------------------------------input/output----------
lcd.init();
lcd.begin(20, 4);
lcd.backlight();
//------------------------------------------------bagianLCD-------------
lcd.setCursor(5, 0);
lcd.print("UNIVERSITAS");
lcd.setCursor(4, 1);
lcd.print("SANATA DHARMA");
lcd.setCursor(6, 2);
lcd.print("TEKNOLOGI");
lcd.setCursor(3, 3);
lcd.print("ELEKTROMEDIS'19");
delay(1900);
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("TUGAS AKHIR");
lcd.setCursor(0, 3);
lcd.print("OKSIGEN KONSENTRATOR");
delay(2700);
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("BERNADINA PUTRI N");
lcd.setCursor(2, 2);
lcd.print("GABRIEL AJI K");
delay(2000);
lcd.clear();
}
void loop() {
unsigned long sekarang = millis();
if((sekarang - sebelum) > waktu){
keluaran = !keluaran;
digitalWrite(SL,keluaran);
digitalWrite(SL2,!keluaran);
sebelum = millis();
}
digitalWrite(FAN,HIGH);
digitalWrite(KPR,HIGH);
switch (menu){
case 0:
lcd.setCursor(5, 0);
lcd.print("UNIVERSITAS");
lcd.setCursor(4, 1);
lcd.print("SANATA DHARMA");
lcd.setCursor(6, 2);
lcd.print("TEKNOLOGI");
lcd.setCursor(3, 3);
lcd.print("ELEKTROMEDIS'19");
delay(1900);
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("TUGAS AKHIR");
lcd.setCursor(1, 3);
lcd.print("OKSIEN KONSENTRATOR");
delay(2700);
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("BERNADINA PUTRI N");
lcd.setCursor(2, 2);
lcd.print("GABRIEL AJI K");
delay(2000);
lcd.clear();
menu = 0;
break;
case 1:
lcd.setCursor(5,1);
lcd.print("TEKAN TOMBOL");
lcd.setCursor(8,2);
lcd.print("START");
menu = 1;
break;
case 2:
if(digitalRead(up)==LOW && x == 0){
nilai = nilai +1.00;
if (nilai>10.00){
nilai = 10.00;
}
x=1;
}
if(digitalRead(up)==HIGH){
x=0;
}
if(digitalRead(down)==LOW && y == 0){
nilai = nilai -1.00;
if (nilai<0.00){
nilai=00.00;
}
y=1;
}
if(digitalRead(down)==HIGH){
y=0;
}
lcd.setCursor(1,0);
lcd.print("TENTUKAN FLOW:");
lcd.setCursor(1,1);
lcd.print(nilai);
lcd.print(" L/Min ");
break;
case 3:
typedef unsigned char u8;
typedef unsigned int u16;
int inByte;
u8 temp;
u8 i, j, o2[12];
u16 o2c, o2f, o2t; //Define oxygen concentration, flow rate and temperature
inByte = Serial.read();
//---Receiving part---
if ((o2[0] == 0x16) && (o2[1] == 0x09) && (o2[2] == 0x01)) //Determine if the
first two bytes are received correctly, I is the global variable
{
o2[i] = inByte;
i++;
}
else //If one of the first three bytes received is incorrect, the first two bytes
will be judged
{
if ((o2[0] == 0x16) && (o2[1] == 0x09))
{
if ( inByte == 0x01)
{
o2[2] = inByte;
i++;
}
else
{
i = 0;
for (j = 0; j < 12; j++)
{
o2[j] = 0;
}
}
}
else
{
if (o2[0] == 0x16)
{
if ( inByte == 0x09)
{
o2[1] = inByte;
i++;
}
else
{
i = 0;
for (j = 0; j < 12; j++)
{
o2[j] = 0;
}
}
}
else
{
if ( inByte == 0x16)
{
o2[0] = inByte;
i++;
}
else
{
i = 0;
for (j = 0; j < 12; j++)
{
o2[j] = 0;
}
}
}
}
}
//---Receiving part---
i = 0;
for (j = 0; j < 12; j++) //Initialize array
{
o2[j] = 0;
}
//-------------------------------------------------------------
//----------------------------------------------------------
lcd.setCursor(0,0);
lcd.print("OKSIGEN KONSENTRATOR");
//---O2
lcd.setCursor(3, 2); //Set the display pointer
lcd.print("O2 :");
lcd.setCursor(8, 2);
lcd.print(o2c/100);
lcd.print(o2c/10%10);
lcd.print(".");
lcd.print(o2c%10);
lcd.print(" %");
//---Flow
lcd.setCursor(3, 3);
lcd.print("Flow:");
lcd.setCursor(10, 3);
lcd.print(o2f/10);
lcd.print(".");
lcd.print(o2f%10);
lcd.print(" L/min");
}}}
//-----------------------------------Stepper------------
if (o2f/10 <= nilai){
maju();
}
if (o2f/10 >= nilai){
mundur();
}
if (o2f/10 == nilai){
berhenti();
}
//----------------------------------------------------
menu = 3;
break;
}
}
void maju(){
for (int thisPin = 0; thisPin < 10; thisPin++){
stepper.step(-1);
}
}
void mundur(){
for (int thisPin = 0; thisPin < 100; thisPin++){
stepper.step( 1);
}
}
void berhenti(){