Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan
Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan

Selasa, 15 Maret 2016

Teknologi Terbaru: Bola Pintar

           “Insidecoach” menjabarkan dirinya sebagai “teknologi pintar di dalam sebuah bola” (yup, ini adalah proyek Amerika). Teknologi ini mendeteksi dampak dari benturan, putaran, posisi dan lintasan perjalanan bola, jumlah operan dan sentuhan, serta memberikan umpan balik dan isyarat pembinaan kepada penggunanya.
Bola Pintar
source: static.electronicsweekly.com

          Menurut para penciptanya, aplikasi smartphone yang terkait (iOS atau android) dapat terhubung dengan teman dan rekan satu tim yang menggunakan teknologi yang sama. Artinya seorang pemain bisa menantang mereka untuk bermain, berlatih, membandingkan catatan dan berbagi hasilnya secara real-time.

          Seperti aplikasi kebugaran pada umumnya, teknologi ini akan mencatat kemajuan yang kamu buat dan memberikan saran untuk meningkatkan permainanmu. Dilengkapi 10 video tutorial yang akan membantumu untuk memulai langkah-langkah peningkatan tersebut.

          Meski bola pintar ini mengklaim didesain untuk “tahan terhadap berbagai tekanan udara”, namun produsennya tidak merekomendasikan penggunaan berlebih dalam kondisi basah. Sepertinya kita tidak bisa berharap banyak bola ini akan membantu persepakbolaan Inggris.

          Bola pintar ini bisa diisi ulang dan sekali mengisi ulang, baterainya akan tahan hingga empat jam. Kemudian perlu diisi ulang kembali sekitar satu jam menggunakan pelat pengisian baterainya. Bola pintar ini diciptakan dalam ukuran 4 untuk usia 8 hingga 12 tahun ; dan ukuran 5 untuk usia 12 tahun ke atas.

Selama tiga tahun pengembangannya, perusahaan pencipta bola pintar ini berkomunikasi dengan para orang tua, pelatih, klub dan para pemain kesebelasan. Hasilnya mereka menemukan untuk membuat anak-anak tetap bermain mereka harus membuat latihan terasa seperti bermain video games di dalam ruangan.

Mereka berkata : 70 persen anak-anak berhenti berolahraga pada usia 13 tahun. Ada banyak alasan mengapa mereka berhenti, namun yang paling utama adalah “karena sudah tidak lagi menyenangkan”. Kami ingin mengubah hal tersebut dan ingin kamu menjadi bagian dari perubahan tersebut. Anak-anak mencintai video games sebagai pengganti permainan olahraga karena itu menyenangkan dan menantang, maka kami ingin menyediakan pengalaman itu dengan bola pintar “Insidecoach”.

“Insidecoach” adalah salah satu kandidat dari “Kickstarter”, mencari $25,000 (£17,500) untuk biaya produksi. Saat artikel ini ditulis, 83 pendukung telah menjanjikan $22,780 dengan waktu yang tersisa adalah 33 hari lagi. Bukankah sudah mendekati?!

Youtube link : 


Source : http://www.electronicsweekly.com/blogs/gadget-master/general/smart-football-is-a-coaching-dream-2016-02/


Senin, 22 April 2013

Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler (1)

Pada kesempatan kali ini kita akan membahas bagaimana cara kontrol dan akuisisi data menggunakan mikrokontroler. Bagi teman - teman yang baru mengenal mikrokontroler bisa membaca tulisan ini: Belajar Mikrokontroler ATMEGA 8535 dan contoh program mikrokontroler sederhana.      

Setelah sekian lama tidak mengupdate blog ini, tidak membuat tulisanyang berkaitan dengan dunia kelistrikan, banyak alasan kenapa sudah lama ga bisa update tulisan mengenai dunia kelistrikan, pertama: Karena rutinitas kerja yang membunuh kreatifitas, dan yang kedua karena memang turunnya kuantitas waktu dalam meng-upgrade diri dalam dunia kelistrikan, kontrol maupun elektronika.

Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler
Contoh tampilan Human Machine Interface yang akan kita buat menggunakan visual basic dengan controller berupa mikrokontroler Atmega 8535. source: www.softwaretoolbox.com 
 

