Senin, 17 September 2012

Dasar Input dan Output Microcontroller AVR

Dasar input dan output sangat dibutuhkan sekali pada pemrograman mikrokontroler avr, pada tutorial kali ini saya menggunakan compiler codevision avr. Input dan output bisa digunakan, misalnya kita ingin mengeset PIN.x untuk input sensor jarak dan PIN.y untuk output berupa led dan masih banyak implementasi lainnya .
Nah langsung saja, pada tutorial kali ini saya akan membuat led berjalan/ running led pada mikrokontroler AVR ATMega 128. Saya meggunakan PINC.0, C.1 dan C.2 sebagai output.

PORT.X=0; //set port X sebagai low (0 volt)
PORT.X=1; //set port X sebagai high (5 volt)
misalnya:
PORTC.0=0; //set port C.0 low
PORTC.0=1; //set port C.0 high

pada led kondisi low akan menyebabkan led mati dan kondisi high (5 V) akan menyebabkan led menyala.Setelah kita mendefinisikan port tersebut low/high, maka selanjutnya kita perlu mendefinisikan PIN.X pada port tersebut sebagai input/ output.

DDR.X=0;  //set data direksi sbg input
DDR.X=1;  //set data direksi sbg output

misalnya kita ingin membuat led menyala selama 1 detik maka,
DDRC.0=1;  //set data direksi sbg output
PORTC.0=1; //set port C.0 high
delay_ms (1000);

Itulah dasar-dasar input output, untuk programnya bisa anda kembangkan sendiri.Inilah hasil led berjalan sederhana yang saya buat.


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Jumat, 14 September 2012

Line Maze Solving Robot

Masih bermain-main dengan robot line follower saya, tapi kali ini mencoba algoritma path planning.Fitur robot ini masih sama seperti versi yang terdahulu :

- Mikrokontroler = ATMega 8535
- Algoritma = PID + Path Planning
- Pemrograman = Bahasa C
- Sensor = photodioda + led putih 3mm superbright (8 via ADC)
- Driver Motor = H-Bridge Mosfet
- Motor DC = Mitsumi 12000 RPM 12V No Load
- Gear Ratio = 1:4,8
- Battery = Li-Po 11,1 V


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Mendaki Gunung Merbabu Lewat Jalur Selo

Gunung Merbabu adalah gunung api yang bertipe Strato yang terletak secara geografis pada 7,5° LS dan 110,4° BT. Secara administratif gunung ini berada di wilayah Kabupaten Magelang di lereng sebelah barat dan Kabupaten Boyolali di lereng sebelah timur, Propinsi Jawa Tengah.

Gunung Merbabu cukup populer sebagai ajang kegiatan pendakian. Medannya tidak terlalu berat namun potensi bahaya yang harus diperhatikan pendaki adalah udara dingin, kabut tebal, hutan yang lebat namun homogen, serta ketiadaan sumber air. Penghormatan terhadap tradisi warga setempat juga perlu menjadi pertimbangan.

Itulah gambaran secara umum tentang gunung merbabu. Ok, sudah cukup jelaskan tentang gambaran umum gunung merbabu, kali ini saya akan share tentang pengalaman saya saat mendaki gunung merbabu..langsung saja ya..hehe.Pada pertangahan tahun 2011, tepatnya tanggal 27 Juli 2011 saya diajak teman saya untuk mendaki gunung merbabu tanpa basa basi langsung saja saya menyetujui ajakan teman saya, bukan tanpa alasan tetapi juga karena saya belum pernah mendaki gunung merbabu apalagi saya sangat suka kalau diajak mbolang (petualang) ke alam yang masih asri.. hehe

Karena tempat tinggal kami di solo maka untuk mendaki gunung merbabu basecamp yang paling dekat adalah basecamp di selo.Kira 45 menit dari daerah solo, Gunung Merbabu jalur Selo, meskipun memiliki jarak tempuh yang lebih jauh namun juga menyajikan pemandangan yang lebih indah, sabana yang begitu luas berpadu dengan pemandangan Gunung Merapi yang berdiri anggun di seberang.

