Laman

Tampilkan postingan dengan label Ilmu Umum. Tampilkan semua postingan
Tampilkan postingan dengan label Ilmu Umum. Tampilkan semua postingan

Rabu, 21 Mei 2014

SMK NEGERI 2 SINGOSARI. LULUS 100% !!!



SMK NEGERI 2 SINGOSARI. LULUS 100% !!!

Kemarin, (20/5) serentak dilaksanakan pengumuman kelulusan bagi siswa Sekolah Menengah Kejuruan dan sederajat di seluruh Indonesia. Pelaksanaan yang berlangsung pada pukul 11 siang ini membuat sebagian besar wali murid maupun siswa merasa tegang. 

Siswa Sekolah Menengah Kejuruan di Singosaripun, berbondong-bondong untuk menyempatkan datang ke sekolah masing-masing. Salah satunya SMK Negeri 2 Singosari yang dipenuhi siswa kelas XII (3 SMK)  untuk mengetahui hasil kerja kerasnya selama ini. Namun, berbeda dengan sebagian kecil siswa yang memilih mengisi waktu liburan dengan bepergian dan percaya akan lulus 100%. Perasaan khawatir menjadi hal yang pasti dialami saat menunggu hasilnya. “Ya yang pasti ‘deg-degan’, tertekan, takut kalau ada yang gak lulus kan ya kasian. Masa masuknya bareng lulusnya ndak bareng, tapi saya yakin lulus semua. ” Ujar Widya XII Broadcast. Dan hasil kekhawatiran mereka terbayar lunas dengan hasil lulus 100%.
Lanjut untuk bekerja menjadi tujuan utama sebagian besar siswa SMK NEGERI 2 SINGOSARI, namun melanjutkan kejenjang selanjutnya seperti perguruan tinggi  juga sangat penting untuk menunjang ilmu yang telah dipelajari selama di SMK. Untuk menghindari  tindakan tidak terpuji siswa dilarang melakukan aksi corat coret baju maupun konvoi. Berbagai masukan yang diberikan oleh guru- guru kepada siswa siswi yang lulus agar tidak melupakan almamater SMK NEGERI 2 SINGOSARI, dan mencari ilmu sebanyak- banyaknya di tempat pendidikan yang di jalaninya kelak.
Perjuangan guru- guru tidak sia- sia karena telah berhasil membawa siswa siswi untuk menyelasaikan studi  dengan baik. Salah satu wali murid berkata, “Saya berterima kasih kepada guru- guru yang telah mendidik siswa- siswi SMK NEGERI 2 SINGOSARI dengan baik  sehingga lulus 100%”.


Sabtu, 28 Desember 2013

MICROCONTROLLER TIMER DAN COUNTER


Timer & Counter merupakan fitur yang telah tertanam di mikrokontroler AVR yang memiliki fungsi terhadap waktu. Fungsi pewaktu yang dimaksud disini adalah penentuan kapan program tersebut dijalankan, tidak hanya itu saja fungsi timer yang lainnya adalah PWM, ADC, dan Oscillator. Prinsip kerja timer dengan cara membagi frekuensi (prescaler) pada clock yang terdapat pada mikrokontroler sehingga timer dapat berjalan sesuai dengan frekuensi yang di kehendaki.
Timer merupakan fungsi waktu yang sumber clocknya berasal dari clock internal. Sedangkan counter merupakan fungsi perhitungan yang sumber clocknya berasal dari external mikrokontroler. Salah satu contoh penggunaan fungsi timer yaitu pada jam digital yang sumber clocknya bisa menggunakan crystal oscillator dan contoh penggunaan counter pada penghitung barang pada konveyor yang sumber clocknya berasal dari sensor yang mendeteksi barang tersebut.
Pada mikrokontroler ATMEGA 16 memiliki 3 buah timer yaitu timer 0 (8bit), timer1 (16bit), dan timer 2 (8bit). Untuk mengenai register lengkapnya bisa dibaca pada datasheet. Namun yang akan dibahas pada tulisan kali ini hanya timer 0(8bit) dan timer1 (16 bit) saja.
Register yang Digunakan untuk Timer & Counter
  • TCNT0 = Register Timer 1
  • TCNT 1 = Register Timer 0
  • Ttimer0 = Periode Timer 0
  • Ttimer 1 =Periode Timer 1
  • Tosc = Periode Clock
  • Fosc = Frekuensi Crystall Clock
  • N = Prescaler (1, 8, 64, 256, 1024)
