Apakah ada pin analog output di Arduino?

Apakah ada pin analog output di Arduino? Ada Arduino yang memiliki analog output sesungguhnya, ada yang tidak. Analog output yang sesungguhnya menggunakan DAC (Digital to Analog Converter). Pada Arduino yang tidak ada DAC, analog output dapat ditiru menggunakan output PWM (Pulse Width Modulation) / Modulasi Lebar Pulsa.

Apa bedanya sinyal output dari DAC dan dari PWM? Sinyal DAC berupa tegangan tertentu yang dapat diatur tegangannya sesuai dengan parameter yang diberikan. Sinyal PWM berupa tegangan HIGH (biasanya 5 volt) dan LOW (0 volt), dengan perbandingan antara HIGH dan LOW mengikuti suatu perbandingan tertentu.

Berikut ini contoh sinyal PWM

Arduino yang memiliki DAC adalah di antaranya sebagai berikut:

Arduino yang tidak memiliki DAC di antaranya sebagai berikut:

  • Arduino Nano dengan prosessor ATmega328P
  • Arduino UNO dengan prosessor ATmega328P
  • Arduino UNO mini dengan prosessor ATmega328P
  • Arduino Mega 2560 Rev3
  • Arduino UNO WiFI Rev2 dengan prosesor ATmega4809 
  • Arduino Micro dengan prosesor ATmega32U4
  • Arduino Leonardo dengan prosesor ATmega32U4

Berikut ini Arduino Zero yang memiliki output analog dengan DAC:

Referensi

Arduino SIM

Apakah itu Arduino SIM?

Arduino SIM adalah kartu SIM GSM dari Arduino yang menawarkan konektivitas global di seluruh dunia. Arduino SIM cocok dipakai untuk perangkat yang memerlukan akses ke Arduino IoT Cloud di tempat-tempat yang tidak memiliki akses IoT lain seperti Wifi

Arduino SIM
Arduino SIM

Arduino SIM kompatibel dengan produk MKR GSM 1400 dari Arduino. Pada papan Arduino ini terdapat konektor untuk memasukkan SIM card.

Arduino MKR GSM 1400
Arduino MKR GSM 1400

 

Arduino IoT Cloud

Arduino SIM memungkinkan akses ke Arduino IoT Cloud. Pada saat ini papan Arduino yang mendukung Arduino SIM adalah  MKR GSM 1400

Berikut ini foto perangkat pengukur tekanan menggunakan Arduino MKR GSM 1400 yang terhubung ke Arduino Cloud dan Google Sheets

IoT Pressure Sensor: MKR GSM + Arduino Cloud + Google Sheets
IoT Pressure Sensor

Dataplan

SIM Arduino hanya mengirimkan data ke Arduino IoT Cloud. Dengan cara ini, kami memberi Anda saluran komunikasi yang aman dari perangkat ke dasbor. Setelah data mencapai Arduino IoT Cloud, data dapat dijembatani ke platform dan layanan lain melalui webhook atau Arduino IoT API. Setelah aktivasi kartu SIM, Anda mendapatkan 10MB data gratis hingga 90 hari (5MB per bulan seharga $1,50 USD setelahnya). Fitur utama paket ini adalah:

  • Konektivitas seluler langsung ke Arduino IoT Cloud
  • HANYA kompatibel dengan Arduino IoT Cloud
  • Data dapat dijembatani dari Arduino IoT Cloud ke platform dan layanan lain menggunakan webhook atau Arduino IoT API
  • Profil roaming global – satu paket data sederhana beroperasi di lebih dari 100 negara. Periksa di sini cakupannya berdasarkan negara
  • Paket SIM Arduino bulanan dapat disewa di seluruh dunia kecuali Brasil
  • Data gratis awal akan kedaluwarsa setelah 90 hari atau ketika Anda telah menggunakan data gratis 10 MB, mana saja yang lebih dulu
  • Anda dapat menjeda dan memulai ulang SIM Anda di sini. Harap perhatikan bahwa SIM Anda dapat dijeda selama maksimal 6 bulan dan ada biaya jeda berkelanjutan sebesar $0,30 USD per bulan ditambah pajak yang berlaku. SIM tidak dapat dijeda selama masa uji coba gratis 90 hari Anda
  • Jumlah lalu lintas data yang sama dengan harga yang sama di mana pun Anda mengoperasikan perangkat di seluruh dunia
  • Layanan seluler terukur dari Konektivitas Arm® Pelion™ – cocok untuk sejumlah besar perangkat di masa depan

Pertanyaan yang Sering Diajukan

Dapatkah Arduino SIM Terhubung ke Internet?

Awalnya Arduino SIM akan terbatas pada konektivitas ke Arduino IoT Cloud saja – dengan kemampuan untuk menjembatani Internet yang lebih luas menggunakan webhook dan API yang akan hadir pada akhir tahun ini.

