Percobaan Interupsi Timer1 pada ATmega328

Pada percobaan ini akan dibuat interupsi timer 1 pada ATmega328 dengan frekuensi 1 kHz, dan kemudian dilakukan pengukuran frekuensi yang dihasilkan.

Konfigurasi Timer 1 sebagai berikut

  • Frekuensi 1 kHz, atau perioda 1 ms
  • menggunakan Timer1
  • Clock Source: System Clock
  • Clock Value: 250 kHz (prescaler 64)
  • Mode: CTC top=OCR1A
  • Out A: Disconnected
  • Out B: Disconnected
  • Interrupt on: Compare A Match
  • tidak ada output langsung ke pin mikrokontroler

Frekuensi clock adalah 16 Mhz. Dengan prescaler 64, dihasilkan clock ke Timer1 sebesar 250 kHz. Untuk membuat frekuensi 1 kHz, perlu pembagi sebesar 250 (0xFA), untuk itu diperlukan angka 249 (0xF9) di register OCR1A. Mode timer1 menggunakan CTC (Clear Timer on Compare), jadi ketika angka counter mencapai 249, otomatis berikutnya menjadi 0, dibarengi dengan munculnya interupsi timer 1. Dengan demikian sinyal clock timer 1 250 kHz akan menghasilkan interupsi timer dengan frekuensi 1 kHz.

Kode dibuat dengan menggunakan CodeWizard pada compiler CodevisionAVR versi Evaluation. Berikut ini tampilan setting pada code wizard untuk Timer 1:

Konfigurasi Timer 1
Konfigurasi Timer 1

 

Untuk menghasilkan sinyal output, digunakan port C sebagai output. Output pada port C dikomplemen setiap interupsi, sehingga akan timbul sinyal dengan frekuensi 500 Hz pada port C. Berikut kode ISR (interrupt service routine) untuk Timer 1:

interrupt [TIM1_COMPA] void timer1_compa_isr(void)

{

PORTC=~PORTC;

}




Berikut ini sinyal yang dihasilkan, diukur dengan menggunakan osiloskop. Screen capture diambil langsung dari osiloskop (bukan difoto).

 

Hasil pengukuran port C

Frekuensi yang terukur adalah 500,026 Hz, sehingga frekuensi interupsi sebenarnya adalah 2 x 500,026 = 1000,052 Hz. Tidak sama persis dengan seharusnya (1 kHz), kemungkinannya antara frekuensi kristal yang tidak tepat, atau clock pada osiloskop yang tidak tepat.

Pengukuran frekuensi dengan osiloskop GDS 1042
Pengukuran frekuensi dengan osiloskop GDS 1042
Pengukuran sinyal pada Arduino nano (ATmega328)
Pengukuran sinyal pada Arduino nano (ATmega328)

Perbandingan Board Arduino

Dalam tulisan ini akan dibandingkan beberapa produk board Arduino yang mudah diperoleh di Indonesia. Arduino UNO ini sangat populer, sehingga banyak perusahaan lain yang membuat cl Daftar lengkap produk Arduino original dapat dilihat di daftar produk Arduino di website Arduino. Sebagai referensi harga saya menggunakan harga di Central Electronic Jaya Plaza dan situs online Deal Extreme

Berikut ini beberapa produk Arduino:

No Nama Merek Gambar Keterangan Vendor Harga
1 Arduino Uno R3

Arduino UNO R3
Arduino UNO R3
Arduino asli Jaya Plaza Rp 327.500
2 Funduino UNO R3 ATMega328P

Funduino UNO R3
Funduino UNO R3
Kompatibel dengan Arduino UNO R3 DealExterme USD 11.46
Fundiono UNO R3 Funduino

Funduino UNO R3
Funduino UNO R3
Kompatibel dengan Arduino UNO R3 Deal Extreme USD 13.44
3 XDRDuino UNO XDRDuino

XDRDuino UNO R3
XDRDuino UNO R3
Kompatibel dengan Arduino UNO R3 Deal Extreme USD 12.23
4 UNO ATMega328

UNO ATMega 328
UNO ATMega 328
Kompatibel dengan Arduino UNO R3 Deal Extreme USD 14.66
Makerduino UNO v3.0 Maker Studio

Makerduino UNO
Makerduino UNO
Kompatibel dengan Arduino UNO R3 Deal Extreme USD 15.31
Seeduino S-V3

Seeduino S-V3
Seeduino S-V3
Kompatibel dengan Arduino MEGA 2560
Deal Extreme USD 24.99
Zduino Uno Openjumper

Zduino UNO
Zduino UNO
Kompatibel dengan Arduino MEGA 2560 Deal Extreme USD 22.30
Itead Mega 2560 R3 Itead

Iteaduino Mega
Iteaduino Mega
Kompatibel dengan Arduino MEGA 2560 Deal Extreme USD 27.30
Arduino Leonardo
Arduino Due
Arduino Yun
Arduino Tre
Arduino Micro
Arduino Robot
Arduino Esplora

Arduino Esplora
Arduino Esplora
Jaya Plaza Rp 1000000
Arduino Mega ADK
Arduino Ethernet
Arduino Mega 2560
Arduino Mini
Lilypad Arduino USB
Lilypad Arduino Simple
Lilypad Arduino SimpleSnap
Lilypad Arduino
Arduino Pro Mini
Arduino Pro
Arduino Fio

Perbedaan Arduino ORI dan KW

Apa sih perbedaan utama antara Arduino ORI dan KW? Apakah perbedaannya besar sekali? Pada tulisan ini akan dibahas satu aspek saja, yaitu dari chip USB yang dipakai

Harga

Perbedaan utama tentunya adalah harga. Arduino UNO ori harganya 300 ribuan, sedangkan Arduino UNO KW/clone harganya di bisa bawah 100 ribu.  Arduino Nano original harganya di atas 100 ribu, sedangkan yang KW/clone sekitar 30 ribu sampai 40 ribu.

Hardware

Dari sisi hardware, Arduino Nano / UNO ori maupun KW menggunakan prosesor ATMega168 / ATmega328, dengan variasi ada yang menggunakan kemasan DIP, ada yang SMD. Perbedaan ada pada chip USB to Serial untuk Arduino Nano. Arduino Nano ORI menggunakan chip FTDI untuk menyambungkan port serial ke USB, sedangkan Arduino Nano KW/clone seringnya menggunakan chip CH340 untuk menyambungkan port serial ke USB. Arduino Nano KW  ada yang menggunakan chip FTDI (FT232), namun harganya biasanya lebih mahal daripada Arduino Nano dengan chip CH340.

CH340 di bagian bawah Arduino Nano

Software

Dari sisi software yang dimasukkan ke dalamnya, tidak ada perbedaan pada Arduino Nano/UNO baik yang KW maupun ORI, keduanya sama-sama menggunakan ATMega168 atau ATMega328, jadi tidak ada perbedaan source code.

Driver di Host

USB pada Arduino perlu driver pada komputer host yang dipakai. Komputer host yang umum dipakai adalah berbasis Windows, OSX dan Linux. Pada tulisan ini hanya dibahas Windows dan OSX, karena yang Linux belum dicoba.

Arduino yang clone seringnya untuk USB serial menggunakan chip USB to serial tipe CH340. Arduino yang original biasanya menggunakan chip FTDI. Driver FTDI di Windows 10 sudah built-in, jadi tinggal pasang saja Arduino tersebut ke  USB maka akan langsung dikenali.