Sesudah persiapan dan cek perlengkapan selesai, sehabis Isya' kami berangkat, tak lupa doa dipanjatkan oleh tim kami agar mendapat kelancaran. O iya perkenalkan tim kami terdiri dari, sebut saja :
Saya, Bayu,Gondes,Dani,Finsa,Lukman, Srundeng, Gandem.Tetapi ditengah perjalanan kami juga bertemu dengan rombongan mahasiswa pecinta alam STPN Jogja.
Ada juga mas dari daerah sunda siapa lupa namanya yang mendaki gunung merbabu secara perorangan.

Inilah peta jalur pendakian lewat jalur Selo

Untuk mendaki lewat jalur Selo mendaki sebaiknya didampingi pemandu atau teman yang pernah melewati jalur ini. Hal ini disebabkan karena banyaknya percabangan yang bisa menyesatkan pendaki.
Jangan berpikiran kosong, jangan sombong tetap rendah hati,jangan mengeluh sepanjang perjalanan, dan yang terpenting selalu ingat sama Yang Maha Kuasa. Dan selalu terapkan slogan pecinta alam "Jangan meninggalkan sesuatu kecuali jejak kaki, jangan membunuh sesuatu kecuali waktu, dan jangan mengambil sesuatu kecuali gambar".

Lanjut ke perjalanan lagi, kami mengambil jalan pada malam hari dikarenakan agar rasa capek tidak terlalu terasa, dan agar tidak frustasi jika melihat puncak gunung yang masih jauh.Selama perjalan hanya gelap gulita di sisi kanan kiri, dan suara2 angin maupun hewan2 yang terdengar.
  • POS 1
Dari Basecamp, kita akan melewati jalur beraspal kasar, untuk sampai di Gapura Selamat Datang, di kanan-kiri tanaman tembakau. Untuk mencapai Pos I kita dimanjakan dengan hutan pinus dan jalur yang landai, pelataran Pos I cukup luas, bisa mendirikan 3-4 tenda. Setelah itu jalanan mulus penuh bonus, landai bertanah.
  • POS 2
Berlanjut jalan menuju Pos II kita akan dihadapkan pada Tikungan Macan, elevasinya hampir mencapai 45 derajat, dengan jalur tanah rentan longsor. Selain kita juga menapakkan kaki di 3 batang pohon horizontal tertata rapi untuk melewati sebuah jurang. Di Tikungan Macan ini kita bisa memandang ke bawah ke arah jurang yang masih diselimuti hutan yang lebat. Di tikungan Macan ini pendaki yang turun bisa kesasar karena jalur yang sebenarnya berada disisi samping bukan lurus ke bawah.
  • POS 3 (Batu Tulis)
Batu Tulis adalah tempat terbuka yang cukup luas, di tengahnya terdapat sebuah batu yang cukup besar. Pemandangan indah di sekitar Batu Tulis bisa menjadi pengobat lelah. Banyak terdapat Edelweiss yang tumbuh tinggi dan besar sehingga bisa digunakan untuk berteduh. Pendaki yang turun Gn.Merbabu, di Batu Tulis ini terdapat juga jalur alternatif yang kelihatan sangat jelas namun sedikit mendaki bukit. Jalurnya berbahaya melintasi punggungan yang sempit dengan sisi jurang di kira dan kanan, sebaiknya tidak melewati jalur ini, tetaplah mengikuti jalur yang resmi.
  • Sabana 1 dan Sabana 2
Sabana I dan Sabana II, keduanya merupakan kawasan luas berumput, dan vegetasi lainnya khas sabana, mirip dengan taman teletubies, hijau berbukit-bukit.Pada saat perjalanan kami tidak terlalu banyak istirahat karena ingin melihat sunrise dipuncak gunung, paling istirahat 5 menit minum air mineral, lalu lanjut jalan lagi, begitu seterusnya sampai di post sabana II langkah kami terhenti agak lama karena salah satu teman kami kakinya kram.Disitu, sabana II merupakan padang semak perdu yg tinggi2.. kami bisa tiduran disitu,.. rasanya empuuuk :D hehehe. Saya sempat usul untuk membuat tenda disitu, tetapi kata teman yang lain lokasinya kurang bagus selain disitu alam cuaca sering tidak menentu, angin pun berhembus dari segala arah karena tidak ada vegetasi tinggi yang menghalanginya.Dan konon mitosnya kalau malam hari sering ada ‘Pasar Setan’ disini, malam hari yang sunyi sering tiba-tiba berisik suara lagu-lagu dan bunyi permainana khas pasar malam, banyak yang bilang ini merupakan pintu gerbang ke dunia lain.Nah, oleh sebab itu jika akan membuat tenda lebih baik memilih di lokasi pos Sabana 3.Tak lama kemudian setelah kram teman kami sembuh, lalu melanjutkan perjalanan ke pos Sabana 3.
  • Sabana 3