BAGAIMANA CARA MENJEDA SIM SAYA?

Anda dapat menjeda dan memulai ulang SIM Anda di sini. Harap perhatikan bahwa SIM Anda dapat dijeda selama maksimal 6 bulan dan ada biaya jeda berkelanjutan sebesar $0,30 USD per bulan ditambah pajak yang berlaku. (n.b. SIM tidak dapat dijeda selama masa uji coba gratis 90 hari Anda).
DIMANA SIM SAYA AKAN BEROPERASI?
Anda akan dapat terhubung ke cloud Arduino IoT dari lebih dari 100 negara, memungkinkan Anda menggunakan perangkat Anda di seluruh dunia –

PAPAN APA YANG SIM AKAN BEKERJA?

Awalnya Arduino SIM akan mendukung Arduino MKR GSM 1400 (3G dengan fallback 2G). Ada peta jalan untuk mendukung Arduino MKR NB 1500 (LTE Cat-M dan NB-IoT) yang akan datang. Akhirnya kami berencana untuk membukanya untuk dewan pihak ketiga juga.

Dapatkah Saya Menggunakan SIM Lain?

Ya! Anda bebas menggunakan layanan seluler apa pun yang Anda sukai, dan memasukkan SIM apa pun yang Anda suka ke papan seluler Arduino Anda.

Saya Mengalami Masalah Dengan SIM Arduino Saya

Jika Anda mengalami masalah teknis saat menghubungkan perangkat Anda, pastikan untuk memeriksa forum SIM.

Referensi

  • Arduino MKR GSM 1400 https://store-usa.arduino.cc/products/arduino-mkr-gsm-1400?selectedStore=us

 

 

Rangkaian Motor Servo Arduino

Berikut ini beberapa rangkaian sederhana untuk mengendalikan motor servo dengan Arduino. Motor servo yang dimaksud di sini adalah motor servo radio control. Motor servo radio control memiliki 3 terminal: VCC, GND dan PWM.

Berikut ini contoh motor servo yang dipakai

Kendali Servo Dengan Potensiometer

Pada contoh ini posisi motor servo dikendalikan dengan sebuah potensiometer. Posisi potensiometer dibaca dengan membaca tegangan output dari potensiometer tersebut. Angka tersebut kemudian dipakai untuk mengendalikan posisi motor servo .

Rangkaian motor servo sebagai berikut:

Penjelasan Rangkaian:

Terminal VCC dari motor servo disambung ke catu daya motor

Terminal GND dari motor servo disambung ke GND catu daya motor dan GND Arduino

Terminal PWM dari motor servo disambung ke port 9 pada Arduino

Terminal pinggir Potensiometer disambung ke VCC dan GND pada Arduino

Terminal tengah potensiometer disambung ke pin A0 pada Arduino. Tegangan dari potensiometer akan dibaca sebagai tegangan analog, sehingga harus menggunakan pin input analog dari Arduino.

Sumber tegangan untuk Arduino UNO dapat menggunakan USB ataupun dari POWER PIN. Sumber tegangan untuk motor servo menggunakan baterai ataupun adaptor terpisah. Tegangan baterai untuk motor servo disesuaikan dengan spesifikasi motor servo. Catu daya untuk Arduino dipisah dengan catu daya untuk motor servo, karena biasanya arus yang ditarik oleh motor servo cukup besar sehingga dapat mengganggu tegangan catu daya yang terhubung ke motor servo.

Motor servo seperti HS-311 memerlukan tegangan catu daya antara 4,8 volt sampai 6 volt dengan arus maksimum 800 mA. Jadi pastikan tegangan catu daya dan arusnya sesuai untuk motor servo yang dipakai.

Perangkat lunak untuk Arduino adalah sebagai berikut:

#include <Servo.h>
Servo myservo;  // create servo object to control a servo
int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin
void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
void loop() {
  val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}

Cara kerja perangkat lunak

Library yang dipakai untuk mengendalikan motor adalah Arduino Servo Library.

Pada bagian setup, pin 9 diset sebagai output motor servo.

Pada fungsi loop() dilakukan proses sebagai berikut:

  • membaca tegangan dari pin A0 untuk mengetahui posisi dari potensiometer dengan fungsi analogRead()
  • angka ini skalanya adalah 0 sampai 1023, sedangkan input motor servo adalah 0 sampai 180, sehingga perlu dilakuan penskalaan dengan fungsi map()
  • tuliskan angka hasil penskalaan ke motor servo
  • tunggu 15 milidetik untuk memberi waktu motor bergerak

Fungsi loop() akan dilakukan berulang-ulang , sehingga posisi motor servo akan mengikuti posisi di potensiometer.

Kendali Servo Bolak-Balik

Pada contoh ini, posisi motor servo beralih dari 0 ke 180 derajat, kemudian kembali ke 0 derajat berulang-ulang.

