Showing posts with label Mikrokontroler. Show all posts
Showing posts with label Mikrokontroler. Show all posts

Opsi Upload Sketch Arduino menggunakan USB Serial TTL

Hallo sobat, kebetulan sekali sobat membuka artikel ini yang sharing pengalaman tentang Arduino. Ada kalanya board arduino yang kita miliki itu rusak sehingga tidak bisa kita gunakan untuk menjalankan program dari IDE Arduino.

Akan tetapi kerusakannya sudah dapat kita pastikan yakni IC USB-Serial (ATMega 16U2) dalam board Arduino itu sendiri mengalami kerusakan. Atau anda barangakali membuat board Arduino sendiri "standalone". Permasalahanya yakni bagaimana cara mengupload program kedalam IC Arduino Uno (ATMega 328) atau IC Arduino yang lain ???


Ada 2 Opsi: yang Pertama menggunakan opsi dengan upload sketch menggunakan downloader universal seperti USBASP buatan Thomas Fiscl. Dengan menyambungkan pin MOSI, MISO, SCK, RESET, +5V, dan GND pada USBASP maka permasalahan tersebut sudah dapat diatasi, permasalah apa ??? Tentu saja permasalahan upload sketch dari Arduino IDE ke Board Arduino (Arduino UNO, Arduino Mega, Arduino Nano. Dll...). 

Apabila menggunakan USBASP maka sebelum melakukan opsi "Upload Sketch With Programmer (Ctrl+Shift+U)" terlebih dahulu untuk pertama kalinya kita harus menburning bootloadernya dulu kedalam IC Mikrokontrolernya. Contoh: Jika opsi Arduino Uno maka chipnya harus ATmega 328, sedangkan opsi Arduino Mega maka chipnya harus ATmega 1280/2560.


Kembali pada topik utama sesuai judul pembahasan blog ini, bagaimana cara mendownload / upload sketch dari IC Arduino dengan USB Serial. Oke langsung saja ada poin penting dalam melakukan download/upload sketch menggunakan USB Serial.

Poin ke-1 : Komponen pertama yang digunakan adalah USB Serial TTL, kenapa harus TTL ??? Karena level tegangan pada Mikrokontrol dalam kisaran 0 - 5V, apabila diluar level itu IC Mikrontroler akan rusak.

Pin utama dalam USB Serial TTL adalah (RX, TX, 5V, dan GND).
Gambar dari USB Serial tersebut ditunjukkan pada gambar berikut ini.


Poin ke-2 : Sebelum upload sketch menggunakan USB Serial terlebih dahulu yang perlu dilakukan adalah mem-burning atau mengupload bootloader Arduino sendiri kedalam IC Mikrokontroler yang bersangkutan seperti yang sudah sedikit dijelaskan di atas tadi. Apabila tidak dilakukan maka mustahil proses upload sketch dengan menggunakan USB Serial dapat dilakukan.

Poin ke-3 : Yang terakhir menurut pengalaman penulis yakni: PIN Rx dan Tx dalam IC Mikronkontroler tidak digunakan, maksudnya Pin tersebut tidak dihubungkan sebagai I/O atau shield lain. Jadi PIN ini dikhususkan untuk upload/download sketch. Mungkin sering gagalnya proses upload/download sketch Arduino sering gagalnya disini, mungkin sudah dicoba berulang-ulang dan gagal tapi ternyata pin Rx dan Tx nya tersambung dengan rangkaian lain. Jadi komunikasi datanya menjadi error.


Gambar diatas adalah USB Serial TTL.


Langkah selanjunya, yaitu menghubungkan Pin USB Serial dengan IC Mikrokontroler, sebagai contoh disini saya mengambil IC ATMega 328 yang saya gunakan pada opsi Arduino UNO.

Posisi PIN USB Serial Terhadap IC ATMega 328 P adalah sebagai berikut:

USB SERIAL TTL ke ATMega 328 P

TX ke RX               
RX ke TX    
5V ke 5V
GND ke GND      