Prescaler
Pada dasarnya Timer hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang digunakan atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024.
Contoh penggunaan prescaler :
Suatu mikrokontroler menggunakan crystal dengan frekuensi 8 MHz dan timer yang digunakan adalah Timer 1 (16 Bit) maka maksimum waktu Timer yang bisa dihasilkan adalah :
TMAX = 1/fCLK x (FFFFh + 1)
= 0.125 µs x 65536
= 0.008192 s
Untuk menghasilkan waktu Timer yang lebih lama dapat menggunakan prescaler 1024, maka waktu Timer yang bisa dihasilkan adalah :
TMAX = 1/fCLK x (FFFFh+1) x N
= 0.125 µs x 655536 x 1024
= 8.388608 s
Tujuan Penggunaan Timer & Counter
  1. Melaksanaan tugas secara ber-ulang
  2. Mengendalikan kecepatan motor DC (PWM)
  3. Melakukan perhitungan (Counter)
  4. Membuat penundaan waktu (delay)
TIMER 0 (8 Bit)
Blok Diagram Timer 0
Untuk perhitungan timer 0 dapat menggunakan rumus :
Ttimer0 = Tosc*(256-TCNT0)*N     → (8 Bit = 256 ≈ 2^8)
Sebenarnya Timer 0 tidak dapat menghasilkan periode selama 1 detik karena keterbatasan jumlah bit nya (8 bit = 256). Namun dengan penggunaan rumus dapat dilakukan pemanipulasian agar timer 0 dapat menghasilkan periode waktu selama 1 detik. Dengan cara membuat timer selama 0.01 detik lalu dilakukan perulangan sebanyak 100 kali sehingga akan menghasilkan waktu 1 detik (0.01 detik x 100 kali = 1 detik).
Contoh penggunaan untuk timer 0  dengan crystal 12 MHz dan menggunakan skala clock 1024 maka akan menghasilkan :
Tosc = 1/Fosc = 1/12 = 0,083
0.01 = 0.083*(256-TCNT0)*1024
TCNT = 128= 8A (Hexadesimal)
Berdasarkan perhitungan tersebut di dapatkan 8A, maka nilai tersebut harus di inputkan ke register TCNT0 agar timer 0 bernilai 1 detik. Berikut ini contoh penggunaan nya pada Codevision AVR :
TIMER 1 (16 Bit)
Blok Diagram TImer 1
Untuk perhitungan timer 1 dapat menggunakan rumus :
Ttimer 1 = Tosc*(65536-TCNT1)*N     →(16 Bit = 65536 ≈ 2^16)
Contoh penggunaan untuk timer 1 detik (Timer1 = 1 detik) dengan crystal 12 MHz dan menggunakan skala clock 1024 maka akan menghasilkan :
Tosc = 1/Fosc = 1/12 = 0,083
1 = 0.083*(65536-TCNT1)*1024
TCNT = 53818 = D23A (Hexadesimal)
Berdasarkan perhitungan tersebut di dapatkan D23A, maka nilai tersebut harus di inputkan ke register TCNT1 agar timer 1 bernilai 1 detik. Berikut ini contoh penggunaan nya pada Codevision AVR :
Counter 0 & 1
Untuk penggunaan fungsi counter pada mikrokontroler lebih mudah jika dibandingkan dengan fungsi timer, karena tidak memerlukan perhitungan untuk penginputan nilai ke register TCNT. Register TCNT akan secara otomatis akan mencacah jika ada input yang masuk, input yang masuk contohnya dapat berupa push button.
Pada Counter 0, input berasal dari T0 atau PORT B 0 yang mampu mencacah input hingga 256 (8 Bit). Berikut ini konfigurasi Counter 0 pada Codevision AVR :
Pada Counter 1, input berasal dari T1 atau PORT B 1 yang mampu mencacah hingga 65536 (16 Bit).
Untuk konfigurasi counter 0 & 1 pada Codevision AVR sama seperti konfigurasi Timer 0 dan 1.

