Thermal Array TPA81
TPA81 dapat mendeteksi sinar infra merah dengan panjang gelombang 2um-22um (1mikro meter = sepersejuta meter). Panjang gelombang ini dihasilkan oleh benda-benda yang panas. Oleh karena yang dideteksi adalah radiasi panasnya saja, maka TPA81 dapat mengukur suhu tanpa harus menyentuh sumber panas. Sebagai gambaran, TPA81 dapat mendeteksi suhu api lilin dalam jarak 2 meter tanpa terpengaruh cahaya ruangan.
Jalur komunikasi data TPA81 menggunakan teknologi I2C (Inter Integrated Circuit) yang menggunakan dua kabel saja yaitu SDA untuk jalur data dan SCK untuk jalur clock. Jika dihubungkan dengan mikrokontroler, TPA81 dapat dipasang paralel sebanyak 8 buah tanpa menambah jalur komunikasi. Anda hanya perlu menambahkan resistor pull-up 1K8 pada jalur SDA dan SCK. Selain dapat mengeluarkan data suhu, TPA81 dapat juga mengendalikan sebuah motor servo.
Baca Selengkapnya thermal-array-tpa81-application-v1
Analog to Digital AVR
ATmega8535 menyediakan ADC dengan resolusi 10 bit. ADC ini dihubungkan dengan 8 channel Analog Multiplexer yang memungkinkan terbentuk 8 input tegangan single-ended yaitu ADC0 s/d ADC7. Dapat juga dikonfigurasi menjadi 7 jalur input differensial dengan ADC1 sebagai terminal common negative dan yang lainnya sebagai input tegangan positif. Atau menjadi 2 jalur input differensial dengan pilihan penguatan (gain) 10x atau 200x, yaitu ADC1, ADC0 dan ADC3, ADC2.
ADC memiliki pin supply tegangan analog yang terpisah yaitu AVCC. Besarnya tegangan AVCC adalah ±0.3V dari VCC.
Pada aplikasi ini mikrokontroler akan membaca tegangan analog pada input ADC0 dan menampilkan data hasil konversinya ke PORTC. Tegangan referensi ADC sama dengan AVCC.
Baca Selengkapnya analog-to-digital-avr
Ping Paralax Application
Ping))) Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonic buatan Paralax Inc. yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil (2,1cm x 4,5cm), sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran dari Ping))) berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS.
Ping))) mendeteksi objek dengan cara mengirimkan suara ultrasonik dan kemudian “mendengarkan” pantulan suara tersebut. Ping))) hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping))). Selama menunggu pantulan, Ping))) akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping))). Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping))) dengan objek. Selanjutnya mikrokontroler cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak.
Baca Selengkapnya ping-paralax-application
Digital Compass With AVR C
Untuk mengakses data Digital Compass CMPS-03, bisa digunakan mikrokontroler AVR seri ATMega8535. Data arah dibaca langsung dari modul CMPS-03 menggunakan komunikasi I2C. Data tersebut kemudian di tampilkan ke LCD.
Baca selengkapnya di digital-compass-application3
Pengendalian Motor Stepper
Dasar Motor Stepper
Motor stepper adalah sebuah peralatan elektromekanik yang mengubah pulsa elektrik menjadi pergerakan mekanik. Shaft atau kumparan motor stepper berputar per step ketika pulsa elektrik dimasukkan ke kumparan tersebut dengan urutan yang benar. Urutan pemberian pulsa ke motor stepper akan menyebabkan arah putaran yang berbeda. Sedangkan besarnya frekuensi dari pulsa akan mempengaruhi kecepatan putaran motor stepper.
Motor Stepper Unipolar
Motor stepper unipolar baik tipe 5 atau 6 kabel biasanya dihubungkan seperti pada gambar diatas, dengan sebuah center tap pada tiap kumparan. Pada penggunaannya, center tap dihubungkan ke supply positif, dan dua ujung kumparan lainnya dihubungkan ke ground.
Bagian rotor motor pada gambar diatas dibuat dari magnet permanent dengan 6 kutub, 3 kutub utara dan 3 kutub selatan.
Step Angle / SA
Motor stepper bergerak per step. Setiap bergerak satu step, motor stepper akan berputar beberapa derajat sesuai dengan step anglenya. Step angle tergantung dari jumlah kutub magnet motor stepper. Jumlah putaran yang diperlukan agar motor stepper bergerak 1 putaran penuh (360 derajat) adalah :
Step = 360 derajat / Step Angle
Misalnya, sebuah motor stepper memiliki SA=1,8 derajat maka untuk untuk berputar satu putaran penuh memerlukan jumlah step sebanyak : 360 / 1,8 = 200 step
Kendali Arah Putaran
Arah putaran motor stepper ditentukan oleh arah urutan aktifasi kumparannya. Secara program, ini bisa dilakukan dengan mengubah arah pergeseran bit.
Jika arah pergesarannya ke kiri, maka motor stepper akan berputar kearah kiri pula (CCW)
Jika arah pergeserannya ke kanan, maka motor stepper akan berputar ke arah kanan (CW)
Arah Putaran Searah Jarum Jam
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
int i;
unsigned char x;
void main(void)
{
.
.
i=0;
x=0×88;
while (1)
{
// Place your code here
while (i<=3)
{
i++;
PORTA=x;
delay_ms(500);
x=x>>1;
if (i>=4)
{
i=0;
x=0×88;
}
}
};
}
Arah Putaran Berlawanan Arah Jarum Jam
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
int i;
unsigned char x;
void main(void)
{
.
.
.
i=0;
x=0×11;
while (1)
{
// Place your code here
while (i<=3)
{
i++;
PORTA=x;
delay_ms(500);
x=x<<1;
if (i>=4)
{
i=0;
x=0×11;
}
}
};
}
Kendali Kecepatan
Kecepatan motor stepper ditentukan oleh kecepatan aktifasi kumparannya. Secara program, ini bisa dilakukan dengan mengubah delay waktu pergeseran tiap bitnya. Semakin cepat delay waktunya, kecepatan motor stepper juga akan bertambah.
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
int i;
unsigned char x;
void main(void)
{
.
.
.
i=0;
x=0×88;
while (1)
{
// Place your code here
while (i<=3)
{
i++;
PORTA=x;
delay_ms(50);
x=x>>1;
if (i>=4)
{
i=0;
x=0×88;
}
}
};
}
Kendali Torsi
Torsi motor stepper ditentukan oleh banyaknya jumlah kumparan yang aktif pada saat yang sama. Torsi akan bertambah besar jika 2 kumparan aktif pada saat yang sama.
Secara program, ini bisa dilakukan dengan mengubah kondisi bit.
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
int i;
unsigned char x;
void main(void)
{
.
.
.
i=0;
x=0×4C;
while (1)
{
// Place your code here
while (i<=3)
{
i++;
PORTA=x;
delay_ms(500);
x=x>>1;
if (i>=4)
{
i=0;
x=0×4C;
}
}
};
}
Kendali Posisi
Derajat putaran motor stepper ditentukan oleh banyaknya jumlah pergeseran aktifasi kumparannya. Secara program, ini bisa dilakukan dengan mengubah jumlah pergeseran bit.
Pada motor stepper dengan SA=1,80 , agar motor stepper bergerak 1800 maka diperlukan pergeseran step sebanyak : 180/1,8 =100 step
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
int i,step;
unsigned char x;
void shift()
{
if (x==0×11)
{
PORTA=x;
delay_ms(500);
x=0×88;
}
else
{
PORTA=x;
delay_ms(500);
x=x>>1;
}
}
void main(void)
{
.
.
.
step=100;
x=0×88;
i=0;
while (1)
{
// Place your code here
if (i<=step)
{
shift();
i++;
}
else
PORTA=0×00;
};
}
Switch & LED 1
Deskripsi
Membaca saklar toggle pada PINA.6 dan PINA.7 untuk memilih rutin atau fungsi pilihan. Kondisi saklar toggle ini akan dibaca oleh mikrokontroler ketika power up (power pertama kali dinyalakan). Data saklar akan disimpan pada variable Flag. Kemudian mikrokontroler akan memantau push button Start yang dipasang di PINA.5. Jika tombol start belum di tekan (PINA.5==0), maka mikrokontroler tetap memantau kondisi tombol Start. Ketika tombol Start ditekan (PINA.5==1), maka mikrokontroler akan menjalankan fungsi sesuai data saklar toggle.
Source Code :
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
unsigned char Flag;
void nyala1()
{ while(1)
{
PORTC=0×01;
delay_ms(1000);
PORTC=0×00;
delay_ms(1000);
}
}
void nyala2()
{ while(1)
{
PORTC=0×02;
delay_ms(1000);
PORTC=0×00;
delay_ms(1000);
}
}
void nyala3()
{ while(1)
{
PORTC=0×03;
delay_ms(1000);
PORTC=0×00;
delay_ms(1000);
}
}
void nyala4()
{ while(1)
{
PORTC=0×04;
delay_ms(1000);
PORTC=0×00;
delay_ms(1000);
}
}
void main(void)
{
Flag=PINA & 0b11000000; // Baca saklar toggle
while (PINA.5==0){} // Tombol Start ditekan?
switch (Flag)
{ case 0×00: nyala1(); break;
case 0×40: nyala2(); break;
case 0×80: nyala3(); break;
case 0xC0: nyala4(); break;
}
while (1)
{
// Place your code here
};
}
Tutorial Mikrokontroler AT89S51
Mikrokontroler AT89S51 sudah sangat familier dikalangan pecinta mikrokontroler. Biasanya dengan mikrokontroler ini para pemula mulai belajar tentang mikrokontroler. Biasanya dimulai dengan mengenal hardware mikrokontrolernya kemudian dilanjutkan dengan mengenal pemrogramannya. AT89S51 merupakan mikrokontroler produksi ATMEL Corporation, dan masuk keluarga MCS-51. Cara membuat programnya bisa dengan bahasa assembly atau bahasa C. Dalam tutorial ini, akan dijelaskan dasar mikrokontroler menggunakan bahasa assembly. Untuk lebih jelasnya bisa dilihat pada Tutorial AT89S51
-
Recent
-
Links
-
Archives
- February 2009 (3)
- January 2009 (1)
- October 2008 (1)
- July 2008 (1)
- March 2008 (2)
- January 2008 (2)
- December 2007 (1)
-
Categories
-
RSS
Entries RSS
Comments RSS