Arduino yang KW umumnya menggunakan chip CH340, sedangkan driver CH340 tidak built-in di Windows 10, sehingga driver untuk CH340 mesti download & install dulu, baru kemudian Arduino tersebutdapat dikenali. Agak repot, namun proses ini hanya dilakukan sekali saja, setelah itu tidak perlu dilakukan lagi.

Kasus berbeda pada sistem operasi OSX (Apple). Pada OSX (Apple) sudah ada driver untuk FTDI, sehingga untuk Arduino yang ORI tinggal pasang saja USBnya, maka akan langsung dikenali.

Driver CH340 pada OSX belum ada built in, sehingga perlu install dulu. Selain itu juga driver CH340 secara default tidak bisa diinstall di OSX, karena sertifikatnya tidak diakui. Jadi untuk install driver CH340, pengecekan sertifikat driver harus dinonaktifkan dulu, jadi prosesnya agak ribet.

Pada Linux, driver untuk CH340 dan FTDI sudah built in, jadi tidak ada masalah seperti pada OSX. Ref: https://sparks.gogo.co.nz/ch340.html

Kesimpulan : kalau pakai sistem operasi Windows 10, pakai Arduino KW saja, cuma beda install driver CH340 paling juga 10 menitan. Jika pakai OSX dan tidak mau repot, pilih saja Arduino yang menggunakan chip FTDI.

Arduino nano di latar depan dengan Arduino Uno di latar belakang
Arduino nano KW di latar depan dengan Arduino Uno ORI di latar belakang

Referensi

Rangkaian Programmer pada Arduino UNO Dan Nano

Modul mikrokontroler Arduino sangat mudah digunakan, salah satunya karena pada modul Arduino sudah disertakan rangkaian pemrograman yang mudah dipakai, dan juga terintegrasi dengan perangkat lunak Arduino yang dipakai untuk membuat software.

Berikut ini diuraikan rangkaian programmer pada Arduino UNO dan Arduino Nano. Kedua jenis Arduino ini sangat mirip, menggunakan komponen yang sama, hanya bentuknya berbeda. Komponen paling penting adalah mikrokontroler ATMega328.

Pin pada ATMega328
Pin pada ATMega328

Berikut ini gambar konektor pada Arduino UNO:

Arduino UNO
Pin pada Arduino UNO

Konektor yang terkait pemrograman adalah USB-Plug  dan In Circuit Serial Programmer (ICSP). Seringnya yang dipakai untuk pemrograman adalah USB Plug, sedangkan ICSP jarang dipakai.

Arduino Nano
Arduino Nano

Pada Arduino Nano konektor untuk pemrograman adalah USB Mini dan ICSP (In Circuit Serial Programmer).

Konektor ICSP yang dipakai pada Arduino UNO dan Nano menggunakan header 3×2, dengan daftar pin sebagai berikut:

Konektor ICSP pada Arduino Nano dan UNO
Konektor ICSP pada Arduino Nano dan UNO

Pin yang dipakai adalah MISO, MOSI, SCK, Reset, GND dan +5V. Semua pin ini terhubung langsung ke ATMega328:

  • MISO (pin 18 / PB4)
  • MOSI (pin 17 / PB3)
  • SCK (pin 19 / PB5)
  • Reset (pin 1 / PC6)
  • GND (pin 8 & pin 22)
  • +5V (pin 7 / VCC)

Pin-pin ini sesuai dengan rangkaian dasar pemrograman ISP sebagai berikut:

Rangkaian ISP ATMega8535
Rangkaian In System Programming pada ATMega

Cara lain untuk pemrograman Arduino UNO dan Nano adalah menggunakan port USB. Port USB ini masuk ke suatu konverter USB ke Serial, kemudian pin serial TX dan RX dihubungka ke pin RX dan TX pada ATMega, jadi program dikirim melalui port serial pada ATMega. Selain itu pin DTR juga dipakai untuk melakukan reset pada ATMega.

Rangkaian USB to serial pada Arduino UNO dan Nano
Rangkaian USB to serial pada Arduino UNO dan Nano

Supaya program dapat dimasukkan melalui port serial, perlu ada software bootloader yang dimasukkan ke dalam flash memory di ATMega. Program bootloader ini belum ada pada ATMega yang keluaran pabrik, jadi bootloader ini perlu dimasukkan dulu ke dalam ATMega melalui programmer ISP (In System Programming) atau programmer paralel, seperti dijelaskan lebih lanjut di artikel “Programmer AVR“.

Bootloader ini memakai sebagian kecil memori flash, kurang lebih 512 byte, jadi memori aplikasi yang tersisa adalah 32 kilobyte dikurangi memori yang terpakai untuk bootloader. Diagram memori bootloader dan aplikasi dapat dilihat pada gambar berikut:

Memori bootloader di flash
Memori bootloader di flash

 

Menyambungkan Dot Matrix Display P10 Dengan Arduino

Menyambungkan Dot Matrix Display P10 Dengan Arduino gampang-gampang susah.

Dari Arduino ke display menggunakan kabel pita/flat (ribbon) yang dapat kena gangguan (noise)

Berikut contoh masalah yang terjadi kalau kabel terlalu panjang:

Dot Matrix Display dengan kabel panjang
Dot Matrix Display dengan kabel panjang

 

Solusi:

menggunakan jalur ground selang-seling di kabel pita

 

Pinout Display P10
Pinout Display P10

 

Referensi:

Mengukur tegangan pin 5V pada Arduino

Pada Arduino Nano dan Arduino UNO terdapat pin dengan nama ‘5V’. Menurut nama pin tersebut, seharusnya pin tersebut bertegangan 5 volt, namun ternyata tidak selalu demikian.

Berikut ini beberapa board Arduino yang akan diukur tegangan pin ‘5V’-nya.

Arduino UNO
Arduino UNO Original

Arduino Nano specimen 2
Arduino Nano Clone (KW) specimen 2

Arduino Nano specimen 1
Arduino Nano Clone (KW) specimen 1

Board Arduino Nano Clone mirip, namun nampak ada perbedaan kecil pada kedua board tersebut.

Berikut ini hasil pengukuran pin ‘5V’ pada 2 buah board Arduino Nano Clone (KW), dan 1 buah board Arduino UNO (ORI). Sumber tegangan menggunakan 2 macam, yaitu pertama melalui kabel USB, dan kedua melalui pin VIN pada board Arduino.

Board Output 5V dengan Power dari USB (Desktop PC) Output 5V dengan Power VIN dari adaptor 7,5 volt
Arduino Nano KW specimen 1 3.37 volt 4.97 volt
Arduino Nano KW specimen 2 4.6 volt 4.92 volt
Arduino UNO ORI 4.89 volt 4.98 volt

Kesimpulan

  • Tegangan supply dari USB menghasilkan tegangan pada pin ‘5V’ yang bervariasi
  • Tegangan supply dari pin VIN menghasilkan tegangan ‘5V’ yang lebih konsisten mendekati 5 volt.
  • Arduino UNO ORI memberikan hasil tegangan ‘5V’ lebih bagus untuk power dengan USB.

Penggerak Motor Untuk Slider Varavon Slidecam Lite 1000

Slidecam Lite 1000 adalah slider buatan Varavon sepanjang 1 meter.

Varavon Lite 1000
Varavon Lite 1000

