TeachMeSoft

Memory

Memory

Memory (penyimpanan)


Catatan pada halaman ini adalah untuk semua papan kecuali Jatuh Tempo, yang memiliki arsitektur yang berbeda

Ada tiga kumpulan memori dalam mikrokontroler yang digunakan pada papan Arduino berbasis avr:
  • Flash memory(ruang program), adalah tempat sketsa Arduino disimpan.
  • SRAM (static random access memory) adalah tempat sketsa membuat dan memanipulasi variabel saat dijalankan.
  • EEPROM adalah ruang memori yang dapat digunakan programmer untuk menyimpan informasi jangka panjang.
Memori flash dan memori EEPROM tidak mudah menguap (informasi tetap ada setelah daya dimatikan). SRAM mudah menguap dan akan hilang saat daya disikluskan.

The ATmega328 Chip ditemukan di Uno memiliki jumlah berikut memori:

Flash 32k byte (yang .5k digunakan untuk bootloader)
SRAM 2k byte
EEPROM 1k byte

The ATmega2560 di Mega2560 memiliki ruang memori yang lebih besar:

Flash 256k byte (8k yang digunakan untuk bootloader)
SRAM 8k byte
EEPROM 4k byte

Perhatikan bahwa tidak banyak SRAM tersedia di Uno. Sangat mudah untuk menggunakan semuanya dengan memiliki banyak string dalam program Anda. Misalnya, deklarasi seperti:

char message[] = "I support the Cape Wind project.";

menempatkan 33 byte ke dalam SRAM (setiap karakter mengambil byte, ditambah terminator '\ 0'). Ini mungkin tidak terlihat banyak, tetapi tidak butuh waktu lama untuk mencapai 2048, terutama jika Anda memiliki banyak teks untuk dikirim ke layar, atau tabel pencarian yang besar, misalnya.

Jika Anda kehabisan SRAM, program Anda mungkin gagal dengan cara yang tidak terduga; tampaknya berhasil diunggah, tetapi tidak berjalan, atau berjalan dengan aneh. Untuk memeriksa apakah ini terjadi, Anda dapat mencoba mengomentari atau memperpendek string atau struktur data lainnya dalam sketsa Anda (tanpa mengubah kode). Jika kemudian berjalan dengan sukses, Anda mungkin kehabisan SRAM. Ada beberapa hal yang dapat Anda lakukan untuk mengatasi masalah ini:
  • Jika sketsa Anda berbicara dengan program yang berjalan di komputer (desktop / laptop), Anda dapat mencoba menggeser data atau perhitungan ke komputer, mengurangi beban di Arduino.
  • Jika Anda memiliki tabel pencarian atau array besar lainnya, gunakan tipe data terkecil yang diperlukan untuk menyimpan nilai yang Anda butuhkan; misalnya, sebuah int membutuhkan dua byte, sedangkan byte hanya menggunakan satu byte (tetapi dapat menyimpan rentang nilai yang lebih kecil).
  • Jika Anda tidak perlu memodifikasi string atau data saat sketsa Anda berjalan, Anda dapat menyimpannya dalam memori flash (program) alih-alih SRAM; untuk melakukan ini, gunakan kata kunci PROGMEM .
  • Untuk menggunakan EEPROM, lihat perpustakaan EEPROM .

