Showing posts with label Mikrokontroller. Show all posts
Showing posts with label Mikrokontroller. Show all posts
Monday, February 25, 2019
Apa Itu ADC (Analog to Digital Converter) Pada Arduino?
February 25, 2019
ADC (Analog to Digital Converter) adalah suatu
perangkat elektronika yang mengubah analog menjadi data digital.
Analog bersifat continous, sementara
digital berifat diskrit. Pertanyaannya muncul yaitu mengapa perlu adanya sebuah
ADC bila kita ingin memasukan suatu input ke dalam mikrokontroller.
Jawabannya, mikrokontroller adalah
sebuah perangkat yang hanya dapat mengolah data digital atau diskrit, Hanya nol
dan satu. Sehingga untuk mendapatkan sebuah data non digital yaitu data analog
perlu sebuah ADC.
Contoh input analog adalah potensiometer
dan sensor. Karena, data yang didapatkan tidak bernilai satu dan nol namun
dapat berubah-ubah sesuai waktu.
Agar sebuah data analog dapat dibaca oleh
mikrokontroller perlu sebuah proses yang terjadi dalam ADC adalah:
·
Pen-cuplik-an
·
Peng-kuantisasi-an
·
Peng-kode-an
Proses ADC tersebut dapat dinyatakan
dalam persamaan:
Data_ADC = (Vin/Vref) x Maksimal_Data
Contoh dalam penggunaannya yang umum adalah pembacaan sensor LM35. Diketahui data ADC yang terbaca pada analog input adalah 300. (bila pada arduino
dapat dibaca pada serial monitor)
Sementara Vref adalah tegangan masukan pada Vcc pada LM35. Kenapa 1 Volt ? Karena
dianggap pada range pengukuran kenaikan 1 derajat adalah 10 mV. Untuk pengukuran
range 1-100 derajat maka antara range maksimal 1000 mV alias 1 Volt.
Oleh karena itu biasanya perlu sebuah sinyal conditioning yang mengubah
dari 10mV menjadi 1 Volt. Agar range pengukuran dapat berkirsar antara 1-5 volt
sesuai tegangan kerja arduino.
Hal tersebut dilakukan agar pengukuran menjadi lebih presisi. Bisa saja
maksimal 1 volt untuk tegangan referensinya. Namun, hal tersbut dapat
menyebabkan pengukuran yang kurang tepat.
Maksimal data yang digunakan adalah 1023 adalah jumlah maksimal bit pada arduino
yaitu 10 bit. Kita juga dapat menggunakan ADC eksternal dengan jumlah bit yang
lebih besar.
Jumlah bit yang lebih besar dapat membuat pengukuran akan menjadi lebih
presisi karena data yang dihitung tercacah lebih detail.
Data_ADC = (Vin/Vref) x
Maksimal_Data
250 = (Vin/1) x 1023
Vin = (250 x 1 / 1023) =
0,243 Volt
Langkah berikutnya
adalah menentukan suhu sesungguhnya yang dideteksi
oleh LM35. Untuk melakukan itu perlu diperhatikan sensitivitas dari LM35. Dari
datasheet-nya, LM35 memiliki sensitivitas 10 mV/oC. Sehingga suhu yang terdeteksi oleh LM35 (T):
T
= (Vin/Sensitivitas) = (0,293/0,01) = 24,43 oC
Langkah tersebut dapat digunakan juga untuk pengukuran sensor lain dengan
melihat data datasheet mulai dari tegangan keluaran sensor dan sensitifitas
sensor.
Thursday, February 7, 2019
Mengukur Suhu dengan Thermocouple dan Modul MAX6675
February 07, 2019
Kali ini, kita akan belajar membuat alat monitoring suhu menggunakan sensor Thermocouple tipe k dan Arduino.
Alat ini menggunakan modul MAX6675 yang digunakan untuk cold & hot juncion compensation. Selain itu terdapat penguat tegangan output dari sensor Thermocouple.
Modul MAX6675 ini mengubah tegangan menjadi data digital dengan konversi ADC sebesar 12bit.
Uniknya, data yang dikirim dari MAX6675 adalah berupa data digital dengan komunikasi mirip dengan komunikasi SPI.
Dengan begitu, perlu adanya konversi data digital yang ditangkap oleh Arduino melalui komunikasi SPI. Tapi, dengan adanya library max6675.h tidak perlu lagi repot untuk memikirkan komunikasi dan konversinya.
![]() |
| Rangkaian MAX6675 dengan Arduino |
Program
PIN SO pada Modul MAX6675 disambungkan ke pin 8 arduino sesuai dengan
inisialisasi awal program.
PIN CS pada Modul MAX6675 disambungkan ke pin 9 arduino sesuai dengan
inisialisasi awal program.
PIN CLK pada Modul MAX6675 disambungkan ke pin 10 arduino sesuai dengan
inisialisasi awal program.
Sementara untuk PIN VCC disambungkan ke 5V pada arduino dan GND disambung
ke pin GND Arduino
Tuesday, February 5, 2019
Interrupt Pada Arduino (Aplikasi Program Running LED)
February 05, 2019
Fungsi Interrupt pada Arduino adalah suatu fungsi untuk memicu program lain secara eksternal atau internal.
Singkatnya, dengan kamu memberi masukan atau sebuah keluaran, kamu bisa memproses program lain.
Secara sederhana arduino sudah menyediakan fungsi khusus untuk penggunaan interupt yaitu dengan attachInterrupt (interrupt, function, mode) .
Khusus untuk Arduino Uno, hanya memiliki 2 pin interrupt yaitu INT0 pada pin 2 digital dan INT1 pada pin 3 digital.
Pada bagian fungsi bisa ditulis program fungsi yang dimaksud. Contoh untuk program fungsi void variasi() .
Mode Penggunaan Interrupt
Mode LOW. Pada mode ini interrupt akan diaktifkan saat pin int memiliki logika low dan akan aktif selama masih berlogika low. Artinya bila tidak ada trigger awal, intterupt dapat bekerja menjalankan program fungsi.
Mode CHANGE. Interrupt akan diaktifkan saat terjadi perubahan logika baik dari low ke high ataupun high ke low.
Mode RISING. Pengaktifan interrupt akan terjadi jika pin mengalami perubahan logika dari low ke high. Bedanya dengan CHANGE, ketika dari high ke low interrupt tidak akan aktif.
Mode FALLING. Perubahan logika pada pin int dari high ke low akan mengaktifkan fungsi interrupt. Ini menjadi kebalikan dari metode RISING.
Rangkaian Interrupt
Rangkaian Interrupt
| Rangkaian Intterupt Running LED |
Pada program ini, inisialisasi input dan output pada void setup. Jelas sesuai dengan gambar proteus.
Pada void setup juga terdapat instruksi attachInterrupt (digitalPinToInterrupt(2) , variasi, RISING); untuk inisialisasi pemilihan pin digital 2, fungsi program dan mode interrupt.
Pada void loop terdapat fungsi switch case untuk memanggil program yang sesuai kanankiri, kirikanan, dan tengahkanankiri.
Namun bedanya ketika terdapat interrupt diaktifkan saat menekan tombol di pin digital 2 akan langsung mengalihkan program ke fungsi void variasi.
Yang selanjutnya mengalihkan program secara langsung dari yang awalnya kanankiri langsung loncat ke program kirikanan. Tanpa perlu menunggu program running led selesai dari kanan ke kiri.
Itu penjelasan singkat mengenai interrupt, aplikasinya banyak banget. Bisa digunakan untuk kontrol motor yang memerlukan banyak trigger yang dapat juga diaplikasikan dengan rangkaian elektronika daya.
Selamat mencoba!
Thursday, January 31, 2019
Millis Pada Arduino, Contoh Program dan Aplikasinya
January 31, 2019
Millis adalah sebuah fungsi pada sintak arduino yang berguna menjalankan waktu secara independen. Pasti ada yang bingung kan bedanya millis sama delay?
Bedanya adalah millis dapat menjalankan program dengan multi tasking tanpa menghentikan kerja keseluruhan arduino. Berbeda dengan delay, fungsi delay membuat kerja arduino berhenti.
Dengan delay, arduino dapat menjadi lebih menghitung. Karena saat arduino menjalankan fungsi delay, arduino tidak dapat mengerjakan kerja program lain.
Aplikasinya dapat digunakan dalam pengendalian motor, lampu led, dan masih banyak lagi Rangkaian
| Rangakaian Miliis pada Pin arduino 8 |
Aplikasi Millis?
Berikut adalah program untuk menyalakan dan mematikan LED pada pin 8 dengan waktu tunda satu detik menggunakan millis.
Diawal terdapat deklarasi yaitu variable interval,
previosMillis, currentMillis, dan millis(); saat menyimpan data millis digunakan type
variable unsigned long. Kenapa unsigned long karena datanya panjang.
Pertama, currentMillis menghitung waktu secara independent dari millis(), kemudian adalah program terus berputar. Kemudian akan terpanggil dan melakukan check apakah currentMillis – previousMillis >= 1000?. Saat itu previousMillis masih bernilai 0 karena inisialisasi awal.
jika tidak maka variable previousMillis akan mengambil waktu lagi dari millis. Hal tersebut dilakukan millis sampe nilai mendekati 1000.
Setelah currentMillis – previousMillis >= 1000 sudah terpenuhi, LED akan dirubah menjadi perintah menyalakan dan mematikan sesuai dengan program yang dibuat.
Itu berdasarkan perintah if. Yaitu, if ((unsigned long)(currentMillis - previousMillis) >= interval) lalu masuk ke bagian if.
ledState = !ledState; digunakan untuk melihat status false atau true. Untuk menghidupkan perintah menyalakan dan mematikan secara bergantian sesuai dengan perhitungan millis();
Untuk perintah terakhir adalah previousMillis = millis(); fungsinya untuk mengembalikan millis untuk dijadikan nilai previousMillis yang selanjutnya digunakan untuk perhitungan if.
Itu dilakukan secara terus menerus looping hingga terpenuhi nilai 1000, maka previousMillis akan kembali ke 0 dan mengulangi perhitungan dari awal.
Tuesday, January 29, 2019
Lampu LED Berjalan (Running LED) Menggunakan Arduino Dengan WHILE
January 29, 2019
Pada postingan ini kita akan mencoba membuat Lampu LED Berjalan (Running LED) Menggunakan Arduino, namun yang membedakan adalah penggunaan algoritma WHILE.
Kelebihannya, program yang dibuat akan jauh lebih sederhana. Berbeda dengan program konvensional.
Jika menggunakan program konvensional, Bayangkan saja jika terdapat 13 LED, kita harus membuat program satu persatu dengan perintah digital write high dan low beserta delaynya.
Berbeda dengan dengan WHILE, penulisannya akan lebih singkat dan sangat sederhana.
Sebenarnya hampir mirip dengan FOR, Cuma hal yang membedakan adalah inisialisasi awal variablenya. Oke langsung saja kita ulas bersama.
Sebenarnya hampir mirip dengan FOR, Cuma hal yang membedakan adalah inisialisasi awal variablenya. Oke langsung saja kita ulas bersama.
Rangkaian Running LED
Alat dan Bahan
- 5 Buah LED
- 5 Buah Resistor 330Ω Ohm
- Kabel Jumper Secukupnya
- 1 Buah Protoboard
- 1 Buah Arduino
Sketch Program
Berikut adalah program dari Lampu LED Berjalan (Running LED) Menggunakan Arduino dengan WHILE.
Kita menggunakan Pin 5, 6, 7, 8, dan 9 sebagai keluaran LED.
Int i; adalah pendeklarasian variable global. Maksudnya, Variable itu dapat digunakan sebagai pengenalan "i" berupa Integer bisa digunakan diseluruh bagian program.
Void Loop berguna sebagai program utama. Jika dalam sebuah film adalah jalan cerita utamanya. Disana, terdapat WHILE yang digunakan sebagai metode yang digunakan
Perbedaannya jika WHILE variable "i" perlu diberi nilai awal yaitu i=5; selanjutnya masuk ke fungsi WHILE. Selanjutnya While (i<=9) akan masuk kedalam program digitalwrite (i,High) untuk menyalakan LED . i menunjukan pin setiap perulangan. Setelah itu delay selama 1 detik. Selanjutnya, digitalwrite (i,Low) untuk mematikan LED.
Setelah program tersebut ditambahkan i++ untuk menambah perulangan. Ketika "i" sudah lebih dari 9 maka program didalam while tidak dapat dieksekusi.
Program langsung mengarahkan ke return 0; . Sehingga, "i" kembali ke 0 dan memulai kembali dari awal. Begitupun seterusnya.
Berbeda dengan FOR, pendeklarasian langsung diawal. For (i=5;i<=9;i++) terlihat pendeklarasian berada diawal.
Sebenarnya secara prinsip kerja sama. Maksudnya, keduanya bisa digunakan untuk perulangan untuk n kali. Contoh ingin melakukan perulangan 5 kali seperti pada program LED berjalan diatas.
Lampu LED Berjalan (Running LED) Menggunakan Arduino Dengan FOR
January 29, 2019
Pada postingan ini kita akan mencoba membuat Project Lampu LED Berjalan (Running LED) Menggunakan Arduino, tapi yang membedakan adalah penggunaan algoritma FOR.
Kelebihannya, program yang dibuat akan lebih sederhana. Berbeda dengan program konvensional.
Jika menggunakan program konvensional, Bayangkan saja jika terdapat 13 LED, kita harus membuat program satu persatu dengan perintah digital write high dan low beserta delaynya. Berbeda dengan dengan FOR, penulisannya akan lebih singkat dan sangat sederhana.
Well, pasti udah tidak sabar untuk belajar kan? langsung saja kita bahas programnya. Namun sebelum itu, kita perlu tahu alat dan bahan yang digunakan.
Rangkaian Running LED
| Gambar 1. Rangkaian Running LED |
Alat dan Bahan
- 5 Buah LED
- 5 Buah Resistor 330Ω Ohm
- Kabel Jumper Secukupnya
- 1 Buah Protoboard
- 1 Buah Arduino
Sketch Program
Berikut adalah program dari Lampu LED Berjalan (Running LED) Menggunakan Arduino dengan FOR.
Kita menggunakan Pin 5, 6, 7, 8, dan 9 sebagai keluaran LED.
Int i; adalah pendeklarasian variable global. Maksudnya, Variable itu dapat digunakan sebagai pengenalan "i" berupa Integer bisa digunakan diseluruh bagian program.
Void Loop berguna sebagai program utama. Jika dalam sebuah film adalah jalan cerita utamanya. Disana, terdapat FOR yang digunakan sebagai metode yang digunakan
FOR (i=5) maksudnya adalah pendeklarasian awal output LED di pin 5 . sementara i<=9 adalah pembatasan hingga LED pin 9. Sementara i++ digunakan untuk menambah setiap perulangan.
"i" akan masuk pada program digitalwrite (i,High) untuk menyalakan LED . "i" menunjukan pin setiap perulangan. Setelah itu delay selama 1 detik. Selanjutnya digitalwrite (i,Low) untuk mematikan LED.
Pada perulangan pertama dimulai dari pin 5 dilanjut ke pin 6 hingga berakhir di pin 9. Saat sudah mencapai pin 9. Program akan melanjutkan ke return 0. Sehingga "i" akan bernilai 0 kembali.
Saat sudah menjadi 0, program akan mengulang kembali ke pin 5. Kemudian begitulah seterusnya.
Subscribe to:
Posts (Atom)