Kembali ke topik pembahasan kita yaitu cara kontrol dan akuisisi data menggunakan mikrokontroler. Alasan kenapa saya membahas topik ini ialah setelah sekian lama menghilang dari dunia control, design dan automation.

Baca juga:
Memprogram ADC mikrokontroler ATmega 8535 dengan Codevision AVR
Belajar PLC untuk pemula

Ttiba – tiba saya dihubungi teman yang meminta bantuan untuk tugas akhirnya (skripsi), skripsinya berkaitan dengan dunia kontrol yaitu membuat sebuah prototipe alat pengontrol dan monitoring suhu untuk tanaman.

Sebenarnya saya tidak menyanggupi karena kesibukan dan keterbatasan waktu takutnya tidak bisa menyelesaikan proyek ini, namun karena niat ingin membantu teman yang ingin menyelesaikan tugas akhirnya dan sekalian bernostalgia dengan dunia yang saya senangi, akhirnya saya terima tantangan ini.  

Untuk ini pada tulisan ini, akan dibagi menjadi 3 langkah cara kontrol dan akuisisi data suhu menggunakan mikrokontroler.

1. Perancangan Sistem Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler

Disini, karena memang alatnya masih dalam proses pembuatan / pengerjaan maka akan saya jelaskan secara umum sistem kerja dari alat ini, alat ini menggunakan mikrokontroler AVR Atmega 8535 sebagai controller utam.

Dengan input berupa 4 buah sensor suhu LM 35, dan output berupa rangkaian kontrol Motor induksi yang digunakan sebagai pompa yang  menyiramkan air untuk menjaga kestabilan suhu ditambah lagi alat terhubung dengan pc / laptop (interfacing)  yang memungkinkan kita bisa memonitoring suhu ruangan secara real –time.

Selain itu, dengan alat  ini kita juga dapat mengambil atau mengakuisisi data suhu tersebut, jadi dapat dikatakan sistem ini sudah mendekati sistem SCADA (supervisory Control And Data Aquitition).

 
Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler
Blok Diagram
 Sebagai diagram blog kontrolnya dapat kita sederhanakan menjadi seperti berikut:

Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler
Diagram blok kontrol / pengendalian Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler


      Jadi secara umum sistem ini menggunakan mikrokontroler sebagai controller utamanya yang kemudian akan berkomunikasi dengan PC / laptop dengan Visual Basic sebagai software interfacing dan HMI nya serta port serial sebagai jalur komunikasinya.

 

2. Perancangan Hardware Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler

Sesuai dengan sistem cara kerja alat yang kita rancang. Maka kita memerlukan untuk menghubungkan komponen - komponen yang sudah disiapkan ke dalam peralatan.

Kita hubungkan input mikrokontroler ke sensor yang kita gunakan dalam hal ini kita menggunakan sensor suhu LM 35.

Perancangan hardware cara kontrol dan akuisisi data suhu menggunakan mikrokontroler. picture source: cdn.instructables.com

Lalu kita hubungkan output mikrokontroler dengan relay. Relay ini nanti akan kita manfaatkan kontak bantunya dengan menghubungkan kontak bantu relay dengan motor induksi yang akan menggerakkan pompa.

Sebagai jalur komunikasi antara mikrokontroler dan komputer / laptop. Kita menggunkan komunikasi serial. Kita memerlukan membuat rangkaian converter serial yaitu menggunakan IC max 232. Sehingga mikrokontroler ATMEGA 8535 dapat berkomunikasi dengan komputer.
 

3. Perancangan Software Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler

Setelah perancangan hardware kita lakukan. Kita lanjutkan ke proses selanjutnya yaitu perancangan software atau perancangan program.

Pada perancangan program ini, akan dibagi menjadi 2 langkah: yaitu perancangan program mikrokontroler dan yang kedua perancangan program untuk Human Machine Interface (HMI) dalam hal ini kita menggunakan visual basic.

- Perancangan program mikrokontroler

Setalah input dan output telah terhubung dengan mikrokontroler. Kita perlu memprogram mikrokontroler agar dapat menjalankan perintah sesuai dengan yang kita inginkan.