Mengunci Program Hex Mikrokontroler ATmega dengan Seting Fusebit

Keyword: How to lock flash microcontroler, in indonesian language, locking hex atmega with fusebit.


Originally posted by: Nanda Puji Arianto

Pada tutorial kali ini saya akan membagikan cara bagaimana mengunci program mikrokontroler ATMega dari perintah "read flash" atau "read eeprom", cara ini dimaksudkan apabila anda ingin program flash yang telah terdownload dalam mikrokontroler avr seperti ATMega 8, ATMega 16, ATMega 32 tidak ingin orang lain mengcopy program tersebut tanpa seizin anda. Program yang sudah dikunci dengan fusebit makan mustahil untuk dapat dicopy ke mikrokontroler lain.

Apabila anda seorang programmer mikrokontroler tentu anda tidak ingin program buatan anda dibajak atau dicopy orang lain, tentu hal ini sangat menyedihkan apabila program yang anda buat dengan susah payah lalu orang lain berhasil mengcopynya. Sebelum mengenal tutorial saya ini, anda mungkin berfikiran untuk "mengecor chip anda dengan semen, atau memotong pin MOSI, MISO, SCK, & RESET, ataupun juga dengan  cara lainnya", tentu juga cara tersebut tidaklah efektif serta memakan banyak waktu. 


Caranya tidaklah susah, yang hanya butuhkan hanya alat-alat berikut di bawah ini:
1. Downloader Mikrokontroler USB ASP, USB ISP
2. Program Downloader AVR, saya memakai eXtreme Burner v1.4 download disini

Pertama-tama berdo'alah terlebih dahulu :D, semoga tidak ada kegagalan nantinya :D. Kemudian masukkan port USBASP ke pin downloader mikrokontroler, kemudian buka program eXtreme Burner, ketika terbuka jendela program akan menampilkan seperti di bawah ini.



Kemudian Pilih Tab "Fusebits/Settings" -> Pilih "Lock Fuse" -> Checklist pada pilihan Lock Fuse kemudian beri nilai dengan 0x C0 (apabila dibaca, Huruf: "Ce" Angka: "Nol")

Kemudian Klik "Write" atau dapat dilihat seperti gambar di bawah ini.

Dan setelah selesai, selamat program hex di dalam mikrokontroler anda sudah terkunci, dan untuk memeriksanya klik "Read Flash" kemudian jika anda amati file hex. dalam buffer sudah berbeda dengan original file .hex dari compiler



Beberapa catatan yang perlu anda perhatikan:
1. Pastikan Option Checklist hanya pada "Lock Fuse", jangan sekali-sekali checlist pada "High Fuse" dan "Low Fuse" karena apabila nilai dalam high & low fuse salah memasukkan bisa jadi  chip mikrokontroler anda dapat terkunci dengan sendirinya/tidak dapat digunakan lagi.

2. Selamat mencoba dan semoga berhasil, sharing pengalaman anda dengan menulis komentar dibawah. Terimakasih

Cara menormalkan masalah PORT C I/0 pada Mikrokontroler ATmega 8535, 16, 32

Pada postingan kali ini bronanda akan sharing tentang pengalaman bronanda dalam mengotak-atik mikrokontroler, bingung karena PORTC pada Mikrokontroler ATMega 32 tidak mau bekerja sebagai mana mestinya.  Soalnya PORTC ini gak bisa digunakan sebagai I/O secara normal.


Pertama saya coba menggunakan program biasa led berkedip-kedip seperti ini:


delay_ms(500);

PORTC.2=1;

Delay_ms(500);

PORTC.2=0;


Dan hasilnya PORTC.2 tidak mau mengeluarkan logika yang telah diprogramkan seperti di atas, kemudian saya cek apakah tegangan mikrokontrol normal? Dan hasilnya normal normal aja (4,9V) ... hadehh,, pusing pala aingg :D.