Sekitar jam 12 malam kami sampai di post sabana III, tepat di bawah gunung kukusan.Kami berhenti sejenak untuk mendirikan tenda di pos ini. Sabana 3 adalah salah satu tempat yang cocok untuk mendirikan tenda karena lokasinya tepat dibawah pohon-pohon edelweis yang tinggi. Selain aman, saat pagi datang kita akan dimanjakan dengan latar belakang indahnya pemandangan Gunung Merapi yang gagah berdiri.

Setelah selesai mendirikan tenda, kamipun membuat api unggun dengan mencari kayu-kayu kering disekitar tenda.Lalu mengeluarkan bekal-bekal kami dan menghangatkan diri di perapian sambil memasak mie instan dan minuman hangat.Pada saat itu kami hanya membawa satu tenda kecil+satu terpal untuk 8 orang (idealnya untuk 4 orang)..haha bayangkan :D .
Tapi pada akhirnya tidak ada yang bisa tidur..wkwkk.. karena pada kedinginan, dan kamipun menyalakan kembali api unggun yang telah meredup dan memanggang kaki , sampai ada sepatu teman saya yang gosong..hahaha

Tak terasa waktu subuh sudah datang dan udara dinginpun belum menghilang.. kami pun segera sholat subuh.Setelah itu melanjutkan perjalanan untuk melihat sunrise dengan menaiki gunung kukusan. Dan benar, saat kami hendak menuju gunung kukusan, tampak di belakang kami pemandangan gunung merapi yang sangat indah.
Latar Belakang Gunung Merapi dari tenda 

Hati-hati saat akan melihat sunrise di gunung kukusan, karena medannya yang terjal dan landai dengan track bebatuan dan sisi kanan kirinya jurang.

Gunung Kukusan yang terjal

Sisi kanan dan kiri jurang

Sesampainya di puncak gunung kukusan kami pun mengabadikan pemandangan sunrise yang indah, cekidot.

                    

       

Setelah itu kami melanjutkan perjalanan ke puncak tertinggi gunung merbabu, puncak trianggulasi dan puncak kentheng songo.Pemandangan yang sangat indah di depan mata, sekaligus pemandangan yang mencengangkan, karena kita memandang jalur medan terjal yang harus kita tempuh untuk menggapai puncak gunung Merbabu. Berbalik arah pemandangan ke arah Gunung Merapi juga sangat indah sekali. Bila kita berjalan dengan cermat sekitar sekitar 25 meter di sebelah kanan jalur akan kita temukan sebuah batu berlobang yang dianggap keramat oleh penduduk sekitar.

Batu (kenteng) yang dikeramatkan penduduk sekitar merbabu

Sekitar 30 menit hingga 1 jam diperlukan perjuangan akhir dengan menapaki jalur padang rumput yang terjal dan berdebu untuk mencapai Puncak tertinggi gunung Merbabu. Setibanya di Puncak Gunung Merbabu, untuk menuju Puncak Kenteng Songo kita berjalan sekitar 10 menit ke arah Timur.Di Puncak Kenteng Songo terdapat batu berlobang yang dikeramatkan masyarakat. Mitosnya di puncak ini terdapat batu kenteng / lumpang / berlubang dengan jumlah 9 buah yang hanya bisa dilihat, menurut penglihatan paranormal. Mata biasa hanya melihat 4 buah batu berlobang.

                   

Batu (kenteng) yang "hanya" berjumlah 4 


 


Gunung Sindoro dan Sumbing tampak dari Puncak Kenteng Songo

Tak lengkap rasanya jika tidak menyambangi puncak tertinggi gunung merbabu, puncak triangulasi 3142 Mdpl.Hanya berdampingan dengan puncak kenteng songo, bisa dicapai dalam beberapa menit saja.