Saya menggunakan compiler Bascom AVR yang berbasis bahasa basic, teman - teman pembaca dapat menggunakan compiler lain sesuai dengan dasar bahasa pemroggraman yang dikuasai. Misal codevision AVR yang berbasis bahasa C.

Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler
Tampilan program basic compiler (bascom AVR) yang akan kita gunakan untuk memprogram kontrol suhu dan akuisisi data mikrokontroler. pict source: https://ru.wikipedia.org/wiki/Bascom-avr

Kita rancang program, dimana nilai suhu dari sensor LM 35 akan dibaca oleh mikrokokntroler dan nilai tersebut akan dikirim ke PC melalui komunikasi serial.

Selain itu kita juga program agar jika nilai suhu yang terbaca oleh sensor melebihi setpoint maka output mikrokontroler akan mengaktifkan relay dan pompa berjalan.

- Perancangan program visual basic 

Setalah memprogram mikrokontroler, kita perlu membuat Human machine interface (HMI) agar komputer / laptop dapat menampilkan nilai yang diberikan oleh mikrokontroler melalui komunikasi serial.

Dalam kesempatan kali ini saya menggunakan visual basic, teman - teman bisa menggunakan visual C atau Delphi sesuai selera masing - masing.

Cara Kontrol dan Akuisisi data Suhu menggunakan Mikrokontroler
Tampilan program visual basic

Pada program visual basic ini, kita akan merancang sebuah tampilan nilai suhu per menit (akuisisi data). Sehingga kita dapat melakukan trending kenaikan ataupun penurunan suhu yang terjadi.


      Sekian dulu teman sebagai pembuka untuk penjelasan yang lebih teknis yaitu berupa rangkaian serta programnya akan saya tulis dibagian kedua tetap dalam seri cara kontrol dan akuisisi data suhu menggunakan mikrokontroler.

Senin, 20 Februari 2012

Program Motor Stepper dengan Bascom AVR

Pada postingan saya sebelumnya, saya sudah post kan tentang Prinsip program Motor Stepper | Wiring Motor Stepper serta Program Motor Stepper dengan CodeVision AVR , maka dalam tulisan kali ini tentang Program Motor Stepper dengan Bascom AVR.

Untuk memudahkan belajar buat rangkaian simulasinya di proteus, seperti gambar dibawah ini:

Program Motor Stepper dengan Bascom AVR
Program Motor Stepper dengan Bascom AVR

Berikut programnya

$regfile = "m8535.dat"
$crystal = 12000000
Config Portc = Output
Dim A As Integer



"Misal 1 step motor stepper sebesar 1 derajat maka untuk menggerakkan motor stepper sebesar 60 derajat"

For A = 0 To 60
Portc = &B00000001
Waitms 50
Portc = &B00000010
Waitms 50
Portc = &B00000100
Waitms 50
Portc = &B00001000
Waitms 50
Next A


"Misal 1 step motor stepper sebesar 1 derajat maka untuk menggerakkan motor stepper sebesar 180 derajat"
For A = 0 To 180
Portc = &B00000001
Waitms 50
Portc = &B00000010
Waitms 50
Portc = &B00000100
Waitms 50
Portc = &B00001000
Waitms 50
Next A


"Misal 1 step motor stepper sebesar 1 derajat maka untuk menggerakkan motor stepper secara continues"

do
Portc = &B00000001
Waitms 50
Portc = &B00000010
Waitms 50
Portc = &B00000100
Waitms 50
Portc = &B00001000
Waitms 50
loop

Program Motor Stepper dengan Bascom AVR
 Program Motor Stepper dengan Bascom AVR

Rangkaian dan Program Motor Stepper

Kalau pada tulisan sebelumnya sudah saya tuliskan Prinsip program Motor Stepper | Wiring Motor Stepper serta Program Motor Stepper , maka dalam tulisan kali ini tentang kombinasi dari keduanya, kita akan merangkain dan memprogram motor stepper.

Buat rangkaian interface motor stepper seperti berikut atau bisa juga menggunakan fitur simulasi dari proteus.

Rangkaian dan Program Motor Stepper

Berikut program motor stepper menggunakan bahasa c:

 for(i=0;i<50;i++)                 
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }





Untuk menggerakkan motor stepper sebesar 180 derajat
       for(i=0;i<200;i++)
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }  



Untuk menggerakkan motor stepper sebesar 360 derajat
 for(i=0;i<400;i++)
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }   