ADC MICROCONTROLLER


ADC (Analog Digital Converter) merupakan fitur pada mikrokontroler yang berfungsi untuk mengkonversi sinyal/data dari besaran analog menjadi besaran digital. Mengapa harus di konversi ? Karena sebagian besar data/sinyal yang ada di dunia ini merupakan besaran analog. Pengkonversian data dari analog ke digital merupakan suatu cara untuk mengolah data analog tersebut agar dapat di modifikasi, di manipulasi dan mengubah karakteristiknya.
Contoh besaran analog yang sering di temui dalam kehidupan sehari-hari yaitu suhu, cahaya, kecepatan,tegangan, suara, dll. Fitur ADC ini sering digunakan dalam proses industri dan komunikasi digital. ADC inilah yang menghubungkan antara sensor dengan sistem komputer yang telah terintegrasi.
ADC memiliki 2 faktor penting pada penggunaannya yaitu Kecepatan Sampling dan Resolusi. Dimana kecepatan sampling ini berpengaruh terhadap seberapa banyak sinyal analog yang di konversi ke sinyal digital dalam satuan waktu. Satuan waktu yang digunakan yaitu SPS (Sample per Second). Sedangkan resolusi ADC berpengaruh terhadap ketelitian hasil konversinya. Resolusi pada mikrokontroler AVR ada 2 yaitu resolusi 8 bit dan 10 bit.

Fitur ADC Mikrokontroler AVR ATMega 16/32
ADC 8 Bit dan 10 Bit
ATMEGA 16 memiliki 8 channel ADC yang ber-resolusi 8 bit dan 10 bit. Yang dimaksud 8 channel adalah pada PORTA, PORT0 sampai PORT 7 (8 PORT).  Jadi rentang nilai pada 8 bit sebesar 2^8 = 256 dan pada 10 bit sebesar 2^10 = 1024. Nilai analog yang digunakan untuk acuan konversi dari mikrokontroler sebesar 5V. Nilai ini juga dapat diubah tergantung dengan kebutuhan dari referensi analog yang kita gunakan. Pada mikrokontroler ATMEGA 16 tegangan referensi dapat diaktifkan melalui pin AREF dan AVCC yang sebelumnya telah diberikan tegangan.
Jadi jika nilai konversi ADC ke digital seperti berikut :
  1. Nilai 0 pada ADC akan menghasilkan tegangan 0 Volt
  2. Nilai 512 pada ADC akan menghasilkan tegangan 2.5 Volt
  3. Nilai 1024 pada ADC akan menghasilkan tegangan 5 Volt
Untuk nilai ADC yang akan di interfacingkan dengan mikrokontroler dapat di variasikan menggunakan potensio, sensor suhu, sensor ultrasonik, dll
Konfigurasi ADC pada Codevision AVR
  
Secara default Codevision akan mengkonfigurasi ADC menjadi 10 bit jika kita meng-enable-kan konfigurasinya. Jika ingin menggunakan ADC dengan resolusi 8 bit maka perlu untuk men-check list pada menu tersebut.
Untuk perintah pembacaan program ADC dapat menggunakan listing program berikut :
int ADC;
ADC=read_adc(0);

Sensor Proximity

