Halo sob ni
ad ilmu lagi………..ni ilmu-ilmu yang ane dapet dari tugas - tugas kuliah…hehehehe….
tugas kelompok sob… O iya terimakasih bwat temen-temen kelompok q yang dulu
membuat tugas ini….mari berbagi…….
Vending
Machine
Vending
Machines adalah sebuah mesin penjual otomatis yang telah diprogram agar dapat
mengeluarkan produk seperti minuman kaleng kepada pelanggan secara otomatis,
setelah sebelumya pelanggan memasukkan semisal voucher berupa koin atau kartu,
uang kertas tunai, atau bahkan kartu kredit sebagai alat bayarnya. Dengan
adanya mesin penjual
otomatis masyarakat dapat dengan mudah membeli minuman yang ia perlukan. Mesin
ini sangat praktis bagi para pembeli.
Berikut peralatan yang dibutuhkan:
a.
Microcontroller
ATMega16
Sebagai chip utama yang
akan menjalankan program digunakan Microcontroller
ATMega16. Chip ini akan diisi dengan program yang akan menjalankan veding machine. Dengan menggunakan
memory 16Kb sebagai media penyimpanan dan meng-eksekusi program untuk
menjalankan simulasi alat vending machine dengan minimum system.
b.
Tombol Input
Tombol input ini
sebagai inputan user dalam memilih menu. Inputan ini juga yang digunakan untuk menentukan
minuman mana yang diminta sesuai dengan menu yang ada dalam vending machine itu sendiri.
c.
LCD 16x2
LCD ini digunakan untuk
menampilkan menu dan jumlah koin yang dimasukkan oleh user. LCD ini membantu
memonitor semua jalannya proses dalam vending machine.
d.
Power suplly
Power suplly digunakan
untuk mengmenyuplai catu daya yang dibutuhkan vending machine untuk bisa
menyala.
Perencanaan
Perencanaan
vending machine ini dengan menggunakan simulasi minimum sistem. Simulasi ini
dapat di lihat pada proteus sebagai berikut :
Sebagai
otak mesin menggunakan ATMega16 yang dapat diprogram dengan menggunakan USB
downloader untuk menanamkan program ke dalam chip tersebut. Chip ini yang akan
mengoperasikan semua proses pada vending machine.. Sebagai interface dengan user dalam hal ini adalah pembeli digunakan tombol berupa push
button sebanyak 3 buah. Fungsinya yaitu sebagai tombol masukkan koin, Ok / Ya,
dan Cancel. Selain itu terdapat led sebanyak 3 buah yakni coin indicator, out
drink indicator, serta out coin indicator
dan 1 buah buzzer. Adapun Lcd yang digunakan
yaitu LCD 16x2 maksudnya terdapat 2 baris dengan 16 kolom, digunakan untuk
menampilkan menu.
Agar mesin dalam hal ini vending machine dapat dijalankan oleh user maka sebaiknya perlu dibuat suatu
rancangan sistem yang dikenal sebagai sequence
proses. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini :
PROSES MACHINE:
V. Listing Program
#include <mega16.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#define
led_koin PORTA.0
#define
out_drink PORTA.1
#define
out_koin PORTA.2
#define
buzzer PORTA.3
#define
in_koin PIND.0
#define
pb_ok PIND.1
#define
pb_cancel PIND.2
// Declare your global variables here
int jml_koin=0, deal;
int menu(void){
switch
(jml_koin)
{
case 1:
lcd_clear();lcd_gotoxy(0,0);lcd_putsf("1st coin
menu:");lcd_gotoxy(0,1);lcd_putsf(" Tea");break;
case 2:
lcd_clear();lcd_gotoxy(0,0);lcd_putsf("2nd coin
menu:");lcd_gotoxy(0,1);lcd_putsf(" Juice");break;
case 3:
lcd_clear();lcd_gotoxy(0,0);lcd_putsf("3rd coin
menu:");lcd_gotoxy(0,1);lcd_putsf(" Coffee Milk");break;
}
}
void make_deal(void){
if(pb_ok==0){
delay_ms(100);
if(jml_koin==0)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(" Sorry!
");
lcd_gotoxy(0,1);
lcd_putsf("No Coin No Drink");
delay_ms(1000);
deal=1;
}
else
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Take Your Drink!");
delay_ms(500);
out_drink=0;
buzzer=0;
delay_ms(100);
buzzer=1;
delay_ms(100);
buzzer=0;
delay_ms(100);
buzzer=1;
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("Thank For Buying");
delay_ms(1000);
PORTA=1;
deal=1;
}delay_ms(50);
}delay_ms(40);
}
void cancel(void){
if(pb_cancel==0){
delay_ms(80);
if(jml_koin!=0){
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Cancel..");
delay_ms(500);
lcd_gotoxy(0,1);
lcd_putsf("Take Your Coin!");
out_koin=0;
delay_ms(1000);
deal=1;
}
}
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
PORTA=0xff;
DDRA=0xff;
PORTD=0x0f;
DDRD=0x00;
// LCD module initialization
lcd_init(16);
while (1)
{
/***
Display Standby Mode ***/
jml_koin=0;
deal=0;
PORTA=0xff;
lcd_gotoxy(0,0);
lcd_putsf(" WELCOME TO ");
lcd_gotoxy(0,1);
lcd_putsf("VENDING
MACHINE");
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Ins Coin Rp Only");
lcd_gotoxy(0,1);
lcd_putsf("Rp1000 minimum!!");
delay_ms(10);
/****************************/
while(pb_cancel==1 && jml_koin!=4 && deal==0)
{
if(in_koin==0)
{
jml_koin++;
led_koin=0;
delay_ms(250);
menu();
led_koin=1;
}
make_deal();
cancel();
if(jml_koin==4){ //over
coin =coin > 3
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Over Coin..");
out_koin=0;
delay_ms(700);
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("Take Your Coin!");
delay_ms(1000);
}
};
};
}
Cara kerja mesin penjual ini yaitu pembeli akan memilih berberapa menu minuman sesuai dengan masukkan koin dalam hal ini
berupa penekanan tombol “insert coin”. Masukkan koin pertama berupa produk
tertentu yang akan keluar jika ditekan tombol “OK”. Pembeli dapat memilih
apakah ingin membeli produk yang
lain atau tidak jadi membeli. Jika iya maka pembeli dapat menekan tombol
“insert coin” untuk membeli produk yang lain, jika tidak maka keluar dengan
menekan tombol “cancel” disertai dengan pengembalian koin. Pada rancangan
sistem yang kami buat hanya terdapat tiga menu minuman yakni Teh, Juice, dan
Coffe Mix untuk tiga kali masukkan koin. Sehingga satu koin mewakili satu jenis
minuman. Apabila koin yang dimasukkan lebih dari tiga maka secara otomatis akan
keluar tampilan yang menandakan “Over Coin” disertai dengan pengembalian koin
sesuai dengan yang dimasukkan. Setelah proses di atas telah selesai maka akan
kembali ke proses awal yaitu tampilan menu pada LCD, kemudian orang berikutnya akan melakukan proses yang sama seperti yang sudah dijelaskan
di atas.
gan ini software inputan ICnya pake apa?
BalasHapusSaya perlu sistem RFID yg mengendalikan selenoid untuk buat vending machine air isi ulang, apa bisa di bantu
BalasHapushello can you please tell me what software you used to qrite the code and how to upload to proteus ???
BalasHapus