Dosen Pengampu : Dr. Samuel Beta Kuntoardjo.,ING.TECH,M.T.,DR
Kelompok B3
Anisatul Maghfiroh 3.32.20.1.03
Tarmin 3.32.20.2.24
Masukan : Thermistor, Tombol dan Potensiometer.
Keluaran : LCD, Pemanas 12V 40 Watt, Motor DC 12V, dan Kipas 12V.
Pemproses : Arduino Nano.
LATAR BELAKANG
Sampah plastik di Indonesia menjadi permasalahan yang cukup serius, penggunaan plastik sekali pakai merupakan penyebab utama sampah plastik di Indonesia meningkat. Saat ini sudah banyak gerakan-gerakan untuk memanfaatkan limbah plastik dengan cara didaur ulang menjadi barang rumahan atau diolah kembali untuk kebutuhan industri. Pembuatan filament 3D printer dari limbah plastik merupakan salah satu cara yang tepat, hal ini dikarenakan teknologi 3D ptinter sudah dikenal luas di Indonesia dari berbagai kalangan termasuk mahasiswa. Pembuatan filamen dari sampah plastik diharapakan dapat memanfaatkan limbah plastik pada lingkungan di sekitar kita. Filamen dengan bahan daur ulang bisa menjadi sarana mahasiswa untuk mempermudah memperlajari cara kerja 3D Printer.
POWERPOINT MATERI PROYEK BESAR :
PROGRAM :
//==== DAFTAR PUSTAKA ====
#include <Adafruit_GFX.h>
#define OLED_RESET -1
#include <Adafruit_SH1106.h>
Adafruit_SH1106 display(OLED_RESET);
#include <AccelStepper.h> //library motor stepper
//====DEKLARASI VARIABEL====
//PIN TOMBOL
#define btnUp 9
#define btnOk 8
#define btnDown 7
#define btnBack 6
//VARIABEL TOMBOL
boolean statusBtnUp = false;
boolean statusBtnOk = false;
boolean statusBtnDown = false;
boolean statusBtnBack = false;
boolean statusAkhirBtnUp = false;
boolean statusAkhirBtnOk = false;
boolean statusAkhirBtnDown = false;
boolean statusAkhirBtnBack = false;
boolean UP = false;
boolean OK = false;
boolean DOWN = false;
boolean BACK = false;
//VARIABEL KEADAAN
int halaman = 1;
int menuItem = 1;
int S_step ;
int S_suhu ;
int fb_suhu;
int pemanas = 13;
int speed;
int speed_lcd;
int suhu;
int suhuact;
int pwm;
//===== PROGRAM SETUP ====
void setup(){
//DEKLARASI PINMODE
pinMode(pemanas, OUTPUT);
pinMode(btnUp, INPUT_PULLUP);
pinMode(btnOk, INPUT_PULLUP);
pinMode(btnDown, INPUT_PULLUP);
pinMode(btnBack, INPUT_PULLUP);
pinMode(pwm, OUTPUT);
//INISIASI LIBRARI LCD OLED
display.begin(SH1106_SWITCHCAPVCC, 0x3C);
//TAMPILAN PEMBUKA
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.print("Filament 3D Printer");
display.setCursor(40, 30);
display.print("Recycling");
display.display();
delay(2000);
display.clearDisplay();
}
//==== PROGRAM UTAMA ====
void loop(){
tampil(); //PROGRAM UNTUK TAMPILAN OLED
//MEMBACA STATUS TOMBOL PADA PIN DIGITAL
statusBtnUp = digitalRead(btnUp);
statusBtnOk = digitalRead(btnOk);
statusBtnDown = digitalRead(btnDown);
statusBtnBack = digitalRead(btnBack);
//PROGRAM SAAT TOMBOL DITEKAN
saatUpDitekan();
saatOkDitekan();
saatDownDitekan();
saatBackDitekan();
// untuk button up
if (UP && halaman == 1) {
UP = false;
menuItem --;
if (menuItem < 1)menuItem = 3;
}
//untuk button down
if (DOWN && halaman == 1) {
DOWN = false;
menuItem ++;
if (menuItem > 3)menuItem = 1;
}
// untuk button ok
if (OK) {
OK = false;
if (halaman == 1 && menuItem == 1) {
halaman = 2;
} else if (halaman == 1 && menuItem == 2) {
halaman = 3;
} else if (halaman == 1 && menuItem == 3) {
halaman = 4;
}
}
// untuk button back
if (BACK) {
BACK = false;
if (halaman == 2 || halaman == 3 || halaman == 4 ) {
halaman = 1;
}
}
Serial.println(menuItem);
delay(100);
}
//==== PROGRAM SAAT TOMBOL DITEKAN
void saatUpDitekan() {
if (statusBtnUp != statusAkhirBtnUp) {
if (statusBtnUp == 0) {
UP = true; //MENGUBAH KONDISI TOMBOL UP MENJADI TRUE
}
delay(50);
}
statusAkhirBtnUp = statusBtnUp;
}
void saatOkDitekan() {
if (statusBtnOk != statusAkhirBtnOk) {
if (statusBtnOk == 0) {
OK = true; //MENGUBAH KONDISI TOMBOL OK MENJADI TRUE
}
delay(50);
}
statusAkhirBtnOk = statusBtnOk;
}
void saatDownDitekan() {
if (statusBtnDown != statusAkhirBtnDown) {
if (statusBtnDown == 0) {
DOWN = true; //MENGUBAH KONDISI TOMBOL DOWN MENJADI TRUE
}
delay(50);
}
statusAkhirBtnDown = statusBtnDown;
}
void saatBackDitekan() {
if (statusBtnBack != statusAkhirBtnBack) {
if (statusBtnBack == 0) {
BACK = true; //MENGUBAH KONDISI TOMBOL BACK MENJADI TRUE
}
delay(50);
}
statusAkhirBtnBack = statusBtnBack;
}
//----------------------------------------------------------------------------
//==== PROGRAM FUNGSI TAMPILAN PADA LCD OLED
void tampil() {
if (halaman == 1) {
digitalWrite(pemanas,1); //MEMATIKAN KONDISI RELAY PADA PEMANAS
//TAMPILAN PADA HALAMAN AWAL
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("DAFTAR MENU");
display.setCursor(10,48);
display.print("POLITEKNIK NEGERI");
display.setCursor(35,58);
display.print("SEMARANG");
//PROGRAM UNTUK PEMILIHAN MENU
if (menuItem == 1) {
display.setCursor(5, 15);
display.setTextColor(WHITE);
display.print("> ATUR SUHU");
} else {
display.setCursor(5, 15);
display.setTextColor(WHITE);
display.print(" ATUR SUHU");
}
if (menuItem == 2) {
display.setCursor(5, 25);
display.setTextColor(WHITE);
display.print("> ATUR KECEPATAN");
} else {
display.setCursor(5, 25);
display.setTextColor(WHITE);
display.print(" ATUR KECEPATAN");
}
if (menuItem == 3) {
display.setCursor(5, 35);
display.setTextColor(WHITE);
display.print("> MULAI");
} else {
display.setCursor(5, 35);
display.setTextColor(WHITE);
display.print(" MULAI");
}
} else if (halaman == 2) { //PROGRAM HALAMAN 2 UNTUK MENGATUR SUHU
S_suhu = analogRead(A0); //MEMBACA PIN A0 UNTUK MENGATUR SUHU
suhu = map(S_suhu, 0, 1023, 0, 300); //MENGUBAH DATA 10 BIT MENJADI SUHU
//FUNGSI TAMPILAN HALAMAN 2
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(33, 0);
display.print("ATUR SUHU");
display.setCursor(5, 30);
display.print("Suhu =");
display.print(suhu); //MENAMPILKAN SUHU YANG SUDAH DIATUR
} else if (halaman == 3) { //HALAMAN 3 UNTUK MENGATUR KECEPATAN MOTOR
S_step = analogRead(A0); //MEMBACA PIN A0 UNTUK MENGATUR PWM
speed = map(S_step, 0, 1023, 0, 255); //MENGUBAH DATA 10 BIT MENJADI 8 BIT
speed_lcd = map(S_step, 0, 1023, 0, 100); //MENGUBAH DATA 10 BIT MENJADI 0-100
//FUNGSI TAMPILAN HALAMAN 3
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(20, 0);
display.print("ATUR KECEPATAN");
display.setCursor(5, 30);
display.print("Kecepatan =");
display.print(speed_lcd); //MENAMPILKAN DATA PADA PIN A0
} else if (halaman == 4) { //HALAMAN 4 UNTUK MEMULAI ALAT
fb_suhu =analogRead(A1); //MEMBACA PIN A1 SEBAGAI FEEDBACK SUHU
suhuact = map(fb_suhu, 0, 1023, 0, 300); //MENGUBAH DATA 10 BIT MENJADI SUHU
//TAMPILAN PADA HALAMAN 4
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(49, 0);
display.print("MULAI");
display.setCursor(5, 20);
display.print("Suhu =");
display.print(suhu);
display.print((char)247);
display.println("C");
display.setCursor(5, 30);
display.print("Suhu Aktual =");
display.print(suhuact);
display.print((char)247);
display.println("C");
display.setCursor(5, 40);
display.print("Kecepatan =");
display.print(speed_lcd);
display.print("%");
display.setCursor(0, 55);
display.print("TEKAN BACK UNTUK STOP");
//PWM UNTUK KECEPATAN MOTOR
analogWrite(pwm,speed);
//PROGRAM UNTUK KENDALI PEMANAS
if (suhuact <= suhu){
digitalWrite(pemanas, 0); //Aktif rendah
}if ( suhuact >= suhu){
digitalWrite(pemanas,1);
}
}
display.display();
}
VIDEO DEMONSTRASI ALAT :

Komentar
Posting Komentar