Slider ini dapat digerakkan secara manual dengan menggesernya dengan tangan. Untuk beberapa aplikasi seperti time lapse, lebih nyaman kalau kita menggunakan penggerak motor yang dapat menggerakkan slider ini secara otomatis.

Varavon mengeluarkan produk motor untuk slider ini yaitu  Motorroid Slider Motorized Kit. Namun demikian harga kit motor ini lumayan mahal, 4x harga slidernya sendiri. Untuk itu akan dicoba membuat penggerak motor sendiri untuk slider tersebut.

 

 

Varavon Motorroid L1000
Varavon Motorroid L1000

Berikut ini foto penggerak slider

Motorized Slider
Motorized Slider

Perangkat penggerak dibagi menjadi 2 bagian:

  • Bagian mekanikal : meliputi motor, belt, pulley serta dudukannya
  • Bagian elektrikal: mikrokontroler Arduino , penggerak motor dan user interface.

Bagian mekanikal dibagi 3:

  • Dudukan motor : berisi dudukan motor di salah satu ujung
  • Dudukan tanpa motor: berisi dudukan pulley di ujung yang lain
  • Dudukan kamera dan belt: di bagian kereta yang berisi kamera

Berikut ini detail dari bagian dudukan motor

Tampak atas dudukan motor
Tampak atas dudukan motor

 

Tampak samping dudukan motor
Tampak samping dudukan motor

 

Tampak samping dudukan motor
Tampak samping dudukan motor dengan motor stepper

Bagian selanjutnya adalah dudukan pulley tanpa motor

Dudukan pulley tanpa motor
Dudukan pulley tanpa motor

Dudukan pulley tanpa motor
Dudukan pulley tanpa motor

Berikutnya adalah belt tipe 2GT. Pada belt ini dipasang kepingan aluminium untuk trigger microswitch, sehingga mikrokontroler Arduino dapat menghentikan motor jika kamera sudah sampai di salah satu ujung.

Pada belt juga dipasang tensioner untuk menjaga agar belt tetap kencang, tidak kendor.

Belt dan tensioner untuk belt
Belt dan tensioner untuk belt

Kepingan logam tipis dipakai sebagai sangkutan belt ke dudukan kamera. Ide menggunakan kepingan logam ini meniru dari Motorized Varavon.

Dudukan kamera
Dudukan kamera

Berikut ini saddle asli buatan Varavon. Nampaknya dibuat dari stainless steel yang dipunch dan ditekuk. Bagian-bagiannya dibuat berlubang agar ringan. Berhubung sulit untuk dicopy paste 100%, akhirnya dibuat saja modifikasinya.

Saddle asli Varavon
Saddle asli Varavon

 

Untuk penggerak motor menggunakan mikrokontroler Arduino Nano Clone.

Komponen tambahan yang diperlukan adalah L293D sebagai penguat arus untuk motor stepper. Power supply menggunakan 5 volt dari USB dan 12 volt dari power supply terpisah.

Pengendali Arduino Nano
Pengendali Arduino Nano

Proses Pembuatan

Berikut ini beberapa foto proses pembuatan motorized slider ini.

Proses pengeboran dengan holesaw 20 mm
Proses pengeboran dengan holesaw 20 mm

 

Lubang untuk motor stepper NEMA 17 selesai
Lubang untuk motor stepper NEMA 17 selesai

Dudukan Motor
Dudukan Motor

Pembuatan Dudukan Tanpa Motor

Dudukan tanpa motor
Dudukan tanpa motor

 

Proses pembuatan dudukan kamera dan belt

Komponen yang dipakai adalah aluminium tipis dari heatsink bekas, mur baut 3 mm dan mur baut 4 mm.

Sangkutan belt
Sangkutan belt

Dudukan kamera dibuat dari besi bekas casing power supply.

Casing power supply
Casing power supply

Slider dan plat besi
Slider dan plat besi

Komponen

Berikut ini beberapa komponen yang dipakai untuk pembuatan penggerak slider ini:

  • Belt 2GT
  • Pulley idle tanpa gigi
  • Pulley idle dengan gigi
  • Pulley dengan lubang 5 mm
  • Motor stepper Casun NEMA 17 https://elektrologi.iptek.web.id/motor-stepper-42shd0001-24/
  • Aluminium siku heatsink panjang 20 cm
  • Besi ex casing power supply
  • Aluminium ex heatsink tipis
  • Mur baut 5 mm
  • Mur baut 3 mm
  • Microswitch

Heatsink bekas
Heatsink bekas

Microswitch
Microswitch

Perangkat / Tools

Berikut ini beberapa perangkat yang dipakai untuk pembuatan penggerak slider ini:

  • Bor duduk
  • Mata bor 5 mm
  • Mata bor 3 mm
  • Tap drill 5 mm
  • Tap drill 3 mm
  • Mata bor holesaw 20 mm
  • Step drill 4 mm ~ 22 mm

 

Step Drill

Step drill dipakai untuk membuat lubang untuk motor stepper. Pertama-tama menggunakan bor holesaw 20mm, kemudian lubang diperlebar sampai 22 mm dengan step drill ini. Setelah itu masih perlu digerinda dengan Dremel supaya casing motor stepper yang berukuran 22 mm dapat masuk ke lubang tersebut.

Step Drill 4 mm ~ 22 mm
Step Drill 4 mm ~ 22 mm

Step Drill 4 mm ~ 22 mm
Step Drill 4 mm ~ 22 mm

Save

Save

Teknik Menggunakan MOSFET Sebagai Sakelar

Berikut ini beberapa artikel yang membahas mengenai cara menggunakan transistor jenis MOSFET sebagai sakelar.