Berikut hasil simulasinya:
 Rangkaian dan Program Motor Stepper

Minggu, 12 Februari 2012

Program Motor Stepper

Artikel ini merupakan kelanjutan dari tulisan sebelumnya mengenai Prinsip program Motor Stepper , jadi silahkan baca dulu tulisan sebelumnya bagi yang belum membaca.

Jadi bersasarkan prinsip motor stepper di tulisan sebelumnya, dapat kita buat program menggunakan compiler code vision AVR sebagai berikut:

Misal: Motor stepper yang digunakan memiliki karakteristik 0,9 derajat per step

Maka programnya utamanya (untuk setting input/output silahkan atur terlebih dahulu:


Untuk menggerakkan motor stepper sebesar 45 derajat
 
 for(i=0;i<50;i++)                  
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }





Untuk menggerakkan motor stepper sebesar 180 derajat
       for(i=0;i<200;i++)
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }   



Untuk menggerakkan motor stepper sebesar 360 derajat
 for(i=0;i<400;i++)
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }   

Untuk menggerakkan motor stepper berputar terus (continues)

  while(1)
      {
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       }   

Kamis, 19 Januari 2012

Merancang Program Motor Stepper dengan Codevision || Program Mikrokontroler dengan bahasa C

Motor Stepper adalah sebuah perangkat pengandali yang menkonversikan bit-bit sinyal menjadi posisi rotor, motor stepper biasanya dapat kita temui di dalam CD/DVD ROM, selengkapnya untuk mengetahui prinsip kerja dan karakteristik dari motor stepper dapat membaca tulisan saya sebelumnya: Prinsip Kerja Motor Stepper.

Dalam Tulisan kali ini saya akan tuliskan program sedehana dalam mengendalikan motor stepper, pertama kita rancang sistem mikrokontroler yang kita gunakan.
Merancang Program Motor Stepper dengan Codevision || Program Mikrokontroler  dengan bahasa C


lalu Buat program dengan codevision AVR, (setelah setting wizard awal)

#include
#include
#include


PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0xFF;


PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

while (1)
      {
   
       PORTC=0x01;
       delay_ms(50);
       PORTC=0x08;
       delay_ms(50);
       PORTC=0x02;
       delay_ms(50);
       PORTC=0x04;
       delay_ms(50);
   
      
      };

Analisa Program

4 bit motor stepper kita beri logika 1 bergantian,  dengan begita motor stepper akan bergerak sebesar 1 step, misal motor stepper kita mempunyai karakteristik 1 derajat per step, maka kita butuh perulangan 180 kali untuk menggeraknya sebesar 180 derajat, begitu juga seterusnya namun kalau kita menghendaki motor setpeer berjalan continues maka kita cukup lakukangan perulangan terus menerus

Jalankan program

Merancang Program Motor Stepper dengan Codevision || Program Mikrokontroler  dengan bahasa C

Semoga Bermanfaat

Kamis, 18 Agustus 2011

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan BASCOM AVR

Setelah pada tulisan sebelumnya memuat tentang Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR, yang menjelaskan secara singkat penjelasan tentang ADC internal yang dimiliki oleh mikrokontroler ATMEGA 8535.

Dalam tulisan kali ini akan dibahas sama seperti tulisan sebelumya yaitu Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR hanya saja menggunakan bahasa basic dengan compiler Bascom AVR

Untuk simulasi, silahkan buat rangkaian minum plus LCD di proteus, seperti dibawah ini.



Lalu buka Bascom AVR,
Ketikkan program seperti berikut:

$regfile = "8535def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cls

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Dataadc As Word
Cursor Off
Do

Dataadc = Getadc(0)
Locate 1 , 1
Lcd "Data ADC:"
Locate 2 , 1
Lcd Dataadc
Loop

Compile, dan downloadkan ke rangkaian proteus yang telah dibuat dan jalankan program


Semoga bermanfaat

Selasa, 16 Agustus 2011

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Keunggulan utama mikrokontroler keluarga AVR semisal mikrokontroler ATMEGA 8535 dibanding dengan pendahulunya MCS-51 adalah mikrokontroler ATMEGA 8535 ini telah memiliki ADC internal sebesar 10 bit.

