ALAT PEMBUAT FILAMENT 3D PRINTER BERBAHAN LIMBAH PLASTIK BOTOL PET



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 :

Unduh Di sini
























 

PROGRAM :

UNDUH DI SINI

//==== 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