Rangkaian sebagai berikut

Penjelasan Rangkaian:

Terminal VCC dari motor servo disambung ke catu daya motor

Terminal GND dari motor servo disambung ke GND catu daya motor dan GND Arduino

Terminal PWM dari motor servo disambung ke port 9 pada Arduino

Terminal pinggir Potensiometer disambung ke VCC dan GND pada Arduino

Kode sebagai berikut

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);               // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

Cara kerja perangkat lunak

Pada fungsi loop(), dilakukan hal berikut:

  • buat suatu for() loop untuk menggerakkan motor dari 0 derajat ke 180 derajat dengan langkah sebesar 1 derajat. Tiap kali geser 1 derajat, lakukan penundaan selama 15 milidetik untuk menunggu motor bergerak.
  • buat suatu for() loop untuk menggerakkan motor dari 0 derajat ke 180 derajat dengan langkah sebesar 1 derajat. Tiap kali geser 1 derajat, lakukan penundaan selama 15 milidetik untuk menunggu motor bergerak.

Referensi

 

Apa Itu Mikrokontroler dan Contohnya

Apa yang dimaksud dengan mikrokontroler?

Jawab: Pengertian mikrokontroler adalah suatu komputer kecil dalam satu keping rangkaian terintegrasi. Suatu mikrokontroler di dalamnya terdiri dari satu atau lebih CPU (Central Processing Unit / Unit pengolahan terpusat) dengan sejumlah memori dan periferal input/output.

Mengapa mikrokontroler disebut sebagai komputer?

Jawab: Mikrokontroler disebut sebagai komputer karena memang mikrokontroler adalah suatu komputer lengkap. Perbedaan khusus dibandingkan komputer biasa adalah semua komponen komputer pada mikrokontroler sudah terkandung dalam satu rangkaian terintegrasi, sedangkan pada komputer biasa komponen-komponen tersebut berada pada beberapa keping rangkaian terintegrasi.

Sebagai contoh,  Arduino UNO / Nano di dalamnya ada komponen utama mikrokontroler tipe ATmega328 . Di dalam ATmega328 ini sudah ada CPU, memori flash untuk menampung program, memori RAM (Random Access Memory) untuk menampung variabel di perangkat lunak, dan EEPROM (Electrically Erasable Programmable Read Only Memory) untuk menampung data yang dapat diubah oleh program namun tidak hilang kalau listrik dimatikan.

Berikut ini foto ATmega328

Sebagai perbandingan , motherboard komputer desktop memiliki CPU, memori dan periferal masing-masing pada rangkaian terintegrasi yang terpisah. Berikut ini contoh papan rangkaian motherboard.

 

Berikut ini contoh CPU AMD Ryzen 9 5950X. Dalam rangkaian terintegrasi ini hanya ada CPU saja, belum dilengkapi dengan RAM maupun periferal lain.

Referensi

  • https://en.wikipedia.org/wiki/Motherboard

Kenapa mikrokontroler sering disebut juga sebagai komputer mini?

Mikrokontroler sering disebut juga sebagai komputer mini karena mikrokontroler sudah merupakan satu komputer lengkap yang dapat menjalankan perangkat lunak, dan ukurannya kecil (maka disebut sebagai mini).

Istilah ‘minicomputer’ sebenarnya pernah dipakai di tahun 1960-an untuk menyebut komputer serba guna yang ada di era itu. Ukurannya cukup besar dibandingkan komputer zaman sekarang.  Lebih jauh dapat dibaca di https://en.wikipedia.org/wiki/Minicomputer

Apakah mikrokontroler termasuk ke dalam komputer?

Ya, mikrokontroler termasuk dalam salah satu jenis komputer.

Apa contoh mikrokontroler?

Contoh mikrokontroler di antaranya:

  • ESP32
  • ESP8266
  • ATmega328 yang dipakai di Arduino Nano dan Arduino UNO
  • RP2040 yang dipakai di Arduino Nano RP2040
  • Keluarga STM32 , seperti STM32F103C8T6  yang dipakai di modul Blue Pill
  • nRF52840 yang dipakai di Arduio Nano 33 BLE Sense
  • Atmel SAM3X8E yang dipakai di Arduino Due
  •  

Referensi

  • RP2040 https://en.wikipedia.org/wiki/RP2040
  • ATmega328 https://www.microchip.com/en-us/product/atmega328
  • ESP32 https://en.wikipedia.org/wiki/ESP32
  • STM32 Blue Pill https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html

Apa kelebihan mikrokontroler

Keuntungan mikrokontroler dan keistimewaan dibandingkan mikroprosesor biasa adalah:

  • ukuran kecil karena semua komponen komputer sudah ada dalam satu keping chip.
  • penggunaan daya kecil
  • pembuatan perangkat keras / rangkaian lebih mudah karena rangkaian lebih sederhana

Apa kekurangan mikrokontroler?

Kekurangan mikrokontroler adalah terutama pada ukurannya yang kecil, harus muat di dalam satu keping rangkaian terintegrasi. Akibatnya kemampuan komputasinya terbatas, memori terbatas, periferal juga terbatas dibandingkan dengan mikroprosesor.

Kemampuan komputasi terbatas artinya kecepatan komputasi relatif lambat.

Periferal terbatas, artinya input output digital maupun analog terbatas. Media penyimpanan terbatas. Jika perlu penyimpanan tambahan, biasanya  untuk mikrokontroler menggunakan memori tipe SD card. Mikroprosesor dapat menggunakan media besar seperti flashdisk, SSD dan hard disk.

Mikrokontroler pakai bahasa apa?

Mikrokontroler yang ada saat ini umumnya diprogram menggunakan bahasa pemrograman Assembly, C dan C++. Bahasa lain jarang dipakai, misalkan sebagai berikut:

  • Python dipakai di NodeMCU dengan bahasa MicroPython (https://micropython.org/)
  • Rust dipakai untuk ESP32 https://github.com/esp-rs/awesome-esp-rust
  • TinyGo (versi kecil dari Go) https://tinygo.org/

Apa singkatan dari mikrokontroler?

Mikrokontroler sering disingkat sebagai MCU  (Microcontroller Unit)

Apa fungsi ALU dalam mikrokontroler?

ALU (Arithmetic & Logic Unit) adalah bagian dari CPU (Central Processing Unit), sedangkan CPU adalah bagian dari mikrokontroler. Fungsi ALU pada mikrokontroler sama seperti fungsi ALU pada CPU, yaitu untuk melakukan proses perhitungan aritmatik (tambah kurang kali bagi) dan logika (AND, OR, NOT, penggeseran bit)

Apa bagian dari mikrokontroler?

Bagian-bagian utama dari mikrokontroler adalah: CPU, memori dan periferal.

  • CPU (Central Processing Unit) berfungsi mengatur seluruh aktivitas di dalam mikrokontroler
  • Memori berfungsi untuk menyimpan program dan variabel-variabel.
  • Periferal berfungsi menghubungkan mikrokontroler ke dunia luar

Sebagai contoh, berikut ini blok diagram mikrokontroler ESP32

Blok diagram ESP32
Blok diagram ESP32

Penjelasan:

  • CPU pada ESP32 tersebut adalah “Xtensa LX6 microprocessor”
    Memori adalah ROM dan SRAM
  • Periferal adalah bagian-bagian lainnya, seperti Radio, Cryptographic, Peripheral Interfaces (I2C, SDIO, CAN, IR, Temperature Sensor, DAC, SPI, I2S, UART, ETH, PWM, Touch Sensor, SAR ADC)

Apa fungsi chip pada mikrokontroler?

Apakah Chip termasuk mikrokontroler?

Chip tidak termasuk mikrokontroler. Justru mikrokontroler adalah salah satu jenis chip. Chip jenis lain selain mikrokontroler banyak , misal chip penguat op-amp, chip rangkaian logika dan sebagainya.

Apa yang dimaksud dengan sistem minimum mikrokontroler?

Mikrokontroler secara definisi sudah dapat langsung dijalankan tanpa tambahan komponen mikroprosesor lain, jadi istilah ‘sistem minimum mikrokontroler’ ini agak rancu. Beberapa mikrokontroler sudah dapat dijalankan hanya dengan menambahkan tegangan power supply, namun ada juga beberapa mikrokontroler yang masih memerlukan tambahan komponen seperti kristal untuk clock.

Istilah ‘sistem minimum mikroprosesor’ sebenarnya dikenal untuk mikroprosesor, yaitu rangkaian minimum suatu sistem mikroprosesor (CPU, RAM dan periferal) yang dapat menjalankan suatu program sederhana.

Apa karakteristik mikrokontroler?

Karakteristik utama mikrokontroler adalah sebagai berikut

  • mikrokontroler adalah komputer, di dalamnya ada CPU , memori dan periferal
  • sering dipakai untuk mengendalikan perangkat-perangkat kecil
  • dipakai di sistem tertanam (embedded systems), yaitu perangkat yang di dalamnya terdapat komputer namun komputer tersebut tidak kelihatan
  • kemampuan komputasi terbatas, jadi umumnya hanya dipakai untuk komputasi ringan
  • konsumsi daya mikrokontroler relatif kecil dibandingkan mikroprosesor biasa. terutama di perangkat yang mobile/mudah dipindahkan.
  • Sering dipakai untuk menangani pekerjaan waktu nyata (pekerjaan yang memiliki batas waktu ketat)
  • Sudah dilengkapi dengan periferal input & output jadi dapat langsung disambung ke sensor dan aktuator
  • program pada mikrokontroler umumnya disimpan di flash memory, bukan di hard drive ataupun SSD
  • harga relatif murah
  • ukuran kecil, mudah diintegrasikan dengan produk lain
  • Ukuran memori dan periferal pada mikrokontroler tidak dapat diubah, sehingga mikrokontroler diproduksi dengan berbagai kombinasi kemampuan memori dan periferal. Mikroprosesor dapat dikonfigurasi kemampuannya dengan menambah periferal, jadi jenis mikroprosesor tidak terlalu banyak.

 

Berapa Tegangan Kerja Arduino

Berapakah tegangan kerja Arduino?

Tegangan kerja untuk Arduino Nano dan Arduino UNO adalah 5 volt. Tegangan yang dapat diberikan ke pin-pin Arduino adalah minimum 0 volt, maksimum 5 volt. Perkecualian adalah sebagai berikut: pin RESET dapat menerima tegangan sampai 13 volt. Pin VIN dapat menerima tegangan sampai 20 volt karena di pin tersebut ada regulator DC untuk mengubah tegangan masuk menjadi 5 volt.

Arduino Nano dan Arduino UNO menggunakan prosesor ATmega328. Batas maksimum tegangan pada ATmega328 dapat dilihat di datasheet prosesor ATmega328, di bagian “Absolute Maximum Ratings”. Kutipannya sebagai berikut:

ATmega328 absolute maximum rating
ATmega328 absolute maximum rating

Tegangan pada VIN atau POWER IN tidak langsung dihubungkan ke prosesor ATmega328, melainkan melalui regulator DC. Jadi tegangan maksimumnya tergantung komponen regulator DC yang dipakai.

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


Referensi

Apa Itu ADC (Analog to Digital Converter) dan Fungsi ADC

Apa itu ADC

ADC (Analog to Digital Converter) adalah perangkat yang mengubah sinyal analog menjadi sinyal digital. Besaran analog di sini maksudnya adalah besaran yang mempunyai nilai kontinyu pada waktu kontinyu, sedangkan digital di sini maksudnya adalah memiliki representasi diskrit pada waktu yang diskrit.

Perubahan waktu kontinyu menjadi waktu diskrit menggunakan proses pencuplikan (sampling). Perubahan amplitudo kontinyu menjadi amplitudo diskrit menggunakan proses kuantisasi.

Bentuk fisik ADC dapat berupa sebuah chip, bisa juga dibuat menggunakan komponen diskrit (transistor, gerbang logika, op-amp), ataupun sudah menyatu dengan mikrokontroler.

ADC tipe MCP3008 buatan Microchip

Jenis ADC

Jenis-jenis ADC adalah sebagai berikut:

  • Flash
  • Single slope converter
  • Dual slope converter
  • Successive Approximation Register
  • Delta Sigma

Berikut ini contoh skema suatu flash ADC (sumber)

Berikut ini contoh skema suatu SAR ADC (sumber)

Berikut ini contoh skema suatu Integrating ADC (sumber)

Parameter ADC

Parameter-parameter ADC adalah sebagai berikut

  • resolusi: menyatakan berapa jumlah nilai diskrit yang dapat dihasilkan untuk merepresentasikan nilai masukan analog. Umumnya dinyatakan dalam jumlah bit pada output ADC
  • kecepatan sampling: parameter ini menyatakan berapa banyak konversi analog ke digital yang dapat dilakukan setiap detik.

Resolusi

Konsep resolusi ADC dapat dilihat pada contoh ini. Berikut ini contoh pemetaan nilai analog (0 sampai 1.0) ke nilai biner terkait dari suatu ADC 8 bit (sumber)Pencuplikan

Sinyal analog bersifat kontinyu pada domain waktu. Untuk mengubah sinyal analog ini menjadi digital, perlu didefinisikan seberapa cepat nilai digital dicuplik dari sinyal analog. Kecepatan menghasilkan nilai digital ini adalah kecepatan sampling atau frekuensi sampling (sampling rate / sampling frequency).

Sinyal analog dapat dicuplik menjadi sinyal digital dan kemudian dapat dikembalikan lagi ke bentuk analog dengan syarat kecepatan samplingnya lebih tinggi dari dua kali frekuensi maksimum pada sinyal analog tersebut. Kriteria ini adalah disebut juga sebagai teorema pencuplikan Nyquist-Shannon.

Antar Muka ADC

ADC umumnya dipakai bersamaan dengan elemen komputasi seperti mikroprosesor/mikrokontroler ataupun FPGA (Field Programmable Array) . Antar muka antara ADC dengan elemen komputasi dapat dengan berbagai cara, seperti:

  • Terintegrasi dalam 1 chip, seperti ADC pada mikrokontroler ATmega328 di modul Arduino UNO / Arduino Nano / ESP32
  • Bus data mikroprosesor paralel
  • Komunikasi serial I2C (Inter Integrated Circuit)
  • Komunikasi serial SPI (Serial Peripheral Interface)
  • Komunikasi serial proprietary

Contoh ADC terintegrasi adalah mikrokontroler Arduino Nano yang di dalamnya ada ADC 10 bit.

Arduino Nano specimen 1
Arduino Nano

Contoh ADC yang menggunakan komunikasi bus data adalah ADC0804 (sumber). Berikut ini contoh skema rangkaian interkoneksi antara mikroprosesor dengan ADC0804

Bentuk fisik ADC0804
Bentuk fisik ADC0804

 

Skema rangkaian ADC0804
Skema rangkaian ADC0804

Pada saat ini jarang sekali orang menggunakan teknik ini, karena biasanya mikrokontroler tidak memiliki bus yang dapat diakses.

Contoh ADC dengan bus I2C adalah ADS1115 buatan Texas Instruments . ADC ini banyak dijual sebagai modul yang sudah disolder.

Modul ADS1115
Modul ADS1115

Contoh ADC dengan koneksi SPI  adalah MCP3008 buatan Microchip

MCP3008

Aplikasi ADC

ADC dipakai untuk berbagai aplikasi seperti

  • Perekaman suara
  • Pengolahan sinyal meliputi perekaman, penyimpanan dan pengiriman sinyal melalui media tertentu
  • Instrumentasi ilmiah untuk merekam sinyal dari berbagai sensor

Lebih jauh tentang ADC:

 

Apa fungsi pin pada Arduino?

Fungsi pin pada Arduino adalah menghubungkan sinyal-sinyal dari dalam modul Arduino ke luar dan sinyal dari luar Arduino ke dalam.  Setiap pin pada Arduino memiliki fungsi tertentu.

Berikut ini fungsi-fungsi pin pada Arduino UNO

Nama Port Fungsi Utama
Fungsi Lain
Power Jack catu daya 7 sampai 12 volt  
USB type B catu daya 5 volt & komunikasi serial  
IOREF referensi ADC  
RESET pin reset pada ATmega328  
3V3 supply 3,3 volt  
+5V supply 5 volt  
GND ground  
VIN tegangan masuk 7 sampai 12 volt  
A0 input analog & I/O digital  
A1 input analog & I/O digital  
A2 input analog & I/O digital  
A3 input analog & I/O digital  
A4 input analog & I/O digital SDA untuk I2C
A5 input analog & I/O digital SCL untuk I2C
D19 I/O digital  
D18 I/O digital  
AREF Pin referensi ADC (Analog to Digital Converter)  
D13 I/O digital  
D12 I/O digital  
D11 I/O digital OC2A , MOSI
D10 I/O digital OC1B, SS
D9 I/O digital IC1A
D8 I/O digital CLK0 , ICP1
D7 I/O digital AIN1
D6 I/O digital AIN0
D5 I/O digital T1
D4 I/O digital T0
D3 I/O digital INT1
D2 I/O digital INT0
D1 I/O digital TXD
D0 I/O digital RXD
 

Berikut ini daftar pin pada Arduino UNO R3

Pinout Arduino UNO
Pinout Arduino UNO

Apa fungsi pin analog pada Arduino?

  • Pin analog pada Arduino berfungsi menerima sinyal listrik berupa tegangan analog. Tegangan ini diubah oleh ADC (Analog to Digital Converter) menjadi angka digital. ADC pada Arduino UNO dan Arduino Nano memiliki resolusi 10 bit, jadi tegangan analog tersebut akan dibaca oleh perangkat lunak sebagai angka integer 0 sampai dengan 1023.
  • Pin analog pada Arduino UNO hanya ada 6 buah, yaitu A0 , A1, A2, A3, A4 dan A5

Apa fungsi pin digital pada Arduino?

  • Pin digital pada Arduino berfungsi menerima atau mengirim sinyal listrik digital. Tegangan pada pin digital akan dibaca oleh perangkat lunak sebagai angka 0 (jika input tegangan rendah mendekati 0 volt) atau 1 (jika input tegangan tinggi mendekati 5 volt). Fungsi untuk membaca tegangan pada pin digital adalah digitalRead(). Tegangan pada pin digital juga dapat diubah oleh perangkat lunak Arduino dengan fungsi digitalWrite().
  • Semua port pada Arduino dapat difungsikan sebagai input digital maupun output digital.

 

 

Apa itu PWM dan fungsinya?

Apa yang dimaksud dengan PWM, dan apa fungsinya?

PWM (Pulse Width Modulation) adalah modulasi suatu sinyal digital dengan cara mengubah-ubah lebar pulsa tergantung nilai inputnya.

Berikut ini contoh sinyal PWM:

Sinyal PWM memiliki frekuensi tetap. Lebar pulsa diubah-ubah dengan cara mengubah duty-cycle dari sinyal tersebut. Rentang input PWM adalah 0 sampai 100%. Outputnya adalah sinyal dengan frekuensi tetap, namun duty cycle mengikuti input.

Fungsi sinyal PWM di antaranya adalah sebagai berikut:

  • sinyal kendali untuk motor servo radio control
  • modulasi untuk pengiriman data pada telekomunikasi.
  • mengatur daya yang diberikan kepada suatu beban, misal untuk mengendalikan kecepatan putaran suatu motor listrik
  • regulasi tegangan. Tegangan output dapat diatur dengan mengubah duty cycle sinyal.
  • mengatur kecerahan lampu LED

Berikut ini contoh servo motor yang biasa dipakai di aplikasi radio control:

modul motor tersebut memiliki 3 input: VCC, GND dan PWM. Sudut pada poros ditentukan oleh duty cycle pada sinyal PWM.

Referensi

 

Apa perbedaan fungsi void setup () dan void loop ()?

Perbedaan antara fungsi ‘void setup()’ dan ‘void loop()’ pada Arduino adalah sebagai berikut:

  • ‘void setup()’ berisi kode/program yang hanya dijalankan sekali ketika Arduino dinyalakan. Biasanya fungsi setup() ini berisi inisialisasi hardware dan inisialisasi variabel global.
  • ‘void loop()’ berisi kode /program yang dijalankan berulang-ulang tanpa ada berhenti. Biasanya menjalankan fungsi utama dari Arduino tersebut.

Selain setup() dan loop(), sebenarnya ada juga fungsi interupsi yang hanya dijalankan ketika interupsi tertentu diaktifkan. Interupsi eksternal dapat diaktifkan dengan fungsi attachInterrupt(). Interupsi timer dapat diaktifkan dengan library TimerInterrupt.

Sebagai contoh adalah program lampu kedip sederhana dari Arduino sebagai berikut:

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

Pada program tersebut, setup() berisi inisialisasi pin output untuk lampu LED.

loop() berisi pekerjaan utama sistem mikrokontroler Arduino tersebut, yaitu menyalakan dan mematikan lampu LED berulang-ulang tanpa berhenti.

Referensi

Apa perbedaan pin analog dan digital pada Arduino?

Berikut ini perbedaan pin analog dan digital pada Arduino adalah sebagai berikut:

  • Pin analog menerima sinyal listrik berupa tegangan analog. Tegangan ini diubah oleh ADC (Analog to Digital Converter) menjadi angka digital. ADC pada Arduino UNO dan Arduino Nano memiliki resolusi 10 bit, jadi tegangan analog tersebut akan dibaca oleh perangkat lunak sebagai angka integer 0 sampai dengan 1023.
  • Pin digital pada Arduino menerima sinyal listrik digital. Tegangan pada pin digital akan dibaca oleh perangkat lunak sebagai angka 0 (jika input tegangan rendah mendekati 0 volt) atau 1 (jika input tegangan tinggi mendekati 5 volt).

Sinyal input pada pin analog dibaca dengan fungsi analogRead(), hasilnya adalah angka integer dari 0 sampai 1023.

Sinyal input pada pin digital dibaca dengan fungsi digitalRead(), hasilnya adalah angka 0 atau 1.

Pin analog pada Arduino UNO dan Nano dapat difungsikan sebagai input analog maupun digital.

Pin digital pada Arduino UNO dan Nano hanya dapat difungsikan sebagai input digital.

Referensi

Berapa banyak pin analog pada Arduino UNO?

Berapa banyak pin analog pada Arduino UNO?

Jawab: jumlah pin analog pada Arduino UNO adalah 6 buah yaitu A0, A1, A2 A3, A4 dan A5

Berikut ini posisi pin-pin pada Arduino UNO:

Daftar pin pada Arduino UNO R3
Daftar pin pada Arduino UNO R3

Pin analog terdapat pada bagian kiri bawah. Pin analog tersebut multi fungsi , yaitu dapat berfungsi sebagai pin analog (input) maupun pin digital (input dan output).

Apa yang dimaksud dengan pin pada Arduino?

Yang dimaksud dengan pin pada Arduino adalah kontak elektrik yang terdapat pada modul Arduino. Kontak elektrik ini berfungsi untuk menyambungkan sinyal listrik dari modul Arduino ke perangkat lain di luar Arduino.

Berikut ini foto pin berbentuk batang-batang serupa jarum pada Arduino Nano

Arduino Nano tampak samping
Arduino Nano tampak samping

Setiap pin pada Arduino tersebut memiliki fungsi tertentu yang berbeda-beda. Untuk mengetahui fungsinya kita mesti membaca datasheet dari modul Arduino tersebut.

Berikut ini adalah daftar fungsi setiap pin pada Arduino Nano

Kontak elektrik pada Arduino UNO menggunakan lubang-lubang, bukan berupa pin. Berikut ini foto Arduino UNO dengan kontak elektrik berupa plastik hitam yang di dalamnya terdapat kontak elektrik.

Referensi

  • Arduino Nano Pinout https://docs.arduino.cc/hardware/nano
  • Datasheet Arduino Nano https://docs.arduino.cc/resources/datasheets/A000005-datasheet.pdf
  • Electrical Connector https://en.wikipedia.org/wiki/Electrical_connector

 

 

 

 

Apa itu Internet of Things

Internet of Things (IoT) adalah perangkat yang memiliki sensor, kemampuan pengolahan/komputasi, perangkat lunak dan teknologi lain untuk menyambungkan dan mengirimkan data ke perangkat lain dan sistem lain melalui internet atau jaringan komunikasi lainnya.

Bidang ilmu Internet of Things melingkupi elektronika, komunikasi dan ilmu komputer.

Tujuan

Tujuan dari Internet of Things adalah memungkinkan semua benda yang dipakai sehari-hari ke internet untuk melakukan pertukaran informasi.

Aplikasi

Contoh aplikasi Internet of Things:

  • lampu yang dapat dikendalikan dari jarak jauh melalui smartphone
  • Fabrikasi cerdas (smart manufacturing)
  • Memonitor aset-aset untuk dapat melakukan perawatan aset sebelum mengalami kerusakan (perawatan pencegahan dan perawatan terprediksi).
  • Jaringan distribusi elektrik cerdas
  • Kota cerdas
  • Logistik yang tersambung ke jaringan komunikasi
  • Rantai pasok cerdas
  • Pertanian cerdas
  • Kesehatan
  • Industri retail
  • Transportasi

Referensi

  • Internet of Things https://en.wikipedia.org/wiki/Internet_of_things
  • https://www.oracle.com/id/internet-of-things/what-is-iot/
  • https://www.ibm.com/topics/internet-of-things

Mengapa sensor PIR hanya bereaksi pada tubuh manusia saja?

Sensor PIR (Passive Infra Red) hanya bereaksi pada tubuh manusia saja karena sensor tersebut dilengkapi filter radiasi yang dapat mendeteksi radiasi infra merah dari tubuh manusia.

Hewan peliharaan seperti kucing dan anjing memiliki temperatur antara 38,3 sampai dengan 39,2 derajat Celcius, sehingga dapat juga dideteksi oleh sensor PIR yang sama.

Jadi sebenarnya sensor PIR dapat mendeteksi tubuh manusia dan hewan yang memiliki temperatur di sekitar 37 derajat Celcius

Penjelasan

Setiap benda memancarkan radiasi tergantung temperaturnya. Manusia normal memiliki suhu tubuh normal sekitar 37 derajat Celcius. Panas dari tubuh manusia ini memancarkan radiasi infra merah dengan panjang gelombang tertentu. Manusia memancarkan radiasi inframerah dengan panjang gelombang antara 3 sampai 50 mikron.

Most research suggests that humans emit infrared radiation to the tune of between 3-50 microns.
Kebanyakan radiasi di panjang gelombang 9.5 mikrometer. sumber: (https://www.ceramicx.com/information/media/white-papers/infrared-heating-for-humans/)

Rumus hubungan antara panjang gelombang dengan temperatur dikenal dengan “hukum Wien untuk perpindahan” dengan rumus sebagai berikut:

Penjelasan tentang rumus ini dapat dibaca di artikel “Wien’s displacement_law

Konsep radiasi dari suatu benda dapat diperdalam di artikel “Radiasi benda hitam

Sensor PIR

Sensor PIR seperti LHI 778 dirancang untuk mendeteksi radiasi dengan panjang gelombang antara 7um sampai 14 um

Sensor LHI 778

 

Sensor LHI778 ini dipakai di modul PIR seperti “HC-SR501” https://components101.com/sensors/hc-sr501-pir-sensor

HC-SR501 PIR Sensor
HC-SR501 PIR Sensor

Pada modul HC-SR501, modul LHI778 ini ditambah dengan lensa Fresnel plastik untuk memperbaiki arah deteksi dan rangkaian elektronik untuk memperkuat sinyal dari sensor tersebut. Output dari modul ini dapat langsung dihubungkan ke mikrokontroler seperti Arduino.

 

Kesimpulan

Jadi sensor PIR dapat mendeteksi manusia karena tubuh manusia dengan temperatur 37 derajat Celcius memancarkan radiasi infra merah di sekitar 9,5 mikron yang dapat dideteksi dengan sensor dengan filter khusus. Sensor ini dapat membedakan tubuh manusia dengan benda lain yang memiliki temperatur berbeda. Sensor ini  tidak dapat membedakan tubuh manusia dengan benda lain yang memiliki temperatur sama. 

Referensi