REFERENSI

  • [1] https://www.arduino.cc/en/Tutorial/Memory


    PWM

    PWM


    PWM


    Contoh Fading menunjukkan penggunaan output analog (PWM) untuk memudar LED. Ini tersedia di File-> Sketchbook-> Examples-> Menu analog dari perangkat lunak Arduino.

    Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan hasil analog dengan cara digital. Kontrol digital digunakan untuk membuat gelombang persegi, sinyal yang diaktifkan antara hidup dan mati. Pola hidup-mati ini dapat mensimulasikan voltase antara hidup penuh (5 Volts) dan mati (0 Volts) dengan mengubah porsi waktu yang dihabiskan sinyal versus waktu yang dihabiskan sinyal. Durasi "tepat waktu" disebut lebar pulsa. Untuk mendapatkan berbagai nilai analog, Anda mengubah, atau memodulasi, lebar pulsa itu. Jika Anda mengulangi pola hidup-mati ini dengan cukup cepat dengan LED misalnya, hasilnya adalah seolah-olah sinyal tegangan stabil antara 0 dan 5v mengendalikan kecerahan LED.

    Dalam grafik di bawah ini, garis hijau mewakili periode waktu reguler. Durasi atau periode ini adalah kebalikan dari frekuensi PWM. Dengan kata lain, dengan frekuensi PWM Arduino sekitar 500Hz, garis hijau akan mengukur masing-masing 2 milidetik. Panggilan ke analogWrite () dalam skala 0 - 255, sehingga analogWrite (255) meminta siklus tugas 100% (selalu aktif), dan analogWrite (127) adalah siklus tugas 50% (separuh waktu) untuk contoh.




    Setelah Anda menjalankan contoh ini, ambil arduino Anda dan kocok bolak-balik. Apa yang Anda lakukan di sini pada dasarnya memetakan waktu melintasi ruang. Bagi mata kami, gerakan mengaburkan setiap LED berkedip menjadi satu garis. Saat LED memudar masuk dan keluar, garis-garis kecil itu akan tumbuh dan menyusut panjangnya. Sekarang Anda melihat lebar pulsa.


    Sumber

    • [1] https://www.arduino.cc/en/Tutorial/PWM


      Analog Input Pins

      Analog Input Pins

      Penjelasan tentang pin input analog pada chip Arduino ( ATmega8 , ATmega168 , ATmega328P , atau ATmega1280 ).

      A/D converter (Konverter A / D)


      The ATmega kontroler digunakan untuk Arduino mengandung onboard 6 channel (8 saluran pada Mini dan Nano, 16 di Mega) analog-ke-digital (A / D) converter. Konverter memiliki resolusi 10 bit, mengembalikan bilangan bulat dari 0 hingga 1023. Sementara fungsi utama pin analog untuk sebagian besar pengguna Arduino adalah membaca sensor analog, pin analog juga memiliki semua fungsi pin input / output (GPIO) tujuan umum. (sama dengan pin digital 0 - 13).

      Akibatnya, jika pengguna membutuhkan pin output input tujuan umum yang lebih banyak, dan semua pin analog tidak digunakan, pin analog dapat digunakan untuk GPIO.


      Pin mapping (Pemetaan pin)

      Pin analog dapat digunakan secara identik dengan pin digital, menggunakan alias A0 (untuk input analog 0), A1, dll. Misalnya, kode akan terlihat seperti ini untuk mengatur pin analog 0 ke output, dan untuk mengaturnya TINGGI :

      pinMode (A0, OUTPUT);
      digitalWrite (A0, HIGH);
      

      Pull-up resistors (Resistor penarik)


      Pin analog juga memiliki resistor pull-up, yang bekerja secara identik dengan pull-up resistor pada pin digital. Mereka diaktifkan dengan mengeluarkan perintah seperti

      pinMode (A0, INPUT_PULLUP); // atur pull-up pada pin analog 0 
      Perlu diketahui bahwa menyalakan pull-up akan memengaruhi nilai yang dilaporkan oleh analogRead ().


      Details and Caveats (Detail dan Peringatan)


      Perintah analogRead tidak akan berfungsi dengan benar jika pin sebelumnya telah diatur ke output, jadi jika ini yang terjadi, atur kembali ke input sebelum menggunakan analogRead. Demikian pula jika pin telah disetel ke TINGGI sebagai output, resistor pull-up akan diatur, ketika beralih kembali ke input.

      The ATmega datasheet juga memperingatkan terhadap beralih pin analog dalam jarak temporal yang dekat untuk membuat A / D pembacaan (analogRead) pada pin analog lainnya. Ini dapat menyebabkan kebisingan listrik dan memperkenalkan jitter dalam sistem analog. Mungkin diinginkan, setelah memanipulasi pin analog (dalam mode digital), untuk menambahkan penundaan singkat sebelum menggunakan analogRead () untuk membaca pin analog lainnya.


      REFERENSI

      • [1] https://www.arduino.cc/en/Tutorial/AnalogInputPins


        Digital Pins



        Pin pada Arduino dapat dikonfigurasikan sebagai input atau output. Dokumen ini menjelaskan fungsi pin dalam mode tersebut. Sementara judul dokumen ini mengacu pada pin digital, penting untuk dicatat bahwa sebagian besar pin analog Arduino (Atmega), dapat dikonfigurasi, dan digunakan, dengan cara yang persis sama dengan pin digital.

        Properti Pin Dikonfigurasi sebagai INPUT


        Arduino (Atmega) pin default ke input, sehingga mereka tidak perlu secara eksplisit dinyatakan sebagai input dengan pinMode () ketika Anda menggunakannya sebagai input. Pin yang dikonfigurasi dengan cara ini dikatakan dalam keadaan impedansi tinggi . Pin input membuat permintaan yang sangat kecil pada rangkaian yang diambil sampelnya, setara dengan resistor seri 100 megohm di depan pin. Ini berarti bahwa dibutuhkan sedikit arus untuk memindahkan pin input dari satu keadaan ke keadaan lain, dan dapat membuat pin berguna untuk tugas-tugas seperti menerapkan sensor sentuh kapasitif , membaca LED sebagai fotodioda , atau membaca sensor analog dengan skema seperti RCTime.

        Ini juga berarti, bahwa pin yang dikonfigurasikan sebagai pinMode (pin, INPUT) dengan tidak ada yang terhubung dengannya, atau dengan kabel yang terhubung ke mereka yang tidak terhubung ke sirkuit lain, akan melaporkan perubahan acak yang tampak dalam keadaan pin, mengambil suara listrik dari lingkungan, atau kopling kapasitif keadaan pin terdekat.


        Pull up (menarik) Resistor dengan pin dikonfigurasi sebagai INPUT

        Seringkali berguna untuk mengarahkan pin input ke kondisi yang diketahui jika tidak ada input. Ini dapat dilakukan dengan menambahkan resistor pullup (ke + 5V), atau resistor pull-down (resistor ke ground) pada input. Sebuah resistor 10K adalah nilai yang baik untuk resistor pullup atau pulldown.


        Properti Pin Dikonfigurasi sebagai INPUT_PULLUP


        Ada 20K resistor pullup yang dibangun ke dalam chip Atmega yang dapat diakses dari perangkat lunak. Resistor pull-in bawaan ini diakses dengan mengatur pinMode () sebagai INPUT_PULLUP. Ini secara efektif membalikkan perilaku mode INPUT, di mana TINGGI berarti sensor mati, dan RENDAH berarti sensor menyala.

        Nilai penarikan ini tergantung pada mikrokontroler yang digunakan. Pada sebagian besar papan berbasis AVR, nilainya dijamin antara 20kΩ dan 50kΩ. Di Arduino Due, jaraknya antara 50kΩ dan 150kΩ. Untuk nilai yang tepat, lihat lembar data mikrokontroler di papan Anda.

        Saat menghubungkan sensor ke pin yang dikonfigurasi dengan INPUT_PULLUP, ujung lainnya harus terhubung ke ground. Dalam kasus sakelar sederhana, ini menyebabkan pin membaca TINGGI saat sakelar terbuka, dan RENDAH saat sakelar ditekan.

        Resistor pullup menyediakan arus yang cukup untuk meredupkan LED yang terhubung ke pin yang telah dikonfigurasikan sebagai input. Jika LED dalam suatu proyek tampaknya berfungsi, tetapi sangat redup, ini mungkin apa yang sedang terjadi.

        Resistor penarik dikendalikan oleh register yang sama (lokasi memori chip internal) yang mengontrol apakah pin TINGGI atau RENDAH. Akibatnya, pin yang dikonfigurasi untuk memiliki resistor pullup dinyalakan ketika pin adalah INPUT, akan memiliki pin yang dikonfigurasi sebagai TINGGI jika pin kemudian beralih ke OUTPUT dengan pinMode (). Ini bekerja di arah lain juga, dan pin output yang dibiarkan dalam status TINGGI akan memiliki resistor pullup yang ditetapkan jika beralih ke input dengan pinMode ().

        Sebelum Arduino 1.0.1, dimungkinkan untuk mengkonfigurasi pull-up internal dengan cara berikut:

        pinMode (pin, INPUT); // atur pin ke input
        digitalWrite (pin, HIGH); // nyalakan resistor pullup
        
        
        CATATAN: Pin digital 13 lebih sulit digunakan sebagai input digital daripada pin digital lainnya karena memiliki LED dan resistor yang terpasang padanya yang disolder ke papan pada sebagian besar papan. Jika Anda mengaktifkan resistor pull-up 20k internal, itu akan menggantung di sekitar 1,7V bukannya 5V yang diharapkan karena LED onboard dan resistor seri menarik level tegangan ke bawah, yang berarti ia selalu mengembalikan RENDAH. Jika Anda harus menggunakan pin 13 sebagai input digital, atur pinMode () ke INPUT dan gunakan resistor pull down eksternal.


        Properti Pin Dikonfigurasi sebagai OUTPUT


        Pin yang dikonfigurasikan sebagai OUTPUT dengan pinMode () dikatakan dalam keadaan impedansi rendah. Ini berarti bahwa mereka dapat menyediakan sejumlah besar arus ke sirkuit lain. Atmega pin dapat sumber (memberikan arus positif) atau tenggelam (memberikan arus negatif) hingga 40 mA (miliamps) dari arus ke perangkat / sirkuit lain. Ini adalah arus yang cukup untuk menerangi LED (jangan lupa resistor seri), atau menjalankan banyak sensor, misalnya, tetapi arus yang tidak cukup untuk menjalankan sebagian besar relai, solenoida, atau motor.

        Sirkuit pendek pada pin Arduino, atau mencoba menjalankan perangkat dengan arus tinggi darinya, dapat merusak atau menghancurkan transistor keluaran dalam pin, atau merusak seluruh chip Atmega. Seringkali ini akan menghasilkan pin "mati" pada mikrokontroler tetapi chip yang tersisa masih berfungsi dengan baik. Karena alasan ini, sebaiknya hubungkan pin OUTPUT ke perangkat lain dengan resistor 470Ω atau 1k, kecuali diperlukan penarikan arus maksimum dari pin tersebut untuk aplikasi tertentu.


        REFERENSI

        • [1] https://www.arduino.cc/en/Tutorial/DigitalPins


          Sketch

          Sketch

          Dalam panduan memulai ( Windows , Mac OS X , Linux ), Anda mengunggah sketsa yang berkedip LED. Dalam tutorial ini, Anda akan mempelajari cara kerja setiap bagian sketsa itu.

          Sebuah sketsa adalah nama yang Arduino menggunakan untuk suatu program. Ini adalah unit kode yang diunggah dan dijalankan di papan Arduino.

          Comments (Komentar)


          Beberapa baris pertama sketsa Blink adalah komentar :

          /*
           * Blink
           *
           * The basic Arduino example.  Turns on an LED on for one second,
           * then off for one second, and so on...  We use pin 13 because,
           * depending on your Arduino board, it has either a built-in LED
           * or a built-in resistor so that you need only an LED.
           *
           * http://www.arduino.cc/en/Tutorial/Blink
           */
          

          Segala sesuatu di antara   /*  dan   */   diabaikan oleh Arduino saat menjalankan sketsa (   *   pada awal setiap baris hanya ada untuk membuat komentar terlihat cantik, dan tidak diperlukan). Itu ada di sana untuk orang-orang yang membaca kode: untuk menjelaskan apa yang dilakukan program, cara kerjanya, atau mengapa ditulis seperti apa adanya. Ini adalah praktik yang baik untuk mengomentari sketsa Anda, dan menjaga agar komentar selalu diperbarui saat Anda memodifikasi kode. Ini membantu orang lain untuk belajar dari atau memodifikasi kode Anda.

          Ada gaya lain untuk komentar pendek, satu baris. Ini dimulai dengan    //    dan berlanjut ke akhir baris. Misalnya, di baris:

          
          
          int ledPin = 13 ;                // LED terhubung ke pin digital 13
          
          
          

          pesan "LED terhubung ke pin digital 13" adalah komentar.


          Variables (variabel)


          Sebuah variabel adalah tempat untuk menyimpan sepotong data. Ini memiliki nama, tipe, dan nilai. Misalnya, baris dari sketsa Blink di atas menyatakan variabel dengan nama    ledPin   , jenis    int   , dan nilai awal 13. Ini digunakan untuk menunjukkan pin Arduino yang terhubung dengan LED. Setiap kali nama    ledPin    muncul dalam kode, nilainya akan diambil. Dalam hal ini, orang yang menulis program bisa memilih untuk tidak repot membuat    ledPin    variabel dan hanya menulis 13 di mana saja mereka perlu menentukan nomor pin. Keuntungan menggunakan variabel adalah lebih mudah untuk memindahkan LED ke pin yang berbeda: Anda hanya perlu mengedit satu baris yang menetapkan nilai awal ke variabel.

          Namun, sering kali, nilai variabel akan berubah saat sketsa berjalan. Misalnya, Anda bisa menyimpan nilai yang dibaca dari input ke variabel. Ada informasi lebih lanjut di tutorial Variables .


          Functions (fungsi)


          Sebuah fungsi (atau dikenal sebagai prosedur atau sub-rutin ) adalah sepotong bernama kode yang dapat digunakan dari tempat lain di sketsa. Misalnya, inilah definisi    setup()    fungsi dari contoh Blink:

          void setup ( )
          {
            pinMode ( ledPin , OUTPUT ) ;      // setel pin digital sebagai output
          }
          

          Baris pertama memberikan informasi tentang fungsi, seperti namanya, "pengaturan". Teks sebelum dan sesudah nama menentukan jenis dan parameter pengembaliannya: ini akan dijelaskan nanti. Kode antara   {    dan    }    disebut tubuh fungsi: apa fungsi itu.

          Anda dapat memanggil fungsi yang sudah didefinisikan (baik dalam sketsa Anda atau sebagai bagian dari bahasa Arduino ). Misalnya, saluran    pinMode(ledPin, OUTPUT);    memanggil     pinMode()    fungsi, dengan memberinya dua parameter :    ledPin    dan    OUTPUT    . Parameter ini digunakan oleh    pinMode()    fungsi untuk memutuskan pin dan mode mana yang akan ditetapkan.


          pinMode(), digitalWrite(), and delay()

          The    pinMode()    Fungsi mengkonfigurasi pin baik sebagai input atau output. Untuk menggunakannya, berikan nomor pin yang harus dikonfigurasi dan INPUT atau OUTPUT yang konstan. Saat dikonfigurasikan sebagai input, pin dapat mendeteksi keadaan sensor seperti tombol tekan; ini dibahas dalam tutorial selanjutnya . Sebagai output, ia dapat menggerakkan aktuator seperti LED.

          The    digitalWrite()    fungsi output nilai pada pin. Misalnya, baris:

          digitalWrite ( ledPin , HIGH ) ;
          

          atur   ledPin  (pin 13) ke HIGH, atau 5 volt. Menulis LOW ke pin menghubungkannya ke ground, atau 0 volt.

          The    delay()    menyebabkan Arduino untuk menunggu jumlah tertentu milidetik sebelum melanjutkan ke baris berikutnya. Ada 1000 milidetik dalam satu detik, jadi barisnya:

          delay(1000);
          

          menciptakan penundaan satu detik.


          setup() and loop()


          Ada dua fungsi khusus yang merupakan bagian dari setiap sketsa Arduino:    setup()    dan    loop()     . The    setup()    disebut sekali, ketika mulai sketsa. Ini adalah tempat yang baik untuk melakukan tugas pengaturan seperti mengatur mode pin atau menginisialisasi perpustakaan. The loop()fungsi disebut berulang dan jantung yang paling sketsa. Anda harus memasukkan kedua fungsi dalam sketsa Anda, bahkan jika Anda tidak membutuhkannya untuk apa pun.


          REFERENSI

          • [1] https://www.arduino.cc/en/Tutorial/Sketch


            Pengenalan Arduino

            Pengenalan Arduino

            Apa itu Arduino?


            Arduino adalah platform elektronik sumber terbuka berdasarkan perangkat keras dan lunak yang mudah digunakan. Papan Arduino dapat membaca input - cahaya pada sensor, jari pada tombol, atau pesan Twitter - dan mengubahnya menjadi output - mengaktifkan motor, menyalakan LED, menerbitkan sesuatu secara online. Anda dapat memberi tahu dewan Anda apa yang harus dilakukan dengan mengirimkan serangkaian instruksi ke mikrokontroler di papan tulis. Untuk melakukannya, Anda menggunakan bahasa pemrograman Arduino (berdasarkan Pengkabelan ), dan Perangkat Lunak Arduino (IDE) , berdasarkan Pemrosesan .

            Selama bertahun-tahun Arduino telah menjadi otak ribuan proyek, dari objek sehari-hari hingga instrumen ilmiah yang kompleks. Komunitas pembuat di seluruh dunia - pelajar, penggemar, seniman, programmer, dan profesional - telah berkumpul di sekitar platform open-source ini, kontribusi mereka telah menambah jumlah pengetahuan yang dapat diakses yang luar biasa yang dapat sangat membantu bagi para pemula dan pakar.

            Arduino dilahirkan di Ivrea Interaction Design Institute sebagai alat yang mudah untuk membuat prototipe cepat, yang ditujukan untuk siswa tanpa latar belakang dalam bidang elektronik dan pemrograman. Segera setelah mencapai komunitas yang lebih luas, papan Arduino mulai berubah untuk beradaptasi dengan kebutuhan dan tantangan baru, membedakan penawarannya dari papan 8-bit sederhana hingga produk untuk aplikasi IoT , wearable, pencetakan 3D, dan lingkungan tertanam. Semua papan Arduino sepenuhnya open-source, memberdayakan pengguna untuk membangunnya secara mandiri dan akhirnya menyesuaikannya dengan kebutuhan khusus mereka. Perangkat lunak ini juga bersifat open-source, dan terus berkembang melalui kontribusi pengguna di seluruh dunia.


            Kenapa Arduino?


            Berkat pengalaman pengguna yang sederhana dan dapat diakses, Arduino telah digunakan di ribuan proyek dan aplikasi yang berbeda. Perangkat lunak Arduino mudah digunakan untuk pemula, namun cukup fleksibel untuk pengguna tingkat lanjut. Ini berjalan di Mac, Windows, dan Linux. Guru dan siswa menggunakannya untuk membangun instrumen ilmiah berbiaya rendah, untuk membuktikan prinsip-prinsip kimia dan fisika, atau untuk memulai pemrograman dan robot. Desainer dan arsitek membangun prototipe interaktif, musisi dan seniman menggunakannya untuk instalasi dan untuk bereksperimen dengan instrumen musik baru. Pembuat, tentu saja, menggunakannya untuk membangun banyak proyek yang dipamerkan di Maker Faire, misalnya. Arduino adalah alat utama untuk mempelajari hal-hal baru. Siapa pun - anak-anak, penggemar, seniman, programmer - dapat mulai bermain-main hanya dengan mengikuti petunjuk langkah demi langkah dari sebuah kit,

            Ada banyak platform mikrokontroler dan mikrokontroler lain yang tersedia untuk komputasi fisik. Parallax Basic Stamp, BX-24 Netmedia, Phidgets, Handyboard MIT, dan banyak lainnya menawarkan fungsionalitas serupa. Semua alat ini mengambil perincian berantakan pemrograman mikrokontroler dan membungkusnya dalam paket yang mudah digunakan. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, tetapi menawarkan beberapa keuntungan bagi guru, siswa, dan amatir yang tertarik terhadap sistem lain:
            • Murah Papan Arduino relatif murah dibandingkan platform mikrokontroler lainnya. Versi paling murah dari modul Arduino dapat dirakit dengan tangan, dan bahkan modul Arduino pra-rakitan harganya kurang dari $ 50
            • Cross-platform
              Arduino Software (IDE) berjalan pada sistem operasi Windows, Macintosh OSX, dan Linux. Sebagian besar sistem mikrokontroler terbatas pada Windows.
            • Lingkungan pemrograman yang sederhana dan jelas
              Arduino Software (IDE) mudah digunakan untuk pemula, namun cukup fleksibel bagi pengguna tingkat lanjut untuk memanfaatkannya juga. Bagi para guru, ini berdasarkan pada lingkungan pemrograman Pemrosesan, sehingga siswa yang belajar memprogram di lingkungan itu akan terbiasa dengan cara kerja Arduino IDE.
            • Perangkat lunak open source dan extensible
              Perangkat lunak Arduino diterbitkan sebagai alat sumber terbuka, tersedia untuk ekstensi oleh pemrogram berpengalaman. Bahasa dapat diperluas melalui pustaka C ++, dan orang yang ingin memahami detail teknis dapat membuat lompatan dari Arduino ke bahasa pemrograman AVR C yang menjadi basisnya. Demikian pula, Anda dapat menambahkan kode AVR-C langsung ke program Arduino Anda jika Anda mau.
            • Sumber terbuka dan perangkat keras yang dapat dikembangkan
              Rencana papan Arduino diterbitkan di bawah lisensi Creative Commons, sehingga desainer sirkuit yang berpengalaman dapat membuat versi modul mereka sendiri, memperluasnya dan memperbaikinya. Bahkan pengguna yang relatif tidak berpengalaman dapat membangun versi papan tempat memotong roti modul untuk memahami cara kerjanya dan menghemat uang.


            REFERENSI

            • [1] https://www.arduino.cc/en/Guide/Environment
            • [2] https://www.arduino.cc/en/Guide/HomePage 
            • [3] https://www.arduino.cc/reference/en/