PROSES PEMBUATAN DAN PEMROGRAMAN
4.4 Rangkaian Sensor Buka Pintu dan Tutup Pintu
Ketika mikrokontroler memerintahkan motor untuk membuka pintu, mikrokontroler tidak mengetahui apakah pintu sudah terbuka lebar atau belum. Hal yang sama juga terjadi ketika mikrokontroler memerintahkan motor untuk menutup pintu, mikrokontroler tidak mengetahui apakah pintu sudah tertutup rapat atau belum. Karena itu dibutuhkan sebuah sensor yang dapat mengetahui kedua keadaan tersebut.
Dalam hal ini digunakan sebuah sensor buka pintu, yang berfungsi untuk mengetahui apakah pintu sudah terbuka lebar atau belum, dan sebuah sensor tutup pintu yang berfungsi untuk mengetahui apakah pintu sudah tertutup rapat atau belum. Rangkaian sensor buka pintu hanya terdiri dari sebuah saklar yang dihubungkan ke ground dan ke mikrokontroler AT89S51. Rangkaiannya seperti gambar dibawah ini,
P2.6 (AT89S51)
Gambar 4.3 Rangkaian Sensor Buka Pintu
Ketika sensor dalam keadaan terbuka, kondisi P2.6 adalah high. Namun jika pintu menyentuh saklar, maka P2.6 akan terhubung ke ground, yang menyebabkan kondisi P2.6 akan berubah dari high (1), menjadi low (0). Perubahan kondisi pada
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009
P2.6 inilah yang dikenali oleh mikrokontroler sebagai tanda bahwa pintu telah terbuka lebar, maka mikrokontroler akan memerintahkan motor stepper untuk berhenti berputar, sehingga pintu tidak terbuka lebih lebar lagi.
Program untuk mendeteksi pengiriman sinyal dari sensor buka pintu ini adalah :
Buka_Pintu:
. . .
Jb P2.6,Buka_Pintu mov P0,#0h
Program di atas akan melihat kondisi P2.6 yang dihubungkan ke sensor buka pintu, dengan menggunakan perintah JB (jump if bit), jika kondisi P2.6 bit (high), yang berarti pintu belum terbuka lebar, maka mikrokontroler akan tetap memerintahkan motor untuk berputar membuka pintu sampai mendapatkan sinyal low (0) dari sensor. Jika kondisi P2.6 notbit (low), maka mikrokontroler akan memerintahkan motor untuk berhenti membuka pintu, dengan menggunakan perintah mov P0,#0h.
Hal yang sama juga terjadi pada sensor tutup pintu, perbedaanya hanya pada port mikrokontroler yang digunakan. Jika sensor buka pintu dihubungkan ke P2.6, maka sensor tutup pintu dihubungkan ke P2.7.
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009
4.5 Rangkaian Driver Motor Stepper
Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran, dimana masing-masing masukan dihubungkan dengan mikrokontroler AT89S51 dan keluarannya dihubungkan ke motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high (1) secara bergantian pada ke-4 masukannya. Rangkaiannya seperti gambar di bawah :
Gambar 4.4 Rangkaian Driver Motor Stepper
Rangkaian ini terdiri dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51. Basis dari masing-masing transistor diberi tahanan 10 Kohm untuk membatasi arus yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat
Tip 122 Tip 122 VCC 12V MOTOR AT89S51 (P0.0) AT89S51 (P0.2) Stepper VCC 12V Tip 122 Tip 122 1.0k 1.0k AT89S51 (P0.1) 1.0k 1.0k AT89S51 (P0.3)
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009
pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt.dan emitor dihubungkan ke ground.
Jika P0.0 diberi logika high (1), yang berarti basis pada transistor TIP 122 mendapat tegangan 5 volt, maka transistor akan aktip. Hal ini akan menyebabkan terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke kumparan, sehingga kumparan akan menghasilkan medan magnet. Medan magnet ini akan menarik logam yang ada pada motor, sehingga motor mengarah pada kumparan yang memiliki medan magnet tesebut.
Jika kemudian P0.0 di beri logika low (0), yang berarti transistor tidak aktip dan tidak ada arus yang mengair pada kumparan, sehingga tidak ada medan magnet pada kumparan. Dan disisi lain P0.1 diberi logika high (1), sehingga kumparan yang terhubung ke P0.1 akan menghasilkan medan magnet. Maka motor akan beralih kearah kumparan yang terhubung ke P0.1 tersebut. Seterusnya jika logika high diberikan secara bergantian pada input dari driver motor stepper, maka motor stepper akan berputar sesuai dengan arah logika high (1) yang diberikan pada inputnya.
Untuk memutar dengan arah yang berlawanan dengan arah yang sebelumnya, maka logika high (1) pada input driver motor stepper harus diberikan secara bergantian dengan arah yang berlawanan dengan sebelumnya.
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009
Program yang diberikan pada driver motor stepper untuk memutar motor stepper adalah sebagai berikut :
mov a,#11h Buka_Pintu: mov P0,a acall tunda Rl a Jb Sensor_Buka,Buka_Pintu mov P0,#0h
Program diawali dengan memberikan nilai 11h pada pada accumulator (a), kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0, sehingga sekarang nilai port 0 adalah 11h. ini berarti P0.0 dan P0.4 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah ini :
P0.7 P0.6 P0.5 P0.4 P0.3
P0 0 0 0 1 0
Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan mempengaruhi kecepatan perputaran motor. Semakin lama maka tunda, maka perputaran motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan memutar nilai yang ada pada accumulator (a), seperti tampak pada table di bawah ini :
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007. USU Repository © 2009 a 0 0 0 1 0 0 0 Rl a 0 0 1 0 0 0 0 Dst...
Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a, maka nilai pada accumulator (a) akan merubah menjadi 22h. Kemudian program akan melihat apakah kondisi sensor buka pintu dalam keadaan high (1) atau low (0).
Jika kondisi sensor buka pintu high (1), yang berarti pintu belum terbuka lebar, maka program akan kembali ke rutin buka pintu untuk terus membuka pintu. Nilai yang ada pada accumulator (a), akan kembali diisikan ke port 0, maka nilai di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah ini :
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
P0 0 0 1 0 0 0 1 0
Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan driver motor stepper, dengan program di atas maka P0.0, P0.1, P0.2, dan P0.3 akan mendapatkan nilai high (1) secara bergantian. Hal ini menyebabkan motor stepper akan berputar membuka pintu. Pintu akan terus dibuka sampai sensor buka pintu mengirimkan logika low (0). Jika kondisi sensor buka pintu low (0), yang
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009
berarti pintu telah terbuka lebar maka program akan melanjutkan ke baris berikutnya, yaitu mengisi port 0 dengan nilai 0h, yang merupakan perintah untuk menghentikan perputaran motor.
Hal yang sama juga berlaku ketika motor berputar untuk menutup pintu, perbedaannya hanya pada perintah rotate. Jika pada perintah buka pintu digunakan rotate left ( Rl ), maka pada perintah tutup pintu digunakan perintah rotate right ( Rr). Perputaran perintah Rr diperlihatkan pada table berikut :
a 1 0 0 0 1 0 0 0
R r
a 0 1 0 0 0 1 0 0
Frengky Saut P. Sinurat : Perancangan Ranggkaian Running Text Dalam Penggunaan Pintu Otomatis Berbasis Mikrokontroler AT89S51, 2007.
USU Repository © 2009