Berikut ini contoh rangkaian MOSFET dari kumpulan artikel ‘Arduino Basic Connection’  (Sumber: http://www.pighixxx.com/)

MOSFET sebagai sakelar
MOSFET sebagai sakelar

 

Berikut ini contoh lain dari http://forum.arduino.cc/index.php?topic=154549.0, sumber gambar dari http://pighixxx.com/PNG/Small/105.png

Rangkaian pengendali MOSFET
Rangkaian pengendali MOSFET

 

Rangkaian berikut cukup minimalis. Hanya ditambahkan resistor dari Gate ke GND untuk jaga-jaga kalau input CONTROL masuk ke keadaan floating / high impedance. Sumber: Sparkfun MOSFET Control KIT / PDF

Rangkaian MOSFET dari Sparkfun
Rangkaian MOSFET dari Sparkfun

 

Gambar Infra Merah Arduino Nano

Berikut ini foto Arduino Nano clone dan hasil thermal imaging dari barang yang sama. Nampak di bagian atas ada 2 sumber panas yaitu prosesor  ATMega dan LED indikator yang selalu menyala.

Thermal Image Arduino Nano
Thermal Image Arduino Nano

Komponen yang aktif di bagian bawah adalah Bagian bawah USB interface CH340 . IC regulator 5 volt AMX117 tidak terlalu panas karena power diambil dari USB.

Arduino Nano V3 clone tampak bawah
Arduino Nano V3 clone tampak bawah

 

Arduino nano bagian bawah
Arduino nano bagian bawah dilihat secara thermal

Thermal imaging menggunakan FLiR Dev Kit dari Sparkfun dengan komponen utama Lepton® longwave infrared (LWIR).

Output dari LWIR ini sangat sederhana, bisa dibilang hanya informasi relatif mana yang panas mana yang dingin, tidak sampai ke temperatur detail di setiap pixel. Kalau mau sampai seperti itu mesti NDA dulu dengan Lepton plus minimum order 1000 unit 🙂

Mengukur Radiasi Dengan Geiger Counter Dan Arduino

Pada percobaan ini dilakukan pengukuran radiasi dari beberapa material radioaktif rendah dengan sensor geiger counter dan modul Arduino Nano sebagai penghitung radiasi.

Batang elektroda tungsten, sensor asap dan geiger counter,
Batang elektroda tungsten, sensor asap dan geiger counter,

Perangkat Keras

Perangkat yang digunakan adalah sebagai berikut

  • Arduino Nano v3 sebagai prosesor
  • Modul Geiger Counter sebagai sensor radiasi
  • Batang tungsten dengan campuran thorium sebagai sumber radiasi
  • Sensor asap dengan unsur americium sebagai sumber radiasi

Modul geiger counter memberikan sinyal active low setiap kali mendeteksi adanya peluruhan radioaktif. Sinyal active low ini dihubungkan ke pin 2 pada Arduino Nano untuk dihitung. Hasil perhitungan dikirimkan dengan port serial ke komputer untuk ditampilkan.

Aspek keamanan

  • Batang tungsten dengan campuran thorium memancarkan radiasi alpha, beta dan gamma dalam dosis rendah. Paparan langsung dalam waktu singkat tidak membahayakan. Bahaya muncul jika batang tersebut berubah menjadi serbuk, karena debu thorium berbahaya.
  • Americium pada sensor asap adalah sumber radiasi alpha, beta dan gamma lemah. Tidak membahayakan asal tidak tertelan

Berikut ini penjelasan bahaya Thorium yang dipakai pada campuran elektroda las tungsten (http://www.twi-global.com/technical-knowledge/faqs/health-and-safety-faqs/faq-the-use-of-thoriated-tungsten-electrodes/)

Thorium (Th) is slightly radioactive with a long half life and emits mainly alpha (α) particles, but occasionally some beta (β) and gamma (γ) radiation is emitted. Alpha particles cannot penetrate skin or even paper. However, they are harmful if released inside the digestive tract, or inside the lungs, where they act as a carcinogen.

Thorium oxide is, therefore, a low level radioactive material which may give rise to both a small external radiation hazard and an internal hazard from ingestion or inhalation. The external hazard estimated for a welder holding an electrode for a whole year is a very small fraction of the maximum permissible radiation dose and it is concluded that the external radiation hazard is likely to be negligible.

Berikut ini tentang bahaya dari Americium yang dipakai di sensor asap: (http://www.world-nuclear.org/info/Non-Power-Nuclear-Applications/Radioisotopes/Smoke-Detectors-and-Americium/)

The radiation dose to the occupants of a house from a domestic smoke detector is essentially zero, and in any case very much less than that from natural background radiation. The alpha particles are absorbed within the detector, while most of the gamma rays escape harmlessly. The small amount of radioactive material that is used in these detectors is not a health hazard and individual units can be disposed of in normal household wastee.

Even swallowing the radioactive material from a smoke detector would not lead to significant internal absorption of Am-241. Americium dioxide is insoluble, so will pass through the digestive tract without delivering a significant radiation dose. (Americium-241 is however a potentially dangerous isotope if it is taken into the body in soluble form. It decays by both alpha activity and gamma emissions and it would concentrate in the skeleton).

Perangkat Lunak

Perangkat lunak yang dipakai serupa dengan di percobaan Interupsi Dengan Arduino,  hanya saja pada percobaan ini pull up internal pada pin 2 dinonaktifkan karena sudah ada pull up pada modul geiger counter. Jika pull up pada internal Arduino diaktifkan, maka sinyal malah tidak bisa mencapai logika LOW.

// ide dari http://www.rhelectronics.net/store/radiation-detector-geiger-counter-diy-kit-second-edition.html
unsigned long counts; //variable for GM Tube events
unsigned long previousMillis; //variable for time measurement

void impulse() { // dipanggil setiap ada sinyal FALLING di pin 2
    counts++;
}

#define LOG_PERIOD 60000  // cetak tiap detik

void setup() { //setup subprocedure
    counts = 0;
    Serial.begin(9600);
    pinMode(2, INPUT);  
    attachInterrupt(digitalPinToInterrupt(2), impulse, FALLING); //define external interrupts
    Serial.println("Start counter");
}

void loop() { //main cycle
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis > LOG_PERIOD) {
        previousMillis = currentMillis;
        Serial.println(counts);
        counts = 0;
    }
}

Pengukuran Radiasi Latar Belakang

Pertama adalah pengukuran radiasi latar belakang, yaitu radiasi alamiah yang sudah ada secara alami. Angka yang tercantum adalah CPM (count per minute), yaitu total partikel radioaktif yang terukur setiap menit.

Pengukuran radiasi latar belakang
Pengukuran radiasi latar belakang

Hasil CPM: 21.5

Pengukuran Radiasi Sensor Asap

Berikutnya adalah pengukuran radiasi dari Americium pada sensor asap. Sensor asap ada yang memanfaatkan Americium sebagai sumber partikel alpha yang mengionisasi partikel asap di udara. Sensor ini dikemas dengan logam, sehingga partikel alpha dan beta tidak dapat keluar. Yang keluar hanya partikel gamma yang lemah.

Geiger counter dan sensor asap
Geiger counter dan sensor asap

Berikut hasil pengukuran CPM

Pengukuran radiasi Americium pada sensor asap
Pengukuran radiasi Americium pada sensor asap

CPM rata-rata adalah 108.

Pengukuran Radiasi Elektroda Tungsten

Berikutnya adalah pengukuran radiasi dari batang elektroda tungsten.

Pengukuran radiasi elektroda tungsten
Pengukuran radiasi elektroda tungsten-thorium

Pengukuran radiasi thorium tanpa pelindung
Pengukuran radiasi thorium tanpa pelindung

Hasil CPM rata-rata: 161.4

Pengukuran Radiasi Elektroda Tungsten Melalui Kertas

Pengukuran radiasi thorium dengan pelindung kertas
Pengukuran radiasi elektroda tungsten-thorium dengan pelindung kertas

 

Pengukuran radiasi thorium dengan pelindung kertas
Pengukuran radiasi thorium dengan pelindung kertas

Rata-rata CPM adalah 129

Pengukuran Radiasi Pisang Ambon

Pisang adalah salah satu makanan yang cukup radioaktif, bahkan sampai ada istilah ‘Banana Equivalent Dose’, yaitu dosis radiasi yang setara dengan radiasi dari buah pisang. [https://en.wikipedia.org/wiki/Banana_equivalent_dose]

 

Pengukuran radiasi pisang ambon
Pengukuran radiasi pisang ambon

Radiasi pisang ambon
Radiasi pisang ambon

CPM rata-rata: 25.43

Pengukuran Radiasi Cangkir Keramik

Konon kabarnya keramik putih cukup radioaktif. [Kompas: Sebaiknya Waspada Keramik Putih Rawan Radioaktif]

Pengukuran radiasi cangkir keramik
Pengukuran radiasi cangkir keramik

Radiasi cangkir keramik
Radiasi cangkir keramik

CPM rata-rata: 38.6

 

Pengukuran radiasi kacang tanah
Pengukuran radiasi kacang tanah

Pengukuran radiasi piring keramik putih
Pengukuran radiasi piring keramik putih

 

 

Pengukuran radiasi piring keramik berwarna
Pengukuran radiasi piring keramik berwarna

Rangkuman

Berikut ini kumpulan hasil pengujian beberapa material.

Material yang diuji
CPM
Radiasi Latar Belakang 21.5
Sensor asap (Americium) 108
Elektroda tungsten (Thorium) 161.4
Elektroda tungsten (Thorium) melalui kertas 129
Pisang ambon 25.43
Kacang tanah 23.17
Cangkir keramik besar 38.6
Cangkir keramik kecil 25.75
Mangkok keramik besar 37.5
Piring keramik putih 26.7
Piring keramik warna 28.965

Beberapa hal menarik:

  • Sensor asap dan elektroda tungsten-thorium sudah diduga bersifat cukup radioaktif
  • Radiasi elektroda tungsten berkurang ketika diberi pelindung kertas. Dapat disimpulkan bahwa ada radiasi alpha/beta yang terhalang oleh kertas sehingga total radiasi berkurang.
  • Pisang dan kacang tanah ada radiasi sedikit.
  • Barang-barang keramik memancarkan radiasi walaupun tidak terlalu banyak

Referensi

 

Interupsi Eksternal pada Arduino Nano ATmega328

Pada Arduino terdapat beberapa mekanisme input di antaranya:

  • input digital dengan fungsi digitalRead()
  • input analog dengan fungsi analogRead()
  • input data serial dengan class Serial, fungsinya di antaranya Serial.read()
  • input digital dengan interupsi melalui fungsi attachInterrupt()

Di antara mekanisme input tersebut, yang mudah dipakai adalah digitalRead() dan analogRead(). Pada tulisan ini dibahas contoh sederhana untuk memakai input interupsi.

Deskripsi perangkat keras:

  • Board prosesor menggunakan Arduino Nano v.3
  • Input dari sebuah switch push button, active low (dihubungkan ke GND)
  • Input dari switch dihubungkan ke pin 2
  • Jumlah penekanan switch dikirim dengan port serial
  • Power supply didapat dari USB

Catatan

  • Pada Arduino Nano hanya pin 2 dan pin 3 saja yang dapat dipakai untuk input interupsi. Pada program ini yang dipakai adalah pin 2.

Cara kerja perangkat lunak

  • Setiap kali switch ditekan, maka pin 2 akan menjadi low
  • Setiap kali pin 2 low, akan muncul interupsi
  • Interupsi menyebabkan fungsi impulse() dipanggil, yang akan menaikkan nilai variabel counter.
  • Pada main loop, isi dari variabel counter dikirim setiap 1 detik.

Berikut ini contoh software yang menggunakan interupsi untuk input.

// ide dari http://www.rhelectronics.net/store/radiation-detector-geiger-counter-diy-kit-second-edition.html
unsigned long counts; //variable for GM Tube events
unsigned long previousMillis; //variable for time measurement

void impulse() { // dipanggil setiap ada sinyal FALLING di pin 2
    counts++;
}

#define LOG_PERIOD 1000  // cetak tiap detik

void setup() { //setup subprocedure
    counts = 0;
    Serial.begin(9600);
    pinMode(2, INPUT);  // tidak perlu sebenarnya, untuk jaga-jaga saja.
    digitalWrite(2, HIGH); // mengaktifkan internal pull up resistor
    attachInterrupt(digitalPinToInterrupt(2), impulse, FALLING); //define external interrupts
    Serial.println("Start counter");
}

void loop() { //main cycle
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis > LOG_PERIOD) {
        previousMillis = currentMillis;
        Serial.println(counts);
        counts = 0;
    }
}

Pada referensi fungsi attachInterrupt() terdapat contoh program yang menggunakan interupsi, namun di situ belum menggunakan port serial u untuk mengirim data, sehingga hasil penekanan tombol susah diamati.

Berikut ini foto percobaan dengan Arduino Nano dan sebuah switch push button.

Arduino Nano yang dihubungkan ke sebuah switch push button
Arduino Nano yang dihubungkan ke sebuah switch push button

 

Switch push button
Switch push button

Berikut ini contoh data yang dikirim melalui port serial, berisi jumlah penekanan tombol.

Output serial dari program
Output serial dari program

Referensi

ACS-712 Dan Arduino Untuk Mengukur Arus Bolak Balik (AC)

Sensor arus ACS-712 menggunakan prinsip Hall Effect untuk mengukur arus. Sensor ini dapat mengukur arus searah (DC) maupun bolak-balik (AC). Berikut ini contoh pengukuran arus AC dengan menggunakan sensor tersebut.

Pengukuran yang dilakukan adalah mengukur arus AC yang mengalir pada bohlam lampu pijar 100 watt dengan tegangan 220 volt AC. Tegangan ini cukup berbahaya sehingga pengukuran harus dilakukan dengan hati-hati.

Pengukuran Daya Lampu

Meskipun disebutkan bahwa daya lampu adalah 100 watt, perlu dipastikan apakah lampu itu benar-benar 100 watt. Daya dan tegangan lampu diukur dengan Energy Meter TS-838. 

Pengujian lampu 100 watt
Pengujian lampu 100 watt

 

Pengukuran daya lampu
Pengukuran daya lampu

Hasil pengukuran adalah sebagai berikut:

  • daya lampu 85.5 watt
  • tegangan pada lampu 205 volt

Berapakah arus?

Rumus P = V x I (asumsi faktor daya = 1)

I = P / V = 85.5 / 205 = 0.417 ampere

Tegangan di rumah 205 volt, cukup jauh di bawah 220 volt yang seharusnya. Berapakah daya jika tegangan benar-benar 220 volt?

Rumus P=V*V/R

R=V*V/P = 205 * 205 / 85.5 = 491.5 ohm

Jadi resistansi lampu adalah 491.5 ohm

Rumus P=V*V/R

P = 220 * 220 / 491.5 = 98.5 watt

Jadi daya lampu jika tegangan 220 volt adalah 98.5 watt, cukup dekat dengan daya seharusnya yaitu 100 watt.

Pengukuran Arus Dengan ACS-712

Tahap selanjutnya adalah mengukur arus dengan sensor ACS-712.

Rangkaian pengukuran adalah sebagai berikut. Sensor ACS-712 dipasang seri dengan lampu 100 watt. Output analog dari sensor ACS-712 dimasukkan ke input analog 0 (AN0) pada Arduino Nano.

Rangkaian lampu
Rangkaian lampu

Karena sifat arus yang bolak-balik dengan frekuensi 50 Hz, maka menurut teori Nyquist, pengukuran arus mesti dilakukan sekurang-kurangnya dengan frekuensi 100 Hz. Pada percobaan ini pengukuran arus dilakukan setiap 2 ms, sehingga frekuensi pengukuran adalah 500 Hz, cukup jauh di atas batas Nyquist.

Berikut ini software Arduino yang dipakai:

void setup() {
    Serial.begin(115200);
}
unsigned long previousMillis = 2;
unsigned long interval = 1;

void loop() {
    unsigned long currentMillis >= millis();
    if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        int sensorValue = analogRead(A0);
        Serial.println(sensorValue);
    }
}

Data dari port serial direkam di komputer dengan menggunakan software CoolTerm (http://freeware.the-meiers.org/). Kecepatan baud rate  yang digunakan adalah 115200 supaya tidak ada data yang hilang.

Tampilan CoolTerm
Tampilan CoolTerm

Berikut ini grafik pengukuran arus.

Pengukuran arus
Grafik pengukuran arus

Sensor ACS-712 mengeluarkan tegangan 2.5 volt jika arus tidak ada (0 ampere). Maka pada grafik nampak angkanya naik turun di sekitar 512.

Yang penting dari data tersebut adalah nilai puncak dan minimal:

  • nilai maksimal : 522
  • nilai minimal : 505

Nilai rata-rata terukur: 513.5 , masih dekat dengan nilai rata-rata teoritis yaitu 512.

Dari perbandingan antara pengukuran dengan Energy Meter TS-838 dan sensor ACS-712 maka selanjutnya dapat dilakukan kalibrasi terhadap angka yang dihasilkan dari sensor.

Referensi

Kit 37 Sensor Untuk Arduino

Sensor kit ini dibeli di AliExpress. 1 paket terdiri dari 37 macam sensor. Manual kit ini tidak jelas, jadi perlu usaha ekstra untuk mencari manualnya di Internet.

Sensor kit Arduino
Sensor kit Arduino

 

No Nama versi TkkrLab Nama menurut Linksprite Foto yang ada Foto versi TkkrLab URL TkkrLab Foto versi linksprite
1 KY-001 Temperature sensor module  temperature-DS18B20-IMG_7881  01-400px-Arduino_KY-001_Temperature_sensor_module_Sku_135047_2 https://tkkrlab.nl/wiki/Arduino_KY-001_Temperature_sensor_module
 2 KY-002 Vibration switch module  vibration-IMG_7882  02-400px-KY002 https://tkkrlab.nl/wiki/Arduino_KY-002_Vibration_switch_module
 3 KY-003 Hall magnetic sensor module  03-400px-Hall_sensor https://tkkrlab.nl/wiki/Arduino_KY-003_Hall_magnetic_sensor_module
 4 KY-004 Key switch module  switch-IMG_7891  04-400px-Arduino_KY-004_Key_switch_module_Sku_135511 https://tkkrlab.nl/wiki/Arduino_KY-004_Key_switch_module
 5 KY-005 Infrared emission sensor module  05-400px-Arduino_KY-005_Infrared_emission_sensor_module_Sku_135040  https://tkkrlab.nl/wiki/Arduino_KY-005_Infrared_emission_sensor_module
 6 KY-006 Small passive buzzer module  06-400px-KY-006_Small_passive_buzzer_module_Sku_138322  https://tkkrlab.nl/wiki/Arduino_KY-006_Small_passive_buzzer_module
 7
 8  KY-008 Laser sensor module  laser-IMG_7865  08-400px-Arduino_KY-008_Laser_sensor_module_Sku_137473 https://tkkrlab.nl/wiki/Arduino_KY-008_Laser_sensor_module
 9  KY-009 3-color full-color LED SMD modules  led-3-color-IMG_7871  09-400px-Arduino_KY-009_3-color_full-color_LED_SMD_modules_Sku_135046 https://tkkrlab.nl/wiki/Arduino_KY-009_3-color_full-color_LED_SMD_modules
 10 KY-010 Optical broken module  opto-interrupt-IMG_7875  10-400px-Arduino_KY-010_Optical_broken_module_Sku_135035_2 https://tkkrlab.nl/wiki/Arduino_KY-010_Optical_broken_module
 11 KY-011 2-color LED module  

led-IMG_7878

 11-KY-011_2-color_LED_module_2_color_led https://tkkrlab.nl/wiki/Arduino_KY-011_2-color_LED_module
 12 KY-012 Active buzzer module  buzzer-IMG_7887  12-400px-Arduino_KY-012_Active_buzzer_module_Sku_135036_2 https://tkkrlab.nl/wiki/Arduino_KY-012_Active_buzzer_module
 13 KY-013 Temperature sensor module  temperature-IMG_7880  13-KY013 https://tkkrlab.nl/wiki/Arduino_KY-013_Temperature_sensor_module
 14
 15   KY-015 Temperature and humidity sensor module  humidity-IMG_7877  15-400px-Arduino_KY-015_Temperature_and_humidity_sensor_module_Sku_121350_1 https://tkkrlab.nl/wiki/Arduino_KY-015_Temperature_and_humidity_sensor_module
 16   KY-016 3-color LED module  KY016:RGB three colors LED module  led-3-color-IMG_7869  16-400px-Arduino_KY-016_3-color_LED_module_Sku_135041_2 https://tkkrlab.nl/wiki/Arduino_KY-016_3-color_LED_module
 17   KY-017 Mercury open optical module  KY017:Quicksilver Switch Module  mercury-IMG_7874  17-Arduino_KY-017_Mercury_open_optical_module https://tkkrlab.nl/wiki/Arduino_KY-017_Mercury_open_optical_module
 18 KY-018 Photo resistor module  ldr-IMG_7888  18-400px-Arduino_KY-018_Photo_resistor_module  https://tkkrlab.nl/wiki/Arduino_KY-018_Photo_resistor_module
19 KY-019 5V relay module  relay-IMG_7870  19-400px-Arduino_KY-019_5V_relay_module_Sku_121354_1 https://tkkrlab.nl/wiki/Arduino_KY-019_5V_relay_module
20 KY-020 Tilt switch module  tilt-switch-IMG_7892  20-400px-Arduino_KY-020_Tilt_switch_module_Sku_135528_1 https://tkkrlab.nl/wiki/Arduino_KY-020_Tilt_switch_module
21 KY-021 Mini magnetic reed modules  reed-mini-IMG_7889  21-400px-Ky021 https://tkkrlab.nl/wiki/Arduino_KY-021_Mini_magnetic_reed_modules
22   KY-022 Infrared sensor receiver module  infrared-receiver-IMG_7890  22-400px-Arduino_KY-022_Infrared_sensor_receiver_module_Sku_135045_2 https://tkkrlab.nl/wiki/Arduino_KY-022_Infrared_sensor_receiver_module
23   KY-023 XY-axis joystick module joystick-side-IMG_7893  23-400px-Arduino_KY-023_XY-axis_joystick_module_Sku_121340_3 https://tkkrlab.nl/wiki/Arduino_KY-023_XY-axis_joystick_module
24 KY-024 Linear magnetic Hall sensors  linear-magnetic-IMG_7895  24-400px-Arduino_KY-024_Linear_magnetic_Hall_sensors https://tkkrlab.nl/wiki/Arduino_KY-024_Linear_magnetic_Hall_sensors
25   KY-025 Reed module  reed-IMG_7899  25-400px-Arduino_KY-025_Reed_module https://tkkrlab.nl/wiki/Arduino_KY-025_Reed_module
26   KY-026 Flame sensor module  flame-IMG_7902  26-400px-Arduino_KY-026_Flame_sensor_module_Sku_135038_2 https://tkkrlab.nl/wiki/Arduino_KY-026_Flame_sensor_module
27 KY-027 Magic light cup module  KY027:Magic LED cup Module  magic-led-cup-IMG_7884  27-400px-Arduino_KY-027_Magic_light_cup_module_Sku_136115_1  https://tkkrlab.nl/wiki/Arduino_KY-027_Magic_light_cup_module
28 KY-028 Temperature sensor module  temperature-lm393-IMG_7901  28-400px-Arduino_KY-028_Temperature_sensor_module_Sku_140022_1 https://tkkrlab.nl/wiki/Arduino_KY-028_Temperature_sensor_module  28-300px-Ky028
29   KY-029 Yin Yi 2-color LED module 3MM  led-IMG_7879  29-400px-Arduino_KY-029_Yin_Yi_2-color_LED_module_3MM_Sku_135525_2  https://tkkrlab.nl/wiki/Arduino_KY-029_Yin_Yi_2-color_LED_module_3MM
30
31 KY-031 Sensor module KY031:Shock Sensor Module  shock-IMG_7886  31-400px-Arduino_KY-031_Sensor_module  https://tkkrlab.nl/wiki/Arduino_KY-031_Sensor_module
32   KY-032 Obstacle avoidance sensor module  obstacle-IMG_7897  32-400px-Arduino_KY-032_Obstacle_avoidance_sensor_module  https://tkkrlab.nl/wiki/Arduino_KY-032_Obstacle_avoidance_sensor_module
33 KY-033 Hunt sensor module KY033:Line follow Sensor Module  hunt-IMG_7896  33-400px-Arduino_KY-033_Hunt_sensor_module_Sku_118057_2  https://tkkrlab.nl/wiki/Arduino_KY-033_Hunt_sensor_module
34  KY-034 Automatic flashing colorful LED module  34-400px-KY-034_Automatic_flashing_colorful_LED_module  https://tkkrlab.nl/wiki/Arduino_KY-034_Automatic_flashing_colorful_LED_module
35   KY-035 Class Bihor magnetic sensor  35-400px-Arduino_KY-035_Class_Bihor_magnetic_sensor  https://tkkrlab.nl/wiki/Arduino_KY-035_Class_Bihor_magnetic_sensor  35-300px-Ky035
36 KY-036 Metal touch sensor module  touch-IMG_7829  036-400px-Arduino_KY-036_Metal_touch_sensor_module_Sku_121514_1 https://tkkrlab.nl/wiki/Arduino_KY-036_Metal_touch_sensor_module
37 KY-037 Sensitive microphone sensor module  microphone-IMG_7832 https://tkkrlab.nl/wiki/Arduino_KY-037_Sensitive_microphone_sensor_module
38 KY-038 Microphone sound sensor module microphone-IMG_7828 https://tkkrlab.nl/wiki/Arduino_KY-038_Microphone_sound_sensor_module
 39   KY-039 Detect the heartbeat module  heartbeat-IMG_7885  39-Arduino_KY-039_Detect_the_heartbeat_module  https://tkkrlab.nl/wiki/Arduino_KY-039_Detect_the_heartbeat_module
 40   KY-040 Rotary encoder module  rotary-IMG_7876  40-Arduino_KY-040_Rotary_encoder_module  https://tkkrlab.nl/wiki/Arduino_KY-040_Rotary_encoder_module

KY-001 Temperature sensor module

https://tkkrlab.nl/wiki/Arduino_KY-001_Temperature_sensor_module

 

 

Sumber:

 

Upload File HEX ke Arduino

Pada umumnya Arduino diprogram dengan menggunakan software compiler Arduino. Namun kadang-kadang kita ingin memasukkan file HEX yang dibuat dengan software lain, misal WINAVR atau CodeVision. Untuk itu kita dapat menggunakan beberapa teknik berikut ini:

Windows:

Xloader
Xloader

Mac OS

HexUploader
HexUploader untuk Mac OS

 

Linux

Referensi:

  • https://github.com/grbl/grbl/wiki/Flashing-Grbl-to-an-Arduino

Cara Merusak Arduino

Arduino nano di latar depan dengan Arduino Uno di latar belakang
Arduino Nano 3.0 di latar depan dengan Arduino Uno di latar belakang

Berikut ini 10 cara merusak Arduino

  1. Hubung singkat antara pin I/O ke ground
  2. Hubung singkat antara sesama pin I/O
  3. Menghubungkan tegangan lebih dari 5 volt ke pin I/O
  4. Memasukkan tegangan terbalik ke konektor Power IN
  5. Memasukkan tegangan melebihi 5 volt ke pin 5V
  6. Memasukkan tegangan melebihi 3.3 volt ke pin 3.3V
  7. Hubung singkat pin 5V ke ground
  8. Menaruh beban pada pin VIN dan memberi power pada pin 5V
  9. Memberi tegangan melebihi 13 volt pada pin RESET
  10. Melampaui batas arus mikrokontroler. Total arus harus < 200 mA

Bonus cara merusak Arduino

  1. Tegangan POWER IN melebihi 20 volt
  2. Menghubungkan tegangan negatif ke pin I/O manapun
  3. Arus pin I/O melebihi 40 mA
  4. Mengubah rangkaian tanpa mematikan dulu semua power
  5. Memasang beban induktif tanpa dioda pengaman
  6. Temperatur melebihi 150 derajat Celcius
  7. Temperatur lebih rendah dari -65 derajat Celcius
  8. Menggunakan tegangan referensi DC internal namun juga menghubungkan pin AREF ke sumber tegangan lain.

Penjelasan

Penjelasan ini fokusnya Arduino UNO dan Arduino Nano 3.0 yang menggunakan ATMega328. Untuk Arduino tipe lain dapat disesuaikan dengan melihat datasheet ATMega yang dipakai. Arduino Nano dan UNO menggunakan VCC 5 volt, sedangkan ada Arduino tipe lain yang menggunakan VCC 3.3 volt, sehingga batasan tegangannya akan berbeda pula.

ATMega UNO menggunakan ATMega328 sebagai prosesornya. Batas-batas fisik prosesor tersebut dapat dilihat di datasheet ATMega328 yang tersedia di situs Atmel.

Pada kebanyakan datasheet, batas-batas fisik komponen dapat dilihat di bagian berjudul “Electrical Characteristics – Absolute Maximum Ratings”. Untuk ATMega328, batasnya adalah sebagai berikut:

ATMega328 Absolute Maximum Ratings
ATMega328 Absolute Maximum Ratings

Jadi dari table itu dapat disimpulkan beberapa cara merusak sebagai berikut:

  • Temperatur kerja di bawah -55 Celcius atau di atas +125 Celcius
  • Temperatur penyimpanan di bawah -65 Celcius atau di atas +150 Celcius
  • Tegangan pin selain RESET di atas VCC+0.5 volt. Arduino UNO dan Nano menggunakan VCC 5 volt, sehingga tegangan input di atas 5.5 volt dapat merusak
  • Tegangan pin I/O di bawah – 0.5 volt
  • Tegangan pin reset di bawah -0.5 volt
  • Tegangan pin reset di atas 13 volt
  • Tegangan VCC di atas 6.0 volt
  • Arus pin I/O melebihi 40 mA
  • Arus pada pin VCC melebihi 200 mA
  • Arus pada pin GND melebihi 200 mA

Penjelasan detail dari 10 perkara yang merusak Arduino adalah sebagai berikut:

(1) Hubung singkat I/O dan GND

Menghubungkan pin I/O ke GND dapat menyebabkan arus I/O melebihi 40 mA jika pin I/O dijadikan output dengan nilai output HIGH.

(2) Hubung singkat antara sesama pin I/O

Jika dua pin I/O yang sama-sama menjadi output dihubungkan, maka dapat terjadi satu pin I/O sedang HIGH, dan yang lainnya LOW. Pada keadaan ini maka arus akan mengalir dari pin yang sedang HIGH ke pin yang LOW, tanpa adanya pembatasan arus, sehingga arus dapat melebihi 40 mA.

(3) Menghubungkan tegangan lebih dari 5 volt ke pin I/O

Tepatnya sih 5.5 volt, bukan 5 volt. Setiap pin I/O hanya dapat diberi tegangan maksimal VCC+0.5 volt, sedangkan VCC pada Arduino adalah 5 volt. Jika I/OI diberi tegangan melebihi 5.5 volt maka dapat merusak.

(4) Memasukkan tegangan terbalik ke konektor Power IN

Maksudnya adalah memberikan tegangan yang lebih rendah dari GND ke pin POWER IN. Akibat dari hal ini adalah mikrokotroler ATMega328 akan mendapatkan tegangan negatif pada pin VCC, padahal tegangan pada pin VCC minimal adalah GND-0.5 volt. Akibatnya mikrokontroler akan rusak.

(5) Memasukkan tegangan melebihi 5 volt ke pin 5V

Tepatnya sih 6 volt, bukan 5 volt. Tegangan VCC pada ATMega328 maksimal adalah 6 volt. Pin 5V langsung terhubung ke pin VCC pada ATMega, sehingga kalau pin ini diberi tegangan lebih dari 6 volt maka ATMega dapat rusak.

(6) Memasukkan tegangan melebihi 3.3 volt ke pin 3.3V

Pin 3.3 V terhubung ke perangkat yang memerlukan tegangan 3.3 volt. Jika tegangan di pin ini melebihi 3.3 volt, maka perangkat-perangkat tersebut dapat rusak. Jika tegangan di pin ini melebihi 9 volt, maka tegangan pada jalur 5 volt juga dapat ikut naik sehingga dapat merusak mikrokontroler ATmega328 yang hanya tahan diberi maksimal 6 volt.

(7) Hubung singkat pin VIN ke ground

Jika pin VIN dihubung singkat ke GND dan ada tegangan masuk pada konektor POWER IN, maka akan ada arus hubung singkat yang cukup besar mengalir melalui konektor POWER IN. Arus ini dapat merusak dioda pengaman dan melelehkan jalur tembaga pada PCB.

(8) Menaruh beban pada pin VIN dan memberi power pada pin 5V

Jika dibuat seperti ini, maka akan ada arus mengalir dari pin 5V melalui regulator 5 volt (NCP1117 pada Arduino UNO dan UA78M05 pada Arduino Nano), artinya arahnya terbalik. Maka regulator 5 volt akan rusak.

(9) Memberi tegangan melebihi 13 volt pada pin RESET

Pin RESET pada ATMega328 hanya dapat menerima tegangan maksimal 13 volt, jika lebih dari itu maka ATMega dapat rusak. Pin ini dapat menerima tegangan 12 volt untuk keperluan pemrograman dengan ISP (In System Programming).

(10) Melampaui batas arus mikrokontroler. Total arus harus < 200 mA

Total arus pada pin VCC maupun GND di ATMega328 maksimal adalah 200 mA. Jika melebihi maka ATMega328 akan rusak.

Penjelasan Bonus

(11) Tegangan POWER IN melebihi 20 volt (Arduino UNO) atau 25 volt (Arduino Nano)

Pin POWER IN dihubungkan ke regulator 5 volt (NCP1117 pada Arduino UNO dan UA78M05 pada Arduino Nano). NCP1117 maksimal menerima tegangan input 20 volt. UA7805 maksimal menerima input 25 volt. Jika tegangan POWER IN melebihi batas ini, maka regulator 5 volt tersebut akan rusak.

Batas tegangan maksimum pada NCP1117 dapat dibaca pada datasheetnya sebagai berikut:

Tegangan maksimum pada NCP1117
Tegangan maksimum pada NCP1117

Batas tegangan maksimum pada UA78M05 dapat dibaca pada datasheetnya sebagai berikut:

Tegangan maksimal pada UA7805
Tegangan maksimal pada UA7805

(12) Menghubungkan tegangan negatif ke pin I/O manapun

Tegangan pada pin I/O tidak boleh kurang dari GND – 0.5 , sehingga jika tegangan pin I/O kurang dari -0.5 volt maka ATMega328 dapat rusak

(13) Arus pin I/O melebihi 40 mA

Arus beban pada pin I/O tidak boleh melebihi 40 mA. Kelebihan arus ini dapat terjadi karena hubung singkat dengan GND, hubung singkat dengan port I/O lain, ataupun karena kesalahan menghitung nilai resistor pembatas arus.

(14) Mengubah rangkaian tanpa mematikan dulu semua power

Perubahan rangkaian tanpa mematikan power dapat menyebabkan arus atau tegangan lebih tanpa sengaja, yang dapat merusak ATMega328. Untuk itu matikan semua power (POWER IN, 5 volt dan USB) sebelum mengubah isi rangkaian terutama di breadboard.

(15) Memasang beban induktif tanpa dioda pengaman

Semua beban induktif harus diberi dioda pengaman, lebih baik lagi jika beban induktif itu tidak langsung dikendalikan oleh ATMega328, melainkan diperkuat dulu dengan transistor BJT ataupun MOSFET.

Berikut ini adalah contoh pemasangan dioda pengaman pada beban relay. Ada 2 konfigurasi, yaitu konfiguras active HIGH dan konfigurasi active LOW.

Arduino dengan beban relay
Arduino dengan beban relay langsung

Selain dioda pengaman, mesti dicek dulu keperluan arus pada relay tersebut, karena ATMega pada Arduino hanya sanggup memberikan arus maksimal 40 mA pada setiap pin I/O nya. Jika perlu arus agak besar untuk relay, lebih baik menggunakan rangkaian transistor sebagai penguat seperti di bawah ini.

Rangkaian Arduino dengan relay melalui transistor
Rangkaian Arduino dengan relay melalui transistor

Macam-macam rangkaian relay dapat dilihat di Artikel Rangkaian Penggerak Relay

(16) Temperatur melebihi 150 derajat Celcius

Angka ini tercantum di “Absolute Maximum Ratings”, jadi cukup jelas. Kemungkinan jika temperatur di atas 150 derajat, dapat timbul reaksi kimia yang merusak, atau pemuaian pada material yang juga dapat merusak.

(17) Temperatur lebih rendah dari -65 derajat Celcius

Angka ini tercantum di “Absolute Maximum Ratings”, jadi cukup jelas. Kemungkinan jika temperatur di atas 150 derajat, dapat penyusutan pada material silikon yang dapat merusak.

Referensi

  • 10 Ways to Destroy An Arduino http://www.ruggedcircuits.com/10-ways-to-destroy-an-arduino/
  • What are the most common ways to fry an Arduino http://electronics.stackexchange.com/questions/67149/what-are-the-most-common-ways-to-fry-an-arduino
  • Data Arduino UNO https://www.arduino.cc/en/Main/arduinoBoardUno
  • Data Arduino Nano 3.0 https://www.arduino.cc/en/Main/ArduinoBoardNano
  • Datasheet ATMega328 http://www.atmel.com/devices/atmega328.aspx
  • Datasheet regulator NCP1117 dari ON Semiconductor http://www.onsemi.com/pub_link/Collateral/NCP1117-D.PDF
  • Datasheet regulator UA78M05 dari Texas Instruments http://www.ti.com/product/ua78m05
  • Gambar rangkaian dibuat dengan Fritzing http://fritzing.org/home/