Sensor proximity merupakan suatu komponen yang berfungsi untuk mendeteksi ada atau tidaknya suatu objek. Sensor proximity dapat mendeteksi keberedaan benda disekitarnya tanpa ada kontak fisik dengan benda tersebut. Cara kerja sensor proximity ini yaitu dengan memancarkan medan elektromagnetik dan mencari perubahan bentuk medan elektromagnetik pada saat benda di deteksi. Contoh medan elektromagnetik yang sering digunakan yaitu sinar infra merah. Jika benda telah terdeteksi maka sinyal infra red  tersebut akan merubah bentuk sinyal dan mengirimkan sinyal kembali ke sensor dan memberitahukan bahwa di depan sensor terdapat benda. Target sensor yang berbeda-beda juga membutuhkan jenis sensor proximity yang berbeda pula. Contohnya sensor fotolistrik kapasitif akan cocok dengan target yang mempunyai benda berbahan dasar plastik sedangkan sensor proximity induktif akan mendeteksi benda berbahan dasar logam.
Jarak maksimum sensor proximity yang bisa terdeteksi dinamakan dengan nominal range. Beberapa sensor perlu diatur untuk penyesuaian nominal range nya atau dibuatkan list untuk batas kerjan jarakya.
Sensor proximity ini memiliki keunggulan dalam hal kemampuan yang tinggi dan umur pakai yang lama karena sensor ini tidak ada bagian mekanisnya yang kotak langsung dengan objek
Fungsi Sensor Proximity
  • Mendeteksi suatu objek
  • Mengukur dimensi suatu objek
  • Menghitung banyaknya objek
  • Mendeteksi simbol
  • Pemeriksaan objek
  • Pendeteksian warna
Selain itu ada juga fungsi yang tersirat yaitu sebagai pengontrol suatu sistem yang menggunakan sensor proximity. Dan juga fungsi lainnya yaitu untuk keamanan sistem.
Tipe Sensor Proximity
1. Induktif Proximity
Tipe proximity yang bekerja berdasarkan perubahan induktansi apabila ada objek metal/logam yang berada dalam cakupan wilayah kerja sensor. Tipe ini hanya dapat mendeteksi benda logam saja dengan jarak deteksi maksimum sebesar 6 cm. Bahan dasar logam sangat mempengaruhi kemampuan pendeteksian sensor
2. Kapasitif Proximity
Tipe proximity yang bekerja berdasarkan perubahan kapasitas objek yang berada pada cakupan daerah kerja sensor. Tipe ini dapat mendeteksi semua jenis benda dan memiliki jarak maksimum 2 cm.
Jenis Pemasangan Proximity
Cara pemasangan sensor proximity terbagi menjadi 2 yaitu :
1. Flush
Flush merupakan cara pemasangan atau penanaman sensor proximity di dalam bahan metal. Pada tipe pemasangan ini hampir seluruh sensor dibenamkan dalam metal.
2. Non-Flush
Flush merupakan cara pemasangan atau penanaman sensor proximity di luar bahan metal dan diberi jarak dengan benda-benda disekitarnya.

SEVEN SEGMENT DISPLAY

Seven segment merupakan suatu komponen yang berfungsi untuk menampilkan angka desimal yang biasanya dipakai pada jam digital,meteran elektronik dan piranti elektronik lainnya yang menampilkan informasi berupa angka. Seven segment ini merupakan salah satukompnen display visual yang sering digunakan dalam dunia elektronika digital, selain seven segment ada juga dot matrix, LCD, dll.
Seven segment terdiri dari 7 LED yang membentuk sebuah angka 8 dan 1 buah LED yang terdapat pada titiknya. Seven segment dapat menampilkan angka 0-9, bisa juga dengan memaksa untuk membentuk suatu huruf. Penyusunan LED pada seven segment di beri indeks menggunakan label a sampai g dan titik (dot point).

Truth Table Seven Segmnet :

