Showing posts with label foundations. Show all posts
Showing posts with label foundations. Show all posts

Tuesday, 29 November 2016

Penjelasan Memory pada Arduino

Ada tiga bagian memori pada mikrokontroler digunakan pada berbasis board avr Arduino :
  • Flash memory (ruang program), adalah di mana sketsa atau program Arduino disimpan. 
  • SRAM (static random access memory) adalah di mana sketsa atau program arduino menciptakan dan memanipulasi variabel ketika berjalan.
  • EEPROM adalah ruang memori yang dapat digunakan oleh programmer untuk menyimpan informasi jangka panjang.
 
 
 
Flash memori dan memori EEPROM adalah non-volatile (informasi tetap ada walaupun setelah daya dimatikan). SRAM termasuk volatile dan akan hilang ketika daya dimatikan.

Chip ATmega328 yang dipasang pada Arduino Uno memiliki jumlah memori sebagai berikut :

Flash  32k bytes (of which .5k is used for the bootloader)
SRAM   2k bytes
EEPROM 1k byte

ATmega2560 pada Arduino  Mega2560 memiliki ruang memori yang lebih besar :

Flash  256k bytes (of which 8k is used for the bootloader)
SRAM   8k bytes
EEPROM 4k byte

Perhatikan bahwa tidak ada banyak SRAM tersedia pada Arduino 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 SRAM (masing-masing karakter mengambil byte, ditambah terminator '\ 0'). Ini mungkin tidak tampak seperti banyak, tetapi tidak butuh waktu lama untuk sampai ke 2048, terutama jika Anda memiliki sejumlah besar teks untuk mengirim ke layar, atau tabel besar, misalnya.

Jika Anda kehabisan SRAM, program anda mungkin gagal dalam cara yang tak terduga; akan muncul untuk meng-upload berhasil, tetapi tidak berjalan, atau menjalankannya dengan aneh. Untuk memeriksa apakah hal ini terjadi, Anda dapat mencoba komentar keluar atau memperpendek string atau struktur data lain dalam sketsa Anda (tanpa mengubah kode). Jika kemudian berjalan sukses, Anda mungkin kehabisan SRAM. Ada beberapa hal yang dapat Anda lakukan untuk mengatasi masalah ini:

  • Jika sketsa Anda pada program yang berjalan pada (desktop / laptop) komputer, Anda dapat mencoba menggeser data atau perhitungan untuk komputer, mengurangi beban pada Arduino. 
  • Jika Anda memiliki tabel lookup atau array besar lainnya, menggunakan tipe data terkecil yang diperlukan untuk menyimpan nilai-nilai yang Anda butuhkan; misalnya, int mengambil dua byte, sedangkan byte menggunakan hanya satu (tetapi dapat menyimpan berbagai kecil dari nilai-nilai). 
  • Jika Anda tidak perlu memodifikasi string atau data sementara sketsa Anda berjalan, Anda dapat menyimpannya dalam flashdisk (program) memori bukan SRAM; untuk melakukan hal ini, menggunakan kata kunci PROGMEM.
Untuk menggunakan EEPROM, lihat library EEPROM.

Penjelasan PWM pada Arduino

PWM ( Pulse Width Modulation  )

Contoh penggunaan output analog dari (PWM) adalah Cara memudarkan intensitas cahaya LED. Ini tersedia dalam File -> Sketchbook -> Examples -> menu Analog dari software Arduino.

Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan hasil analog dengan cara digital. kontrol digital digunakan untuk membuat gelombang persegi, sinyal beralih antara on dan off. Pola on-off ini dapat mensimulasikan tegangan di antara full (5 Volt) dan off (0 Volt) dengan mengubah porsi waktu sinyal menghabiskan pada versus waktu itu sinyal menghabiskan off. Lamanya "on time" disebut sebagai lebar pulsa. Untuk mendapatkan nilai analog yang bervariasi, Anda dapat mengubah, atau memodulasi lebar pulsanya. Jika Anda mengulangi pola on-off ini cukup cepat dengan LED misalnya, hasilnya adalah jika sinyal tegangan stabil antara 0 dan 5V mampu mengendalikan kecerahan atau intensitas cahaya dari LED.

Dalam grafik di bawah, garis hijau mewakili periode waktu. periode ini adalah kebalikan dari frekuensi PWM. Dengan kata lain, dengan frekuensi PWM Arduino pada sekitar 500Hz, garis hijau akan terukur setiap 2 milidetik. Perinta untuk analogWrite() adalah pada skala 0-255, sehingga analogWrite(255) meminta siklus 100% (selalu), dan analogWrite(127) adalah siklus 50% (pada separuh waktu).



Setelah Anda mendapatkan contoh ini, ambil Arduino Anda dan ujikan. Apa yang Anda lakukan di sini adalah dasarnya memetakan waktu pada ruang. Untuk mata kita, gerakan mengaburkan setiap kedipan LED menjadi garis. LED memudar ke dalam dan keluar, garis-garis kecil akan tumbuh dan menyusut panjang. Sekarang Anda dapat melihat lebar pulsa. itulah Penjelasan PWM pada Arduino

Thursday, 24 November 2016

Foundations




Foundations memberikan beberapa pengetahuan khusus tentang prinsip-prinsip dan teknik yang berada di belakang platform Arduino, seluruh keluarganya dari board dan software yang Anda gunakan untuk memberitahu papan Anda apa yang harus dilakukan.

Jika Anda ingin mendapatkan beberapa pengetahuan sebelum Anda mulai menggunakan hal-hal, ini adalah tempat yang tepat. Jika Anda ingin melompat pada bermain-main dengan papan Anda kunjungi halaman Getting Started.

BASICS



Microcontrollers

  • Digital Pins: How the pins work and what it means for them to be configured as inputs or outputs.
  • Analog Input Pins: Details about the analog-to-digital conversion and other uses of the pins.
  • PWM: How the analogWrite() function simulates an analog output using pulse-width modulation.
  • Memory: The various types of memory available on the Arduino board.
  • Do you want to develop further the Arduino Hardware, or just build an Arduino on a breadboard? Check out the Hacking section.

Programming

  • Language Reference: Discover the what each term of the Arduino code language means.
  • Variables: Understand how to define and use variables in a Sketch.
  • Functions: Learn how to define and use functions in a Sketch.
  • Library: Using and installing Arduino Libraries.
  • Cores: Need to add a new board to the Arduino Software? Install the relate core and manage it.
  • Looking for help on how to extend the Arduino Software (IDE), like write your own Library? Check out the Hacking section.

Other Guides

  • Parallel to Serial conversion: Use a parallel to serial shift register if needing more digital input than there are on your Arduino.
  • Serial to Parallel conversion: Use a serial to parallel shift register if needing more digital output than there are on your Arduino.
  • Capacitance Meter: Demonstrates use of RC time constants to measure the value of a capacitor.
  • Bit Mask: Learn how access specific bits in a byte of data.
  • Visit the ITP Physical Computing site for more resources on learning the basics of Electronics, Sensors, Serial Communication, Motors and more.