ALAT ETCHING PCB BERBASIS ARDUINO UNO (KELOMPOK B6)

 ALAT ETCHING PCB BERBASIS ARDUINO UNO

 


Dosen Pengampu : Dr. Samuel Beta Kuntoardjo.,ING.TECH,MT,DR


KELOMPOK B6

Balqis Shafira Chairuliez (3.32.20.1.07)

Muhammad Abimanyu Nugroho (3.32.20.1.17)

 

LATAR BELAKANG

Printed Circuit Board (PCB) merupakan papan yang digunakan untuk membuat jalur suatu rangkaian elektronik. Dalam proses pembuatan PCB diperlukan beberapa tahap antara lain dari mulai proses perancangan layout PCB, penggambaran layout, penyablonan layout pada PCB dan pelarutan PCB. Pelarutan PCB (Etching) adalah suatu proses untuk membuang bagian logam yang tidak dibutuhkan dari Papan PCB kosong. Dengan teknik ini, rangkaian skematik yang telah tercetak di papan PCB kosong dapat diproses dan digunakan untuk merakit sebuah rangkaian elektronik. Proses etching PCB masih banyak dilakukan secara manual. Proses tersebut memiliki beberapa kelemahan, antara lain: 1) Operator memiliki resiko yang besar terkena larutan kimia yang dapat menyebabkan iritasi pada kulit; dan 2) Waktu proses cukup lama, yaitu lebih dari 20 menit. Oleh sebab itu diperlukan sebuah Alat Etching PCB yang dapat menghindarkan operator dari resiko terkena larutan kimia dan mempercepat waktu proses. PCB dengan berbagai teknologi sudah cukup banyak tersedia. Namun dari aspek biaya masih cukup tinggi. Oleh karenanya, dibutuhkan sebuah alat etching PCB yang sederhana namun cukup efektif mengatasi kelemahan proses etching manual. Mempelajari dari penelitian yang pernah dilakukan sebelumnya mengenai perancangan.

KOMPONEN

KOMPONEN MASUKAN      :Push Button.
PEMROSES KOMPONEN      : Arduino Uno.
KOMPONEN KELUARAN     : LCD I2C 16x2, Driver Motor L298N, Motor DC, Buzzer, LED.

Power Point Presentasi (Unduh Disini)

 













Program Alat Etching PCB Berbasis Arduino Uno (Unduh Disini)

/* ================================================ ==================================

Program : Kelompok EK-3B/02
1. Balqis Safira Chairuliez NIM 3.32.20.1.07
2. Muhammad Abimanyu Nugroho NIM 3.32.20.1.17

================================================== ===================================
Proyek Laboratorium Mikrokontroler II
file : B06-Lab-Mikro.ino
Program Alat Etching PCB Berbasis Arduino Uno
-------------------------------------------------- -----------------------------------
Komponen :
- Arduino Uno
- Push Button
- Driver Motor L298N
- Motor DC
- Bel
- LED
================================================== =================================== */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte pwm_output= 11; //Pin Output Motor
byte pwm_input= A0; //Pin Potensio

#define UpPIN 6  //Pin Push Buton Up
#define DownPIN 7 //Pin Push Buton Down
#define OkPIN 8  //Pin Push Buton Ok

const int BUZZER = 9 ; //Pin Buzzer
const int LED =10 ; //Pin Led
const int MOTOR = pwm_output;  
int Up,Down,Ok;
int setUp=0,setDown=0,setOk=0;
int settimer =0;
int value_potensio =0;
int output =0;
int value =0;
    
int minute =0;
int m, s = 0;



void setup()
{
 
 
  pinMode(UpPIN,INPUT_PULLUP);
  pinMode(DownPIN, INPUT_PULLUP);
  pinMode(OkPIN, INPUT_PULLUP);
   
  pinMode(pwm_output,OUTPUT);
  pinMode(pwm_input,INPUT);

  pinMode(BUZZER, OUTPUT);
  pinMode(LED, OUTPUT);

  lcd.begin();
  lcd.backlight();

   lcd.setCursor(0,0);
   lcd.print("Etching PCB ");
   lcd.setCursor(0,1);
   lcd.print("Machine   ");
   delay(2000);  
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("  ***Ready***   ");  
   lcd.setCursor(0, 1);
   lcd.print("       *         ");
   delay(40);
 
   digitalWrite(BUZZER, HIGH);
   delay(500);    
   digitalWrite(BUZZER, LOW);
   delay(200);                                         
   digitalWrite(BUZZER, HIGH);
   delay(500);                       
   digitalWrite(BUZZER, LOW);                                     
                  
    }                                     

 void loop()
 {
   Up=   digitalRead(6);
   Down= digitalRead(7);
   Ok=   digitalRead(8);
   tampil();
 }


 void tampil()
{
 if (Ok==0 && setOk==0){setOk=1;}
 if (Ok!=0 && setOk==1){setOk=0; settimer=1;}

 
 {
 
 if (settimer==1)
        
 {
 
   lcd.clear();
   lcd.setCursor(1,0);
   lcd.print("**Set Timer** ");
   delay(1000);
        
   while (digitalRead(OkPIN) == 1) {
   if (digitalRead(UpPIN) == 0) {
   if (minute >= 30)
  {
    
    minute = 0;
                  
  }
 
   else
  {
      minute++;
                 
  }
               }
   if (digitalRead(DownPIN) == 0) {
   if (minute < 1) { minute = 5;  }
                   
 else {
 
         minute--;
                   
       }
       
         }
         
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Time:    minute");
 lcd.setCursor(6, 0);
 lcd.print(minute);
 delay(400);
 lcd.setCursor(0, 1);
 lcd.print("Timer Setting");
 delay(800);
              
        }

 lcd.clear();
 m = minute;
 s = 0;
 lcd.setCursor(4, 0);
 lcd.print("Start");
 delay(500);
             
 for (m; m >= 0; m--) {
 for (s; s >= 0; s--) {
 value_potensio = analogRead(pwm_input);
 output = map(value_potensio,0,1023,0,255);
 analogWrite( MOTOR,output);
 digitalWrite(LED, HIGH);
 lcd.clear();
 int value = analogRead(pwm_input);
 value = map (value, 0, 1023 , 0, 6);
 
 lcd.setCursor(0, 0);
 lcd.print("Start  ");
 lcd.print(m);
 lcd.print(" : ");
 lcd.print(s);
 lcd.setCursor(0, 1);
 lcd.print("Motor Speed : ");
 lcd.print(value);
 if (digitalRead(OkPIN) == 0) {
 goto timeStop;
            
  }
   delay(1000);
               }
                  s = 59;
               }
                 
                              
                 digitalWrite(MOTOR, LOW);
                 digitalWrite(LED, LOW);
                 lcd.clear();
                 lcd.setCursor(3, 0);
                 lcd.print(">>>Done<<<");
                 digitalWrite(BUZZER, HIGH);
                 delay(1500);    
                 digitalWrite(BUZZER, LOW);
                 delay(7000);
                 return ;  
                       
                 while (digitalRead(OkPIN) == 1)          
               {
                lcd.setCursor(3, 0);
                lcd.print(">>>Done<<<");
         
              }   
                       
                timeStop:
                lcd.clear();
                lcd.setCursor(4, 0);
                lcd.print("STOP!!!");  
                delay(500);
                digitalWrite(MOTOR, LOW);
                delay(100);  
                digitalWrite(LED, LOW);
                delay(100);
                return ;   
 


}}}

Video Proyek (Klik Disini)

Komentar