Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat digunakan untuk mengukur kadar gula darah dalam tubuh dengan menggunakan Arduino dan sensor yang dipakai adalah photodioda. alat ini menggunakan LCD TFT sebagai interfacenya. dan juga terdapat sebuah tombol untuk memulai pengukurannya. untuk lebih jelasnya berikut adalah daftar komponen dan programnya.
a. Arduino Uno
b. LCD TFT
c. Sensor Photodioda dan Led Merah
R3 = 100 Kohm
R2 = 220 Ohm
d. Program Arduino IDE
#include <Adafruit_GFX.h> // Core graphics library
#include <MCUFRIEND_kbv.h> // Hardware-specific library
MCUFRIEND_kbv tft;
#include <Fonts/FreeSans9pt7b.h>
#include <Fonts/FreeSans12pt7b.h>
#include <Fonts/FreeSerif12pt7b.h>
#include <FreeDefaultFonts.h>
#define BLACK 0x0000
#define RED 0xF800
#define GREEN 0x07E0
#define WHITE 0xFFFF
#define GREY 0x8410
int adcsensor;
int buzzer = 11;
int btok = 10;
float fix;
int datafix;
int cacah;
float kalibrasi;
void setup()
{
uint16_t ID = tft.readID();
if (ID == 0xD3D3) ID = 0x9481; //force ID if write-only display
tft.begin(ID);
tft.setRotation(0);
tft.fillScreen(BLACK);
tft.setTextColor(GREEN, BLACK);
tft.setTextSize(2);
pinMode(buzzer,OUTPUT);
pinMode(btok,INPUT_PULLUP);
digitalWrite(buzzer,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
delay(500);
digitalWrite(buzzer,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
delay(500);
digitalWrite(buzzer,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
delay(500);
}
void loop()
{
int x = digitalRead(btok);
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 60);
tft.print("TEKAN TOMBOL ");
tft.setCursor(15, 80);
tft.print("UNTUK MULAI ");
if(x == 0){
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 60);
tft.print(" TUNGGU SEBENTAR ");
tft.setCursor(15, 80);
tft.print(" SEDANG PROSES ");
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 110);
tft.print(" ");
tft.setCursor(15, 130);
tft.print(" ");
tft.setCursor(15, 150);
tft.print(" ");
tft.setTextColor(RED, BLACK);
tft.print(" ");
tft.setCursor(15, 190);
tft.print(" ");
delay(5000);
cacah = 0;
datafix = 0;
fix = 0;
proses();
}
delay(200);
}
void proses(){
adcsensor = analogRead(A3);
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 60);
tft.print("Monitor Gula Darah ");
tft.setCursor(15, 80);
tft.print("ADC= ");
tft.setTextColor(RED, BLACK);
tft.print(adcsensor);
tft.print(" ");
cacah++;
datafix = adcsensor + datafix;
delay(10);
if(cacah > 20){
fix = datafix / 20.0;
kalibrasi = (fix - 1022.1) / 0.0967;
if(kalibrasi > 200){
digitalWrite(buzzer,HIGH);
}
if(kalibrasi < 200){
digitalWrite(buzzer,LOW);
}
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 110);
tft.print("KADAR Gula Darah");
tft.setCursor(15, 130);
tft.print("mg/dl= ");
tft.setTextColor(RED, BLACK);
tft.print(kalibrasi);
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 150);
tft.print("ADC= ");
tft.setTextColor(RED, BLACK);
tft.print(fix);
tft.print(" ");
if(kalibrasi < 60){
tft.setTextColor(GREEN, BLACK);
tft.setCursor(15, 190);
tft.print("KADAR RENDAH ");
}
if((kalibrasi >= 60)&&(kalibrasi <= 90)){
tft.setTextColor(WHITE, BLACK);
tft.setCursor(15, 190);
tft.print("KADAR NORMAL ");
}
if(kalibrasi > 90){
tft.setTextColor(RED, BLACK);
tft.setCursor(15, 190);
tft.print("KADAR TINGGI ");
}
return;
}
proses();
}
e. VIDEO HASILNYA