Rangkaian Common katoda dan anoda
Common anoda merupakan penyatuan seluruh anoda LED pada seven segment secara paralel dan dihubungkan ke VCC. Sifat Common Anoda ini akan aktif pada saat kondisi LOW, maksudnya kondisi LOW dimana LED akan menyala jika di beri logic 0. Sedangkan Common catoda merupakan kebalikan dari common anoda dimana seluruh katoda LED pada seven segment dihubungkan secara paralel lalu disambungkan ke ground. Common katoda akan aktif pada kondisi HIGH, dimana LED akan menyala jika diberi logic 1.
Untuk menggunakan seven segment juga diperlukan suatu konverter dari bilangan biner menjadi desimal, biasanya menggunakan suatu decoder. Untuk common anoda menggunakan decoder IC TTL 7447 sedangkan common katoda menggunakan IC TTL 7448. Cara kerja decoder ini dengan mengkonversi input biner pada switch lalu masuk ke decoder setelah dikonversikan input-nya maka bilangan desimal akan tampil pada seven segment.

Relay




PROGRAMING C

Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories
Kelebihan Bahasa C :
1.        Bahasa C tersedia hampir di semua jenis komputer.
2.        Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer.
3.        Bahasa C hanya menyediakan sedikit kata-kata kunci, dan hanya terdapat 32 kata kunci.
4.        Proses executable program bahasa C lebih cepat.
5.        Dukungan pustaka yang banyak.
6.        C adalah bahasa yang terstruktur.
7.        Bahasa C termasuk bahasa tingkat menengah, penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. Secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.

Kekurangan Bahasa C :
1.        Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
2.        Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Pada pembuatan alat tugas akhir ini penulis menggunakan pemograman bahasa C. Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya.

Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut :
1.    Struktur penulisan program
#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{
[Deklarasi local variable/constant]
[Isi Program Utama]
}

2.    Preprocessor (#)
Preprocessor (#) digunakan untuk memasukkan (include) text dari file lain, mendefenisikan macro yang dapat mengurangi beban kerja pemograman dan meningkatkan legibility source code (mudah dibaca). Adapun fungsi preprocessor yang disediakan yaitu :
#include :digunakan untuk memasukkan (include) text dari file lain, contoh:
a. #include<delay.h>
b. #include<lcd.h>
 c. #define EnKa PORTC.4
d. #define on 1

#define : digunakan untuk mendefenisikan makro, contoh :
 
3.    Tipe Data
a.    char : 1 byte ( -128 s/d 127 )
b.    unsigned char : 1 byte ( 0 s/d 255 )
c.    int : 2 byte ( -32768 s/d 32767 )
d.    unsigned int : 2 byte ( 0 s/d 65535 )
e.    long : 4 byte ( -2147483648 s/d 2147483647 )
f.     unsigned long : 4 byte ( 0 s/d 4294967295 )
g.    float : bilangan desimal
h.    array : kumpulan data-data yang sama tipenya.
4.    Statement
Suhu = adc/255*100; //contoh rumus perhitungan suhu.

Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [//] untuk satu baris. Lebih dari 1 baris gunakan pasangan [/*] dan [*/]. Statement yang tidak dieksekusi disebut juga comments/ komentar, contoh :

5.    Function
[tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2])
{ [statement] ;}

Function adalah bagian program yang dapat dipanggil oleh program utama, contoh : 

6.    Conditional Statement dan Looping
if else : digunakan untuk penyeleksian kondisi, contoh :
if([persyaratan]){[statement1];[statement2];}
else{[statement3];[statement4];}
for : digunakan untuk looping dengan jumlah yang sudah diketahui.
for ([nilai awal]; [persyaratan]; [operasi nilai])
{ [statement1];[statement2];}

Contoh :
while : digunakan untuk looping jika dan selama memenuhi syarat tertentu, contoh :
while ([persyaratan]) {
[statement1];
[statement2];
}
switch ( [nama variabel] ) {
case [nilai1]: [statement];
break; case [nilai2]: [statement];
break;
}

switch case : digunakan untuk seleksi dengan banyak kondisi, contoh :
 
7.    Operasi relasional (perbandingan)
a.    Sama dengan : ==
b.    Tidak sama dengan : !=
c.    Lebih besar : >
d.    Lebih besar sama dengan : >=
e.    Lebih kecil : <
f.     Lebih kecil sama dengan : <=