Puncak Trianggulasi

     

Itulah secuil cerita pengalaman saya selama mendaki gunung merbabu 27-28 Juli 2011, cerita di atas tidak bisa menggambarkan semua keindahan merbabu, karena sesungguhnya keindahan ciptaan-Nya tidak ada yang bisa menggambarkan dengan kata-kata.. jika anda tertarik cobalah bermain ke gunung merbabu :D


Sabtu, 18 Agustus 2012

Object Following Robot

Robot pengikut objek, penerapan sederhana pada sensor ultrasonik.
Fitur :
- Mikrokontroler = ATMega 8535
- Algoritma = PID
- Pemrograman = Bahasa C
- Sensor = 2 sensor ultrasonik
- Driver Motor = H-Bridge Mosfet
- Motor DC = Mitsumi 12000 RPM 12V No Load
- Gear Ratio = 1:4,8
- Battery = Li-Po 11,1 V


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Line Follower Robot

Robot line follower pertama saya, mungkin masih banyak kekurangannya.. ya tapi gak apa2 kan sedikit berbagi.. hehe

- Mikrokontroler = ATMega 8535
- Algoritma = PID
- Pemrograman = Bahasa C
- Sensor = photodioda + led putih 3mm superbright (8 via ADC, 2 via komparator)
- Driver Motor = H-Bridge Mosfet
- Motor DC = Mitsumi 12000 RPM 12V No Load
- Gear Ratio = 1:4,8
- Battery = Li-Po 11,1 V


update line follower saya.. hehe


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Minggu, 29 Juli 2012

Membaca Nilai Sensor Proximity via ADC

Melanjutkan postingan saya tentang ADC (Analog Digital Converter) , kali ini saya akan membahas penerapannya yaitu membaca nilai sensor garis/ proximity via ADC. Untuk compilernya saya menggunakan codevision AVR, karena lebih simpel dan kita tidak perlu menghafal register-register AVR.

Langsung saja, buka codevision klik File- New - Project.Jangan lupa setting chip dan clock. Setelah itu klik tab ADC
Pada tampilan tab ADC,
  • ADC Enabled, digunakan untuk mengaktifkan fitur ADC
  • Use 8 bits digunakan untuk memilih mode 8 bit, tetapi jika menginginkan mode 10 bit, tidak perlu dicentang
  • ADC Interrupt untuk mengaktifkan interupt ADC atau tidak
  • High Speed untuk mengaktifkan mode highspeed atau tidak
  • Volt. Ref : referensi tegangan ADC. ubah ke AVCC pin, agar ADC menggunakan referensi tegangan 5 volt
  • ADC Clock untuk memilih frekuensi clock ADC.
  • Auto Trigger Source untuk menentukan sumber trigger ADC
Sekarang klik File - Generate, Save and Exit.. Simpan Filenya.
Dibawah ini hasil listing program yang telah saya buat :