Dan dari browsing sana-sini, akhirnya ketemu dah solusinya, yakni dengan mengatur fusebit, sebagai contoh disini saya menggunakan software downloader: Extreme Burner v1.4. Download softwarenya gratis disini.



Download Extreme Burner v1.4
 

Langkah-langkah untuk menormalkan PORTC I/O pada Mikrokontroler adalah sebagai berikut:
 

1. Instal Software Extreme Burner v1.4, kemudian buka software tersebut di dekstop.   



2. Pilih Chip Settings, disini aku memakai Atmega32

3. Pada Tab Fuse Bits/Settings -> Pada High Fuse -> Klik Bit Details kemudian akan terbuka window baru
 
Name
Status
SPIEN
UN PROGRAMMED (1)
JTAGEN
UN PROGRAMMED (1)



4. Pada Baris SPIEN, ubah Status menjadi UN PROGRAMMED dari PROGRAMMED dengan cara klik dua kali. 

5. Pada Baris JTAGEN, ubah Status menjadi UN PROGRAMMED dari PROGRAMMED dengan cara klik dua kali. 

6. Kemudian Klik OK. 

7. Checklist Pada Write, High Fuse.

8. Pastikan Downloader USBASP sudah terhubung dengan sistem minimum Mikrokontroler, dan sudah terhubung dengan baik

9. Pada Tab Write, Klik Fuse Bits and Lock Bits



10.   PORTC akan kembali normal, cek dengan program tertentu

Sekian, jangan lupa komentarnya ya... semoga berhasil

data ADC modul Analog pH meter DFRobot

Halo sobat blogger, hari ini aku mau posting nih. Berhubung ada temen yang minta pengalaman menggunakan modul sensor analog pH meter dari DFRobot.

Modul Analog pH Meter dapat dilihat di website ini klik disini.


 Gambar Elctroda Tube Glass dan Modul sensor pH v1.0


Gambar Modul sensor pH v1.0

Menurut pengalaman saya, modul sensor pH sendiri  mempunyai output 3-pin
1. Kabel merah (+5V) / VCC
2. Kabel hitam (0V) / GND
3. Kabel biru (Output 0V sampai dengan 5V) (masuk ke ADC Input pada Mikrokontroler)

Nah, yang menjadi persoalan disini adalah bagaimana melakukan kalibrasi terhadap Output dari modul sensor pH tersebut, karena seperti yang dijelaskan di situs DFRobot modul sensor ini dapat membaca pH dari: 0 - 14.

Saya mengkalibrasi data ADC dengan pH tersebut menggunakan cairan khusus yang saya campur dengan air, lalu saya bandingkan dengan warna yang terjadi. Untuk cairan nya saya menggunakan Sera pH test, yang dari metode pembacaan pH secara manual (warna) kemudian saya rata-ratakan kedalam nilai ADC. Sera pH test dapat dilihat disini




Data ADC yang saya dapatkan dari metode pembacaan tersebut dibawah ini:

    if(nilai>=1&&nilai<=55)ph=1;
    else if(nilai>=56&&nilai<=112)ph=2;
    else if(nilai>=113&&nilai<=168)ph=3;
    else if(nilai>=169&nilai<=224)ph=4;
    else if(nilai>=225&&nilai<=280)ph=5;
    else if(nilai>=281&&nilai<=336)ph=6;
    else if(nilai>=337&&nilai<=392)ph=7;
    else if(nilai>=393&&nilai<=448)ph=8;
    else if(nilai>=449&&nilai<=504)ph=9;
    else if(nilai>=505&&nilai<=560)ph=10;
    else if(nilai>=561&&nilai<=616)ph=11;
    else if(nilai>=617&&nilai<=672)ph=12;
    else if(nilai>=673&&nilai<=728)ph=13;
    else if(nilai>=729&&nilai<=784)ph=14;
    else {ph=0;}

Dari coding diatas dapat dijelaskan, misal untuk nilai pH: 14, maka modul sensor pH akan mengeluarkan data ADC: 729 - 784