Hal diatas menguntungkan karena bila kita ingin mengolah suatu data analog seperti sensor suhu LM 35, sensor kelembaban SHT 11, intensitas cahaya dengan LDR (light dependent resistor) atau dengan photodiode, dll maka kita tidak memerlukan komponen tambahan seperti IC ADC 0804.

Lalu bagaimana cara memprogram ADC pada mikrokontroler ATMEGA 8535, sangat mudah tentunya tergantung dengan bahasa pemrograman yang dikuasai, jika mahir dalam menggunakan bahasa basic maka silahkan gunakan compiler Bascom AVR jika mahir menggunakan bahasa C maka silahkan gunakan compiler codevision AVR. Dalam tulisan kali ini akan digunakan compiler codevision AVR.

Untuk simulasi, silahkan buat rangkaian minimum plus LCD di proteus, seperti dibawah ini.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Lalu buka codevision dan, setting seperti gambar berikut.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Ketikkan program seperti berikut:
-->
#include      
#include
#include

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include

#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

int data_adc;
char data[8];
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
lcd_init(16);

while (1)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Data ADC:");
data_adc= read_adc(0);
lcd_gotoxy(0,1);
ftoa(data_adc,1,data);
lcd_puts(data);
delay_ms(500);

};
}

Compile, dan downloadkan ke rangkaian proteus yang telah dibuat dan jalankan program

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Semoga bermanfaat

Selasa, 02 Agustus 2011

Rangkaian Antarmuka dan Program Running Led / Led Berjalan dengan Mikrokontroler

Sebagai langkah awal belajar mikrokontroler membuat berbagai proyek sederhana akan menambah pemahaman kita terhadap mikrokontroler dan dapat melatih logika kita dalam menerjemahkan sebuah algoritma menjadi bahasa pemrograman.

Led berjalan atau Running led dengan Mikrokontroler biasanya menjadi proyek awal dalam mempelajari mikrokontroler, berikut Rangkaian Antarmuka dan Program Running Led / Led Berjalan dengan Mikrokontroler , rangkaian dibuat dengan software proteus 7.8: baca tutorialnya disini Simulasi Mikrokontroler dengan Proteus 7


Rangkaian Antarmuka dan Program Running Led / Led Berjalan dengan Mikrokontroler

Rangkaian diatas terdiri :
-Mikrokontroler ATMEGA 16 (dapat juga digunakan mikrokontroler dari keluarga AVR lainnya semisal ATMEGA 8535, ATMEGA 8, atau dari keluarga MCS-51 dan PIC)
- Rangkaian clock eksternal terdiri dari crystal osilator 12 Mega HZ, dan 2 buah kapasitor 33 piko farad
- Rangkaian Reset terdiri dari push button, kapasitor 1000 mikro farad dan resistor 1 kilo Ohm
- 8 buah Led

Berikut program menggunakan compiler Bascom AVR ( silahkan baca Dasar Pemrograman Mikrokontroler dengan BASCOM AVR dan Kontrol Program dalam BASCOM AVR)



$regfile = "m16def.dat"
$crystal = 12000000


Config Portc = Output
Dim X As Integer
Portc = 0
Do


Portc = &B00000001
Waitms 10
For X = 1 To 8
Shift Portc , Left , 1
Waitms 10
Next X


Loop

Downloadkan programnya ke mikrokontroler atau downloadkan programnya ke proteus jika ingin simulasi, berikut hasil simulasinya.


Semoga Tulisan singkat ini bermanfaat.

Rangkaian Antarmuka dan Program LCD dengan Mikrokontroler

Display LCD merupakan salah satu output popular yang banyak digunakan dalam dunia control dan instrumentasi ataupun otomasi, untuk control dan instrumentasi sederhana LCD biasanya digunakan untuk menampilkan data real dari suatu nilai yang sedang kita control, missal suhu, tekanan, intensitas cahaya dan lain – lain.

Memprogram dan merangkai LCD ternyata tidak terlalu sulit,Berikut gambar antarmuka LCD 16x2 (yang banyak dipasaran bisanya bermerk TopWay, atau dapat merk lainnya, tidak masalah) yang penting terdapat datasheetnya untuk menentukan mana pin RS, R/W, Enable (E), data0 sampai data7 (D0 – D7) , kontroler yang digunakan adalah ATMEGA 16, anda juga dapat menggunakan ATMEGA 8535, atau keluarga AVR lainnya, bisa juga dari keluarga MCS-51 dan PIC

Gambar antarmuka ini digambar dengan proteus 7.8, tutorial proteus:Simulasi Mikrokontroler dengan Proteus 7

Rangkaian Antarmuka dan Program LCD dengan Mikrokontroler


Lalu buat program seperti berikut (compiler yang digunakan disini Basic Compiler, silahkan baca tutorialnya: Dasar Pemrograman Mikrokontroler dengan BASCOM AVR dan Kontrol Program dalam BASCOM AVR):

$regfile = "m16def.dat"
$crystal = 12000000


Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cls


Dim Kanan As Integer
Dim Kiri As Integer


Do
Locate 1 , 1
Lcd "welcome to my blog"
Waitms 1
Locate 2 , 1
Lcd "all-thewin"
For Kanan = 1 To 16
Shiftlcd Right
Waitms 1
Next Kanan


Waitms 1


Locate 1 , 1
Lcd "welcome to my blog"
Waitms 1
Locate 2 , 1
Lcd "all-thewin"


For Kiri = 1 To 16
Shiftlcd Left
Waitms 1
Next Kiri


Loop


Lalu compile dan downloadkan ke mikrokontroler, atau jika simulasi, downloadkan ke dalam software proteus,

Berikut hasil simulasinya:

Rangkaian Antarmuka dan Program LCD dengan Mikrokontroler




Semoga tulisan sederhana ini bermanfaat

Senin, 18 Juli 2011

Simulasi Mikrokontroler dengan Proteus 7

Simulasi Mikrokontroler menurut saya merupakan fitur yang sangat berguna dan mengasyikkan yang di sediakan oleh software proteus ini, berbagai macam varian mikrokontroler dapat kita gunakan dari ATMEGA, MCS-51, Paralax, PIC, dll serta berbagai macam compiler dengan bahasa permrograman yang berbeda – beda pula.

Berikut contoh gamabar simulasi mikrokontroler

Simulasi Mikrokontroler dengan Proteus 7

Untuk menismulasi kan project yang akan kita buat, kita gambar/rangkaian komponen yang akan kita buat, missal input berupa push button dan output berupa led, kita gambar sesuai dengan yang ingin kita buat (sesuai Port yang kita gunakan dalam program)

Lalu kita buat program dengan compiler yang kita kuasai, dapat menggunakan codevision (untuk mikrokontroler AVR dengan bahasa C), bisa dengan BASCOM AVR ( untuk mikrokontroler AVR dengan bahasa basic), bisa dengan BASCOM 8051 ( untuk mikrokontroler MCS-51 dengan bahasa BASIC,  bisa dengan MikroC atau Mikro Basic (untuk mikrkontroler PIC) atau bahkan dengan bahsa assembly, yang penting compiler tersebut dapat di compile dan menghasilkan fie berekstensi *hex.

Lalu kita downloadkan program tersebut dengan rangkaian simulasi yang kita buat, caranya double click pada mikrokontroler, maka akan muncul gambar seperti dibawah ini, dan browse file yang berekstensi *hex tadi.

Simulasi Mikrokontroler dengan Proteus 7

Lalu jalankan program

Simulasi Mikrokontroler dengan Proteus 7

Semoga tulisan sederhana ini bermanfaat..

Senin, 27 Juni 2011

Belajar Mikrokontroler | Membaca Data Suhu dengan Mikrokontroler PIC 16F877

Tulisan kali ini sekedar untuk berbagi tentang salah satu aplikasi sederhana dengan menggunakan mikrokontroler PIC 16F877, yaitu membaca data suhu yang akan ditampilkan di LCD, baca juga:  Belajar Mikrokontroler PIC | Membaca Data ADC dan  Mengendalikan PWM dengan Input ADC

Pada tulisan kali ini sensor suhu DS1820, dapat juga menggunkan LM 35 D ( saran penulis jangan menggunakan LM 35 DZ, karena menurut pengalaman tipe DZ tegangan yang dikeluarkannya kurang stabil)., suhu ini akan di tampilkan pada LCD. baca juga: Rangkaian Interface Mikrokontroler PIC dengan LCD

Diagram Blok Aplikasi Membaca data Suhu
Gambar Diagram Blok Aplikasi Membaca Data Suhu

Berikut rangkaiannya

Rangkaian Aplikasi Membaca Data Suhu


Gambar Rangkaian Aplikasi Membaca Data Suhu


Berikut Listing Programnya:

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
const unsigned short TEMP_RESOLUTION = 9;

char *text = "000.0000";
unsigned temp;

void Display_Temperature(unsigned int temp2write) {
const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
char temp_whole;
unsigned int temp_fraction;


if (temp2write & 0x8000) {
text[0] = '-';
temp2write = ~temp2write + 1;
}


temp_whole = temp2write >> RES_SHIFT ;
if (temp_whole/100)
text[0] = temp_whole/100 + 48;
else
text[0] = '0';

text[1] = (temp_whole/10)%10 + 48;
text[2] = temp_whole%10 + 48;
temp_fraction = temp2write << (4-RES_SHIFT);
temp_fraction &= 0x000F;
temp_fraction *= 625;


text[4] = temp_fraction/1000 + 48;
text[5] = (temp_fraction/100)%10 + 48;
text[6] = (temp_fraction/10)%10 + 48;
text[7] = temp_fraction%10 + 48;
Lcd_Out(2, 5, text);
}

void main() {
ANSEL = 0;
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;

Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1, 1, " Temperature: ");
Lcd_Chr(2,13,223);

Lcd_Chr(2,14,'C');

//--- Main loop
do {
Ow_Reset(&PORTE, 2);
Ow_Write(&PORTE, 2, 0xCC);
Ow_Write(&PORTE, 2, 0x44);
Delay_us(120);

Ow_Reset(&PORTE, 2);
Ow_Write(&PORTE, 2, 0xCC);
Ow_Write(&PORTE, 2, 0xBE);
temp = Ow_Read(&PORTE, 2);
temp = (Ow_Read(&PORTE, 2) << 8) + temp;

//--- Format and display result on Lcd
Display_Temperature(temp);

Delay_ms(500);
} while (1);
}


Simulasikan program diatas dengan Real PIC simulator( baca: Tutorial PIC Simulator )
Semoga bermanfaat

Sumber Refernsi: MikroElektronika


Baca Juga:

Minggu, 26 Juni 2011

Mengendalikan PWM dengan Input ADC pada mikrokontroler PIC

Pada tulisan kali ini, saya akan mencoba mengendalikan PWM (pulse width modulation) dengan input analog dari ADC internal pada mikrokontroler PIC 16F877, Tulisan kali ini merupakan gabungan dari dua tulisan sebelumnya yaitu Belajar Mikrokontroler | Pengendalian PWM pada Mikrokontroler PIC 16f877 dan Belajar Mikrokontroler PIC | Membaca Data ADC.

Nah sekarang kita mencoba menggabungkan bagaimana input ADC yang nilainya analog juga mengatur keluaran PWM yang nilainya analog, kita tahu ADC pada ikrokontroler PIC sebesar 10 bit berarti mempunyai range antara 0 sampai 1023 dan juga PWM nilainya antara 0 - 100 persen satuan duty cycle, jadi program ini akan memberi nilai kearan pada PWM sesuai dengan nilai ADC yang masuk berdasarkan perbandingan dua nilai tersebut.
Berikut programnya, kali ini saya menggunakan compiler Ldmikro (ternyata menggunakan program ladder lebih mudah dan mengasyikkan) baca: LdMikro | Solusi Belajar Mikrokontroler dengan Ladder diagram

PWM dengan input ADC


Catatan:
Untuk memasukkan berbagai instruksii pada LdMikro, perintahnya ada pada tab instruksi dan masukkan instruksi sesuai dengan keinginan kita,
pada program diatas instruksi yang digunakan:
-  A/D Converter Read (Untuk membaca nilai ADC)
- Set PWM Output (untuk mengeluarkan nilai PWM)
- piecewise linear (untuk membuat perbandingan)

Lalu atur piecewise linear dengan 3 set point, yaitu low, medium dan hgh, perbandingannya 0 pada ADC berarti 0 pada PWM, 512 pada ADC berarti 50 dutycycle PWM, 1023 pada ADC berarti 100 dutycycle PWM, dan nilai antara minimum dan maksimum sesuai dengan perbandingan itu.
PWM dengan input ADC pada mikrokontroler
Compile program dan simulasikan dengan RealPicSimulator (Tutorial PIC Simulator | Belajar Mikrokontroler PIC)
Berikut hasilnya:

Mengendalikan PWM dengan input ADC



Baca juga:

Sabtu, 18 Juni 2011

Belajar Mikrokontroler PIC | Membaca Data ADC

Seri pembelajaran Mikrokontroler PIC kali ini adalah membaca nilai ADC (Analog to Digital Converter) yang akan di tamplkan pada LCD (Liquid Crystal Display, Mikrokontroler jenis PIC ini rata-rata telah memiliki ADC Internal 10 bit, ADC ini dapat dimanfaatkan untuk pembacaan input dengan nilai analog contoh input pada sensor suhu (akuisisi data suhu dengan Mikrokontroler ATMEGA 8535), sensor jarak, sensor ketinggian, dan lain - lain.

ADC 10 bit ini berarti nilai rentang ADC bernilai antara 0 - 1023 , 2 pangkat 10 bit, dengan asumsi tegangan pada ADC antara 0 sampai 5 Volt berarti 0 merepresentasikan nilai ADC 0 dan 5 Volt merepresentasikan nilai ADC 1023, sedangkan tegangan antara 1 - 5 Volt bernilai antara 0 - 1023.
Berikut program pembacaan nilai ADC dengan menggunakan MikroC
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
unsigned int adc;
unsigned char txt[10];
void ADC_Init();
void main() {
  ANSEL  = 0x04;              // Configure AN2 pin as analog
  ANSELH = 0;                 // Configure other AN pins as digital I/O
  C1ON_bit = 0;               // Disable comparators
  C2ON_bit = 0;
  ADCON1 = 0x80;

  TRISA  = 0xFF;              // PORTA is input
  TRISC  = 0;                 // PORTC is output
  TRISD  = 0;                 // PORTD is output
  Lcd_Init();                        // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  Lcd_Out(1,1,"Nilai ADC");


do  {
    adc = ADC_Read(2);   // Get 10-bit results of AD conversion
    IntToStr (adc, txt);       // Ubah Nilai Integer menjadi String
    Lcd_Out(2,1,txt);
  }
while(1);
}

Berikut hasil simulasinya


Baca juga:

Jumat, 17 Juni 2011

Rangkaian Interface Mikrokontroler PIC dengan LCD

Rangkaian Interface Mikrokontroler PIC dengan LCD, tepatnya mikrokontroler PIC 16F877A dengan LCD 16 x 2 sebenarnya sama dengan rangkaian interface antara Mikrokontroler ATMEGA, MCS-51 dengan LCD 16 x 2.

Untuk LCD jenis ini yang memiliki 16 pin ini, pin - pin yang digunakan adalah pin - pin yang dideklarasikan ke dalam program dan pin supply, pin yang di deklarasikan dalam program ini antara lain pin RS, RW, D4, D5, D6, dan juga D7.

Sama halnya dengan pendeklarasian pin - pin LCD ke dalam program baik itu menggunkan BASCOM AVR, BASCOM 8051 atau CodeVision AVR, Untuk pendeklarasian ke dalam program (mikrokontroler PIC) berikut contohnya:

Dengan Menggunakan compiler MikroC (compiler Mikrokontroler PIC)


sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB6_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB6_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;


Untuk Gambar Rangkaian Interface - nya
 



Catatan: Pin - pin bisa di ubah sesuai denan yang diklarasikan ke dalam program, untuk tipe Lcd 16 x 2 paralel umumnya memiliki 16 pin:
pin 1 dan 16 ground
pin 2 dan 15 Vcc
pin 3 Kontras Lampu Lcd, dapat dihubungkan dg trimpot yang keudian dihubungkan dengan vcc dan ground
pin 4 Rs
pin 5 R/W (hubungkan ke ground (mode Write))
pin 6 En
pin 7-10 (D1-D3 tidak dipakai)
pin 11-14 (D4-D7)


Semoga bermanfaat...