/****************************************************
Project     : Pembacaan Nilai ADC pada sensor garis
Author      : Rifqi Arridho Abid
Company : EIRRG

Chip type                             : ATmega8535
Program type                       : Application
AVR Core Clock frequency : 16,000000 MHz
Memory model                     : Small
External RAM size                : 0
Data Stack size                     : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>

#include <delay.h>

// Alphanumeric LCD Module functions
#include <alcd.h>

#define ADC_VREF_TYPE 0x40


// Membaca hasil ADC
   unsigned int read_adc(unsigned char adc_input)
{
   ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
   delay_us(10);     // Delay dibutuhkan untuk penyetabil tegangan input ADC
   ADCSRA|=0x40;    // Memulai konversi analog - digital
 
// Menunggu konversi analog-digital selesai
   while ((ADCSRA & 0x10)==0);
   ADCSRA|=0x10;
   return ADCW;
}


// Declare your global variables here
   unsigned int s1,s2,s3,s4,s5,s6,s7,s8;
   unsigned char kata[16],kata1[16];  
 

   void data_sensor()
{
    s1=read_adc(0);
        delay_us(10);
    s2=read_adc(1);
        delay_us(10);
    s3=read_adc(2);
        delay_us(10);
    s4=read_adc(3);
        delay_us(10);
    s5=read_adc(4);
        delay_us(10);
    s6=read_adc(5);
        delay_us(10);
    s7=read_adc(6);
        delay_us(10);
    s8=read_adc(7);
        delay_us(10);          
     
   //Menampilkan nilai ADC ke lcd              
   sprintf(kata,"%d %d %d %d",s1,s2,s3,s4);
   sprintf(kata1,"%d %d %d %d",s5,s6,s7,s8);
     
   lcd_clear();
   lcd_gotoxy(0,0);
   lcd_puts(kata);
   lcd_gotoxy(0,1);
   lcd_puts(kata1);    
   delay_ms (100);
}                                        
 
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;
SFIOR&=0xEF;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
      {
      // Place your code here
         data_sensor ();    //memanggil void data_sensor
      }
}


Perhatikan kode berikut :
#define ADC_VREF_TYPE 0x40

// Membaca hasil ADC
   unsigned int read_adc(unsigned char adc_input)
{
   ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
   delay_us(10);     // Delay dibutuhkan untuk penyetabil tegangan input ADC
   ADCSRA|=0x40;    // Memulai konversi analog - digital
   
// Menunggu konversi analog-digital selesai
   while ((ADCSRA & 0x10)==0);
   ADCSRA|=0x10;
   return ADCW;
}

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;
SFIOR&=0xEF;
Blok program diatas adalah inisialisasi dan prosedur baca ADC yang dibentuk oleh codevision. Coba kita bandingkan dengan setting registernya.Misalkan register ADMUX=0x60 maka bit REFS1 = 0 dan bit REFS0=1. Jadi ADC menggunakan tegangan referensi (Vref) = Vcc.

Dibawah ini hasil pembacaan sensor garis yang saya buat, pada saat di warna putih bernilai < 50 dan pada saat di warna hitam >700 (menggunakan mode 10 bit).


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

ADC (Analog Digital Converter)

Penggunaan ADC terutama dalam bidang pengukuran masih sangat banyak, terutama keluaran sensor yang masih berupa analog yang harus dikonversi ke digital agar bisa diolah oleh mikrokontroler.Karena sedang menggunakan atmega 8535 maka kali ini saya akan menjelaskan fitur ADC dari mikrokontroler atmega 8535 :

  • Resolusi 8 bit dan 10 bit
  • 8 chanel input
  • 0 - Vcc input ADC 
  • Waktu konversi 65 - 260 us
  • 3 mode pemilihan tegangan referensi
Tegangan referensi ADC dapat dipilih menggunakan tegangan referensi internal maupun eksternal.  Jika menggunakan tegangan referensi internal, bisa dipilih on-chip internal reference voltage yaitu sebesar 2.56V atau sebesar AVCC.  Jika menggunakan tegangan referensi eksternal, dapat dihubungkan melalui pin AREF

Data hasil konversi ADC 10 bit (1024) adalah:
ADC = (Vin/Vref)*1024


Data hasil konversi ADC 8 bit (256) adalah:
ADC = (Vin/Vref)*256


Ada beberapa langkah yang harus dilakukan untuk menginisialisasi ADC yaitu penentuan clock, tegangan referensi, format data output dan mode pembacaan.Berikut register-register yang perlu di setting saat inisialisasi :
  • Register ADMUX
Register ini mengatur tegangan referensi yang digunakan ADC, format data output dan saluran ADC

REFS1 REFS0 ADLAR MUX4 MUX2 MUX1 MUX0

Pemilihan mode pada bit pengatur tegangan referensi  REFS1 - REFS0

REFS1  REFS0  Mode Tegangan Referensi
0 0 Pin Vref
0 1 VCC
1 0 Tidak digunakan
1 1 Vref internal = 2,56 V

ADLAR adalah bit keluaran ADC.Jika ADC telah selesai maka data ADC akan diletakkan di register ADCH dan ADCL.
MUX0 - MUX4 adalah bit- bit pemilihan saluran pembacaan ADC.

  • Register ADCSRA
adalah register 8 bit berfungsi untuk melakukan pengontrolan status ADC

ADEN ADCS ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
keterangan :
ADEN (bit 7) merupakan bit pengatur aktivasi ADC
ADCS (bit 6) merupakan bit penanda dimulainya konversi ADC
ADATE (bit 5) merupakan bit pengatur aktivasi otomatis 
ADIF (bit 4) merupakan bit penanda akhir konversi ADC
ADIE (bit 3) merupakan bit pengatur aktivasi interupt
ADPS0-ADPS2 (bit 0 - bit 2) merupakan bit pengatur clock ADC

  • Register SFIOR
Adalah register 8 bit yang mengatur sumber pemicu ADC. Jika bit ADATE pada register ADCSRA bernilai 0 maka ADPS0-ADPS2 tidak berfungsi.

Penerapan register -register yang telah dibahas diatas akan saya bahas menggunakan compiler codevison AVR.Saya akan membahas penerapan pembacaan sensor proximity menggunakan ADC. Klik disini untuk membaca selengkapnya.


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Minggu, 15 Juli 2012

Implementasi Saklar Push On Pada Bel Elektronika Sederhana

Saklar Push On

Saklar berfungsi untuk menghubungkan atau memutuskan arus listrik yang mengalir dari sumber tegangan menuju output dari sebuah sistem ke sistem lainnya.Salah satunya adalah saklar push on, prinsip kerjanya yaitu kedua terminal akan terhubung selama ditekan.





Setelah mengetahui fungsi dan cara kerja saklar seperti diatas, maka kita bisa membuat alat yang sederhana menggunakan saklar.Salah satu contohnya yaitu bel elektronik, dengan ditambah buzzer maka alat ini sudah jadi.Gambar diatas adalah rangkaian yang saya buat, cara kerjanya sederhana, ketika push on ditekan maka kutub positif baterai (9V) terhubung dengan kutub positif buzzer sehingga akan mengeluarkan bunyi yang ditandai dengan nyala indikator led.


Video dibawah ini adalah bel yang telah selesai saya buat, sangat cocok ditempatkan disamping pintu kamar kosan, itung2 biar temen kosan gak usah teriak2 atau gedor2 pintu saat mencari saya.. hahaha (pengalaman pribadi).




Sabtu, 14 Juli 2012

Menentukan Besar Resistor Pada Led

LED (light emitting diode) adalah salah satu jenis dioda maka led memiliki 2 kutub yaitu anoda dan katoda. Led mempunyai kecenderungan polarisasi dan hanya akan menyala jika diberikan forward bias (arus maju).Ini dikarenakan  led terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah (anoda ke katoda ) dan tidak ke arah sebaliknya. Oleh karena itu, pemasangan kutub led tidak boleh terbalik .



Besarnya arus menentukan terangnya sebuah led, akan tetapi perlu diingat bahwa besarnya arus yang diperbolehkan 10mA-20mA dan pada tegangan 1,6V –  3,5 V tergantung karakter warna yang dihasilkan.Apabila arus yang mengalir lebih dari 20mA maka led akan terbakar.Untuk menghindari kerusakan pada led maka pada rangkaian led dipasang sebuah resistor sebagai pembatas arus.


Untuk mencari nilai resistor pada led maka kita harus mengetahui tegangan kerja dari led tersebut. Menurut datasheet tegangan kerja / jatuh pada sebuah led menurut warna yang dihasilkan adalah :


1.      Infra merah
1,6 V
2.       Merah
1,8 V – 2,1 V
3.       Oranye
2,2 V
4.       Kuning
2,4 V
5.       Hijau
2,6 V
6.       Biru
3,0 V – 3,5 V
7.       Putih
3,0 – 3,6 V
8.       Ultraviolet
3,5 V

Berdasarkan data di atas maka apabila kita ingin mencari nilai resistor pada LED dapat menggunakan rumus hukum OHM :

V = I . R
R = V/ I
R = ( Vs-Vd ) / I

dimana : 
R adalah nilai resistor yang ingin digunakan dalam OHM
Vs adalah besarnya tegangan sumber dalam Volt
Vd adalah besarnya tegangan jatuh dalam Volt
I adalah besarnya arus forward yang diinginkan dalam Ampere

Cara diatas adalah untuk mengitung resistor pada led secara manual, akan tetapi jika anda malas untuk menghitung anda bisa klik link dibawah untuk menghitung secara otomatis.


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid