Bagaimana mengatasi regulator Arduino yang panas?

Cara mengatasi regulator Arduino UNO ataupun Arduino Nano yang panas adalah dengan :

  • menggunakan tegangan pada power jack serendah mungkin. Tegangan paling kecil yang masih memungkinkan adalah 7 volt.
  • batasi pemakaian arus oleh prosesor
  • gunakan pendingin seperti kipas angin

Batasi Tegangan Power Jack dan VIN

Jika regulator Arduino panas, artinya ada disipasi daya pada regulator tersebut. Rangkaian regulator pada Arduino UNO adalah sebagai berikut

Rangkaian Catu Daya Arduino UNO
Rangkaian Regulator Arduino UNO

Tegangan dari power jack ataupun VIN dikecilkan menjadi 5 volt oleh regulator MC33269D-5.0 . Kelebihan tegangan ini dibuang menjadi panas. Makin besar perbedaan tegangan , maka daya yang dibuang makin besar. Daya makin besar, akibatnya regulator makin panas. Jadi salah satu cara mudah mengurangi panas pada regulator tersebut adalah dengan menggunakan tegangan power jack ataupun VIN di 7 volt saja.

Batasi Arus Mikroprosesor ATmega328

Arus maksimum pada terminal VCC prosesor adalah 200 mA. Arus ini akan menjadi beban juga bagi regulator.

Misal tegangan VIN 9 volt, dengan arus pada VCC ATmega328 adalah 200 mA. Maka akan ada pengurangan tegangan 4 volt pada regulator. Disipasi daya karena VCC sebesar P = V x I =4 volt x 200 mA = 800 mW

Misal penggunaan arus pada port ATmega328 dikurangi, sehingga total arus hanya 50 mA. Maka disipasi daya pada regulator menjadi P = VxI = 4 volt x 50 mA = 200 mW. Dengan demikian regulator tidak terlalu panas.

Gunakan Kipas

Regulator pada Arduino UNO tidak dilengkapi pendingin khusus seperti heat sink yang besar, sehingga panas sulit dibuang dengan baik. Pendinginan terutama melalui jalur tembaga di papan rangkaian (PCB) Untuk mempercepat pendinginan dapat dengan kipas angin kecil.

Secara teori cara ini dapat dipakai, namun dalam praktek sangat tidak praktis.

 

Arduino UNO R3
Arduino UNO R3

 

 

 

Cara Menghapus EEPROM Arduino

Cara menghapus EEPROM Arduino ada 2 cara:

  • Menghapus EEPROM menggunakan program yang diupload ke memori Flash dan kemudian dijalankan
  • Menggunakan fasilitas serial programming melalui ISP (In System Programming) di ATmega328
  • Menggunakan fasilitas parallel programming / high voltage programming pada ATmega328

Menghapus EEPROM Dengan Upload Program

Teknik ini dijelaskan di tutorial EEPROM Clear di https://www.arduino.cc/en/Tutorial/EEPROMClear

Prinsip dasarnya adalah menggunakan fungsi EEPROM.write() untuk menulis angka 0 ke semua lokasi EEPROM.

Berikut ini contoh program untuk menghapus semua isi data di EEPROM.

/*
 * EEPROM Write
 *
 * Stores values read from analog input 0 into the EEPROM.
 * These values will stay in the EEPROM when the board is
 * turned off and may be retrieved later by another sketch.
 */


#include <EEPROM.h>

/** the current address in the EEPROM (i.e. which byte we're going to write to next) **/
int addr = 0;

void setup() {
  /** Empty setup. **/
}

void loop() {
  /***
    Need to divide by 4 because analog inputs range from
    0 to 1023 and each byte of the EEPROM can only hold a
    value from 0 to 255.
  ***/


  int val = analogRead(0) / 4;

  /***
    Write the value to the appropriate byte of the EEPROM.
    these values will remain there when the board is
    turned off.
  ***/


  EEPROM.write(addr, val);

  /***
    Advance to the next address, when at the end restart at the beginning.

    Larger AVR processors have larger EEPROM sizes, E.g:
    - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno:        1kb EEPROM storage.
    - Arduino Mega:       4kb EEPROM storage.

    Rather than hard-coding the length, you should use the pre-provided length function.
    This will make your code portable to all AVR processors.
  ***/

  addr = addr + 1;
  if (addr == EEPROM.length()) {
    addr = 0;
  }

  /***
    As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
    EEPROM address is also doable by a bitwise and of the length - 1.

    ++addr &= EEPROM.length() - 1;
  ***/



  delay(100);
}

Menghapus EEPROM Dengan ISP (In System Programming)

Pada metode ini, diperlukan antar muka khusus ke port ISP di ATmega328 pada Arduino UNO. Contoh antar muka yang populer adalah USBasp (https://www.fischl.de/usbasp/)

Perangkat lunak yang diperlukan ada beberapa macam, misalnya:

 

Arduino UNO R3
Arduino UNO R3

 

 

Apakah program yang sudah diupload pada Arduino bisa diedit dan diupload ulang?

Program yang sudah diupload ke Arduino tidak dapat diedit lagi. Tepatnya: bisa diambil kalau Arduinonya belum dikunci, kodenya sudah tidak dalam bentuk awal. Kode dapat diedit, namun sulit sekali karena dalam bahasa assembly.

Arduino UNO R3
Arduino UNO R3

Program sketch Arduino menggunakan bahasa C++, dalam bentuk format teks program. Filenya menggunakan ekstensi *.INO. Ketika akan diupload ke Arduino, program tersebut diubah dulu oleh compiler dan linker menjadi file *.HEX . File *.HEX ini berisi kode-kode mesin yang akan diterjemahkan oleh prosesor di Arduino menjadi instruksi yang akan dikerjakan. Kode bahasa C++ tidak ada di dalam file HEX tersebut, sehingga kita tidak dapat lagi mengedit progam yang sudah diupload ke Arduino.

Arduino IDE dengan program Blink
Arduino IDE dengan program Blink

Berikut ini adalah source code untuk membuat LED berkedip, sumbernya dari contoh di Arduino IDE (File -> Examples -> 01.Basics -> Blink.

Penjelasan tentang software tersebut dapat juga dibaca di artikel “Arduino Tutorial Blink“.

Pada potongan kode berikut ini , komentar pada kode dihilangkan sehingga hanya source code pentingnya saja yang ditampilkan.

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
 

Software itu dicompile, menghasilkan binary dalam format HEX dengan nama “Blink.ino.hex”.

File “Blink.ino.hex” ini yang kemudian dimasukkan ke dalam prosesor di Arduino UNO, yaitu ATmega328. Format HEX ini adalah format teks ASCII , sedangkan untuk melihat wujud data ini dalam bentuk binary, mesti menggunakan software avr-objcopy, yang biasanya di Windows ada di “C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-objcopy”.

File HEX ini diubah dengan avr-objcopy menjadi format binary, dengan perintah sebagai berikut:

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-objcopy" -I ihex Blink.ino.hex -O binary blink.bin

Isi file dilihat dengan utility HxD (), hasilnya sebagai berikut:

Kode biner program di Arduino
Kode biner program di Arduino

Dari kode biner tersebut nampak sudah tidak ada lagi teks source code yang aslinya. Sehingga teks asli source code tidak dapat lagi diedit berdasarkan program yang sudah diupload ke Arduino UNO.

Untuk melihat kerja dari program binary tersebut dapat menggunakan fitur disassembly, namun sangat sulit dibaca dibandingkan dengan source code aslinya.

Kode biner tersebut dapat dibaca dari prosesor ATmega328, namun syaratnya adalah fuse bit untuk membaca FLASH memory pada ATmega328 belum dikunci.

Kode program tersebut dapat diubah ke dalam bahasa assembly, dengan perintah berikut ini:

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-objdump" –j .sec1 –d –m avr5 Blink.ino.hex > blink.asm

File blink.asm berisi kode dalam bahasa assembly, namun membacanya cukup sulit. Contoh kodenya dapat dilihat di tautan berikut ini: blink.asm

 

Referensi

 

Port yang terdapat pada Arduino UNO

Berikut ini daftar port pada Arduino UNO:

Nama Port Fungsi
Power Jack catu daya 7 sampai 12 volt
USB type B catu daya 5 volt & komunikasi serial
IOREF referensi +5 volt
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
A5 input analog & I/O digital
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
D10 I/O digital
D9 I/O digital
D8 I/O digital
D7 I/O digital
D6 I/O digital
D5 I/O digital
D4 I/O digital
D3 I/O digital
D2 I/O digital
D1 I/O digital
D0 I/O digital
   
   
   

Ilustrasi Port Arduino UNO

Berikut ini ilustrasi port pada Arduino UNO (sumber)

Berikut ini ilustrasi port pada Arduino UNO (sumber)

Port pada Arduino UNO
Port pada Arduino UNO

Referensi

Daya Terbesar Maksimum Untuk Arduino UNO

Berapakah daya terbesar (maksimum) yang dipakai oleh Arduino UNO? Jika menggunakan catu daya Power Jack, daya masuk maksimum adalah 16 watt. Jika menggunakan catu daya USB, daya masuk maksimum adalah 2,5 watt.

Pengertian daya untuk Arduino ini dapat diartikan bermacam-macam, di antaranya:

  • Daya maksimum yang dapat masuk ke board Arduino UNO tanpa merusaknya. Jika tidak ada batasan kerusakan, maka praktis tidak ada keterbatasan.
  • Daya maksimum yang diserap oleh prosesor di Arduino, yaitu ATmega328
  • Daya maksimum total yang dapat dikeluarkan dari semua pin-pin pada Arduino
  • Daya maksimum yang dapat dikeluarkan oleh 1 pin pada Arduino.

Daya Maksimum Masuk ke Arduino UNO

Daya yang dipakai oleh Arduino UNO tanpa merusaknya dibatasi oleh 2 hal: kemampuan catu daya / regulator, dan kemampuan arus pada prosesor ATmega328.

Rangkaian Catu Daya Arduino UNO
Rangkaian Catu Daya Arduino UNO

Arus catu daya dari PWRIN masuk melalui dioda D1 dengan tipe M7. Dioda ini memiliki arus maksimum 1 ampere, sesuai menurut spesifikasinya.

Regulator MC33269D-5.0 memiliki arus maksimum 800 mA, menurut spesifikasinya. Nama parameternya adalah “Current Limit”, dapat dilihat di screenshot berikut ini.

MC33269-Electrical Characteristics
MC33269-Electrical Characteristics

Jika menggunakan power supply dari port USB, maka arus maksimumnya adalah 500 mA. Arus ini dibatasi oleh kemampuan sumber USB dan terutama oleh sekring 500 mA yang dipasang di jalur USBVCC. Skema input USB dapat dilihat pada gambar berikut. Sumber: [skematik Arduino UNO]

Sekring F1 (500 mA) pada jalur 5 volt USB
Sekring F1 (500 mA) pada jalur 5 volt USB

Daya Aktif Diserap ATmega328

Berikut ini grafik konsumsi daya pada prosesor ATmega328 yang dipakai di Arduino UNO, diambil dari datasheet ATmega328:

ATmega328P active supply current vs frequency
ATmega328P active supply current vs frequency

Dari grafik tersebut dapat diambil kesimpulan arus maksimum yang dipakai oleh ATmega328 pada frekuensi 16 MHz dengan tegangan 5 volt adalah mendekati 10 mA. Daya yang diserap ATmega328 = 5 volt x 10 mA = 50 mW.

Konsumsi board Arduino UNO bisa lebih besar, karena pada board Arduino UNO terdapat komponen lain yang juga memerlukan daya.

Daya Total dari semua pin ATmega328

Arus maksimum yang dapat dilewatkan di pin VCC pada ATmega328 adalah 200 mA, sehingga daya yang diberikan pin-pin adalah 200 mA x 5 volt = 1000 mW = 1 watt.

Sumber informasinya adalah datasheet ATmega328 di bagian 28.1 Absolute Maximum Ratings sebagai berikut:

ATmega328 absolute maximum rating
ATmega328 absolute maximum rating

Daya Total dari 1 buah pin ATmega328

Arus maksimum pada 1 pin ATmega328 adalah 40 mA, sehingga daya maksimum = 40 mA x 5 volt = 200 mW.

Sumber informasinya adalah datasheet ATmega328 di bagian 28.1 Absolute Maximum Ratings yang sudah disebutkan di atas.

Kesimpulan

#1 Daya maksimum yang diserap board Arduino Nano sebagai berikut:

Sumber Tegangan Tegangan Arus catu daya maksimum Daya masuk Daya terbuang di regulator Daya lewat ATmega328 Daya lewat pin 5V
Power Jack 7 volt 800 mA 5.6 watt 1,6 watt 1 watt 3 watt
Power Jack 12 volt 800 mA 9,6 volt 5,6 watt 1 watt 3 watt
Power Jack 20 volt 800 mA 16 watt 12 watt 1 watt 3 watt
USB 5 volt 500 mA 2,5 watt 0 1 watt 1,5 watt
             
             
             

#2 Daya maksimum diserap ATmega328 adalah 50 mW

#3 Daya total dari pin ATmega328 adalah 1 watt

#4 Daya total dari 1 buah pin ATmega328 adalah 200 mW

Referensi

Perbedaan Utama Arduino Uno dan WEMOS

Perbedaan utama Arduino Uno dan WEMOS adalah Arduino menggunakan prosesor ATmega328, sedangkan WEMOS menggunakan prosesor ESP8266 dan ESP32

Arduino UNO

Arduino UNO R3
Arduino UNO R3

Wemos

Wemos memproduksi beberapa board, di antaranya:

  • Wemos D1 mini
  • Wemos D32
  • Wemos D1 mini shield
  • Wemos W600

Wemos D1 mini

Wemos D1 mini
Wemos D1 mini Pro
Wemos D1 mini Pro
Wemos D1 mini Pro

Wemos D1 mini lite

Wemos D1 mini Lite
Wemos D1 mini Lite

 

Wemos D32

Wemos D32
Wemos D32
Wemos D32 Pro
Wemos D32 Pro

Wemos W600

Wemos W600-PICO
Wemos W600-PICO

Referensi

Cara Menyalakan Arduino UNO

Cara menyalakan Arduino UNO adalah dengan menyambungkan catu daya (power supply) ke pin power pada Arduino UNO. Pada Arduino UNO ada beberapa pin power.

Berikut ini skema pin-pin pada Arduino UNO

Pin Arduino UNO
Pin Arduino UNO

Pin power yang dapat dipakai adalah sebagai berikut:

  • Power Jack, umumnya menggunakan tegangan 7 volt sampai 12 volt. Dilengkapi dioda pengaman untuk melindungi polaritas terbalik.
  • USB Jack, menggunakan tegangan 5 volt dari komputer atau USB charger
  • pin VIN, umumnya menggunakan tegangan 7,5 volt sampai dengan 12 volt seperti power jack. Namun VIN ini tidak diamankan dengan dioda.

Uraian

Pemberian tegangan catu daya yang keliru dapat merusak Arduino UNO dapat merusak Arduino UNO. Pembahasan lengkapnya di artikel “Cara Merusak Arduino“. Berikut ini ringkasannya.

Rangkaian Catu Daya Arduino UNO
Rangkaian Catu Daya Arduino UNO

Regulator menggunakan IC MC33269D-5.0. Regulator ini memiliki tegangan drop 1,0 volt, sehingga tegangan minimum pada VIN adalah 5 volt  + 1 volt + 0,7 volt (tegangan pada D1). Jadi Jack power memerlukan tegangan minimum 6,7 volt. Untuk amannya dapat menggunakan tegangan tegangan 7 volt.

Tegangan maksimum pada IC MC33269D-5.0 adalah 20 volt , disebut di bagian Maximum Ratings pada datasheet. Jadi tegangan power jack harus dibatasi di bawah 20 volt supaya tidak merusak regulator MC33260D-5.0. Untuk amannya pakai saja 12 volt supaya regulator tidak terlalu panas.

Pin VIN menggunakan  regulator yang sama, namun tidak melalui dioda pengaman D1. Jadi kalau tegangan pada VIN terbalik, maka catu daya akan langsung rusak.

Referensi

Accu 12v 6ah berapa watt

Pertanyaan

  • accu 12v 6ah berapa watt
  • Aki motor 12 volt 6 Ah berapa watt?

Jawaban Ringkas

Sebagai contoh aki Yuasa YTX7L-BS

  • Aki Yuasa YTX7L-BS dapat memberikan 7,2 watt selama 10 jam
  • Aki Yuasa YTX7L-BS dapat memberikan 7,56 watt selama 20 jam
  • Aki Yuasa YTX7L-BS dapat memberikan 1200 watt selama beberapa detik

Jawaban Detail

Untuk mendapatkan kemampuan watt, kita perlu data besaran tegangan (dalam satuan volt) dan besaran arus (dalam ampere) baterai tersebut supaya dapat menghitung daya dalam satuan watt

Sebagai contoh aki 12 volt 6 Ah adalah Yuasa YTX7L-BS. Aki ini dipilih karena barangnya tersedia di Indonesia, dan datasheet detailnya tersedia di situs Yuasa di United Kingdom (UK).

Yuasa YTX7L-BS
Yuasa YTX7L-BS

Berikut data kemampuan aki tersebut, menurut datasheetnya

Performance Yuasa YTX7L-BS
Performance Yuasa YTX7L-BS

Kapasitas untuk 10 jam adalah 6 Ah. Arusnya berarti 6 Ah / 10 jam  = 0,6 ampere. Daya = P = V x I = 12 x 0,6 = 7,2 watt. Jadi aki ini dapat memberikan daya 7,2 watt selama 10 jam secara terus menerus.

Kapasitas untuk 20 jam adalah 6,3 Ah. Arusnya berarti kapasitas muatan dibagi waktu = 6,3 Ah / 20 jam = 0.315 A (ampere). Daya = P = V x I = 12 x 0.315 = 3,78 watt. Jadi aki ini dapat memberikan daya 3,78 watt selama 20 jam terus menerus.

CCA (Cold Cranking Amps) untuk baterai ini adalah 100 A, jadi aki ini dapat memberikan arus 100 ampere untuk beberapa detik, biasanya untuk starter di awal saja. Daya = P = V x I = 12 x 100 = 1200 watt.

Pada aki motor/mobil, pemakaian utama aki tersebut adalah untuk starter motor di awal yang memerlukan arus sangat besar. Setelah mesin motor/mobil menyala, pemakaian arus kecil saja. Batere jenis ini dikenal dengan baterai starter atau baterai SLI (Starting, Lighting, Ignition) . Struktur di dalam aki starter ini lebih untuk mencapai kemampuan arus yang besar, biasanya dengan menambah luas permukaan pada elektroda yang dipakai.

Untuk aki tipe  lain angkanya mesti disesuaikan dengan data performance yang tercantum datasheet aki tersebut. Untuk accu motor 5 Ah, perhitungannya ada di artikel “Aki Motor Berapa Watt

Kesimpulan

  • Aki Yuasa YTX7L-BS dapat memberikan 7,2 watt selama 10 jam
  • Aki Yuasa YTX7L-BS dapat memberikan 3,78 watt selama 20 jam
  • Aki Yuasa YTX7L-BS dapat memberikan 1200 watt selama beberapa detik

Referensi

 

Persamaan Dan Perbedaan Antara ATmega8535 Dan Arduino UNO

Persamaan dan perbedaan antara ATmega8535 dan Arduino UNO dapat diuraikan dengan membandingkan prosesor ATmega8353 dan prosesor ATmega328, karena Arduino UNO prosesor utamanya adalah ATmega328.

Berikut ini perbandingan ringkas antara keduanya.

Parameter ATmega8535 ATmega328
Clock 16 MHz 16 MHz
Memori Flash 8 KB 32 KB
Memori SRAM 512 byte 2 KB
Memori EEPROM 512 byte 1 KB
Counter 2 buah 8 bit timer/counter
1 buah 16 bit timer/counter
2 buah 8 bit timer/counter
1 buah 16 bit timer/counter
ADC 8 kanal, 10 bit 8 kanal , 10 bit
I/O pin 32 pin 23 pin
Kemasan 40 pin PDIP
44  lead TQFP
44 pad QFN/MLF
TQFP 32 lead
QFN/MLF 32 lead
Interupsi Eksternal External interrupt External interrupt
Pin Change Interrupt (PCINT)

Perbedaan utama

  • Memori Arduino UNO lebih besar (Flash: 32 KB vs 8 KB, SRAM: 2 KB vs 512 byte, EEPROM 1 KB vs 512 byte)
  • Jumlah pin I/O Arduino UNO lebih sedikit (23 pin vs 40 pin)
  • Interupsi eksternal di Arduino UNO lebih banyak , ada PCINT, sedangkan di ATmega8535 tidak ada PCINT

Parameter penting yang sama:

  • Clock sama, jadi kecepatan sama
  • CPU / prosesor praktis sama, hanya berbeda periferalnya saja
  • ADC sama
  • Timer sama
  • Interupsi kebanyakan sama, hanya berbeda sedikit.
ATmega8535 dengan kemasan PDIP
ATmega8535 dengan kemasan PDIP

 

Referensi

 

Kelebihan ESP32 dari Arduino Uno yang utama adalah

Kelebihan ESP32 dari Arduino Uno yang utama adalah sebagai berikut:

  • Prosesor ESP32 lebih cepat. ESP32 clocknya adalah 240 MHz, sedangkan Arduino UNO menggunakan ATmega328 dengan kecepatan maksimum 16 MHz
  • Jumlah core lebih banyak. ESP32 mempunyai 2 core, sedangkan ATmega328 hanya 1 core saja.
  • Memori Flash lebih banyak. ESP32 memiliki Flash Memory sebesar 1 MB sampai 16 MB. Arduino UNO memiliki memori flash sebesar 32 KB
  • Memori RAM lebih besar. ESP32 memiliki SRAM 520 KiB, sedangkan Arduino UNO memiliki SRAM 2 KB
  • ESP32 memiliki kemampuan nirkabel WiFi 802.11 dan Bluetooth
ESP32 Lolin-32 dari WEMOS
ESP32 Lolin-32 dari WEMOS
Arduino UNO
Arduino UNO Original made in Italy

Perbandingan ESP32, Arduino UNO dan beberapa prosesor serupa dapat dilihat di artikel “Mikroprosesor untuk FreeRTOS

Referensi

Besarnya ROM flash pada board Arduino Uno adalah sebesar

Besarnya memori flash pada board Arduino Uno adalah sebesar 32 kilobyte (32768 byte)

Istilah ROM sebenarnya tidak tepat, karena memori ROM (Read Only Memory) adalah memory yang sudah diprogram di pabrik dan tidak dapat diubah oleh pengguna. Lebih detail dapat dibaca di artikel “Memori Pada Sistem Mikroprosesor

Besar memori tersebut dapat dilihat di spesifikasi teknis (tech specs) dari situs Arduino (https://store.arduino.cc/usa/arduino-uno-rev3) , dengan screenshot sebagai berikut:

Spesifikasi Arduino UNO
Spesifikasi Arduino UNO

Dari spesifikasi tersebut dapat dilihat bahwa memori pada Arduino UNO adalah sebagai berikut:

  • Flash Memory sebesar 32 KB (32768 byte)
  • SRAM (Static Random Access Memory) sebesar 2 KB (2048 byte)
  • EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1 KB (1024 byte)

Kelebihan Arduino Uno dibandingkan dengan PC

Kelebihan Arduino UNO dibandingkan PC adalah sebagai berikut:

  • Ukuran kecil, hanya 68.6 mm x 53.4 mm
  • Bobot lebih ringan, hanya 25 gram.
  • Keperluan daya kecil, tegangan 5 volt dengan arus maksimum 200 mA pada pin VCC, jadi konsumsi daya maksimum adalah 1 watt
  • Harga murah. Arduino UNO R3 asli harganya sekitar Rp 400 ribu , sedangkan Arduino UNO KW harganya Rp 50 ribu sampai Rp 70 ribu.
  • Antar muka digital dan analog mudah. Pin-pin pada Arduino UNO dapat dengan mudah difungsikan sebagai input dan output digital maupun analog. Sedangkan pada PC cukup sulit untuk menambahkan input output digital maupun analog.

Uraian

Berikut ini spesifikasi Arduino UNO R3 menurut situs https://store.arduino.cc/usa/arduino-uno-rev3

Spesifikasi Arduino UNO
Spesifikasi Arduino UNO

Berikut ini batas maksimum arus dan tegangan pada ATmega328, diambil dari datasheet ATmega328.

Batas maksimum ATmega328
Batas maksimum ATmega328

Berikut ini contoh harga Arduino UNO asli di toko online

Harga Arduino UNO asli
Harga Arduino UNO asli

Berikut ini harga PC rakitan di toko online

Harga PC rakitan
Harga PC rakitan

 

Pada PC, untuk menambahkan kemampuan input / output digital dapat menggunakan modul FT2232HL yang disambungkan melalui port USB di PC/laptop.

FT2232HL Input output digital melalui USB
FT2232HL Input output digital melalui USB

Input output analog pada PC lebih rumit lagi, karena mesti menggunakan “Data Acquisition Board” yang dihubungkan melalui USB. Pada PC sebenarnya ada input output analog melalui port speaker dan mikrofon, namun hanya cocok untuk sinyal audio, tidak cocok untuk misalnya membaca data dari sensor.

Referensi

 

 

Arduino Uno R3 memiliki prosesor RISC yaitu

Arduino Uno R3 memiliki prosesor RISC yaitu ATmega328P.

Berikut ini contoh Arduino UNO R3

Arduino UNO dengan power supply dari power IN 9 volt
Arduino UNO dengan power supply dari power IN 9 volt
Arduino UNO R3
Arduino UNO R3

Prosesor utama pada Arduino UNO R3 adalah sebuah prosesor ATmega328P buatan Atmel. Prosesor ini termasuk jenis prosesor dengan arsitektur RISC.

Fitur prosesor ATmega328P

Berikut ini fitur prosesor ATmega328P yang dipakai di Arduino UNO

  • High performance, low power AVR® 8-bit microcontroller
  • Advanced RISC architecture
    • 131 powerful instructions – most single clock cycle execution
    • 32 x 8 general purpose working registers
    • Fully static operation
    • Up to 16MIPS throughput at 16MHz
    • On-chip 2-cycle multiplier
  • High endurance non-volatile memory segments
    • 32K bytes of in-system self-programmable flash program memory
    • 1Kbytes EEPROM
    • 2Kbytes internal SRAM
    • Write/erase cycles: 10,000 flash/100,000 EEPROM
    • Optional boot code section with independent lock bits
    • In-system programming by on-chip boot program
    • True read-while-write operation
    • Programming lock for software security
  • Peripheral features
    • Two 8-bit Timer/Counters with separate prescaler and compare mode
    • One 16-bit Timer/Counter with separate prescaler, compare mode,  and capture mode
    • Real time counter with separate oscillator
    • Six PWM channels
    • 8-channel 10-bit ADC in TQFP and QFN/MLF package
    • Temperature measurement
    • Programmable serial USART
    • Master/slave SPI serial interface
    • Byte-oriented 2-wire serial interface (Phillips I2C compatible)
    • Programmable watchdog timer with separate on-chip oscillator
    • On-chip analog comparator
    • Interrupt and wake-up on pin change
  • Special microcontroller features
    • Power-on reset and programmable brown-out detection
    • Internal calibrated oscillator
    • External and internal interrupt sources
    • Six sleep modes: Idle, ADC noise reduction, power-save, power-down, standby, and extended standby

Referensi

Arti dari instruksi const dalam Arduino IDE adalah

Arduino IDE menggunakan bahasa pemrograman C++

const adalah sebuah kata kunci pada bahasa pemrograman C++

Kata kunci const berasal dari kata ‘constant’, terjemahan dalam bahasa Indonesia adalah ‘konstan’, artinya tidak berubah.

Kata kunci const mengubah perilaku variabel menjadi hanya dapat dibaca (read only). Variabel tersebut dapat dipakai seperti variabel lain, hanya saja nilainya tidak dapat diubah. Jika ada kode yang mencoba untuk mengubah nilai variable tersebut, maka akan timbul pesan kesalahan pada compiler.

Sepintas penggunaan const mirip dengan #define. Perbedaan utamanya adalah bahwa penggunaan variabel dengan const akan mengikuti aturan variable scoping pada bahasa C++, jadi penggunaan variabel tersebut dapat dibatasi. Sedangkan #define tidak terbatas oleh scope, jadi berlaku di semua bagian kode.

Contoh Kode

Berikut ini adalah contoh penggunaan const. Variabel delay_value dipakai untuk menentukan jangka waktu delay.

const int delay_value=1000;

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(delay_value); // wait for a second
digitalWrite(LED_BUILTIN, LOW);
delay(delay_value); // wait for a second
}

Jika variable delay_value dicoba untuk diubah, maka akan muncul pedan kesalahan “assignment of read only variable ‘delay_value'” seperti di bawah ini.

Error karena mengubah variabel const
Error karena mengubah variabel const

Referensi