Daftar Isi:

EEPROM Inbuilt Arduino Anda: 6 Langkah
EEPROM Inbuilt Arduino Anda: 6 Langkah

Video: EEPROM Inbuilt Arduino Anda: 6 Langkah

Video: EEPROM Inbuilt Arduino Anda: 6 Langkah
Video: EEPROM Memory - Store Anything - Arduino101 2024, Juli
Anonim
EEPROM bawaan Arduino Anda
EEPROM bawaan Arduino Anda

Pada artikel ini kita akan memeriksa EEPROM internal di papan Arduino kita. Apa yang dimaksud dengan EEPROM beberapa dari Anda mungkin mengatakan? EEPROM adalah Memori Hanya Baca yang Dapat Diprogram Secara Elektrik yang Dapat Dihapus.

Ini adalah bentuk memori non-volatile yang dapat mengingat hal-hal dengan daya dimatikan, atau setelah mengatur ulang Arduino. Keindahan dari jenis memori ini adalah kita dapat menyimpan data yang dihasilkan dalam sketsa secara lebih permanen.

Mengapa Anda menggunakan EEPROM internal? Untuk situasi di mana data yang unik untuk suatu situasi membutuhkan rumah yang lebih permanen. Misalnya, menyimpan nomor seri unik dan tanggal pembuatan proyek komersial berbasis Arduino – fungsi sketsa dapat menampilkan nomor seri pada LCD, atau data dapat dibaca dengan mengunggah ‘sketsa layanan’. Atau Anda mungkin perlu menghitung kejadian tertentu dan tidak mengizinkan pengguna untuk mengatur ulang – seperti odometer atau penghitung siklus operasi.

Langkah 1: Jenis Data Apa yang Dapat Disimpan?

Jenis Data Apa yang Dapat Disimpan?
Jenis Data Apa yang Dapat Disimpan?

Apa pun yang dapat direpresentasikan sebagai byte data. Satu byte data terdiri dari delapan bit data. Sebuah bit dapat berupa on (nilai 1) atau off (nilai 0), dan sempurna untuk mewakili angka dalam bentuk biner. Dengan kata lain, bilangan biner hanya dapat menggunakan nol dan satu untuk mewakili suatu nilai. Jadi biner juga dikenal sebagai "basis-2", karena hanya dapat menggunakan dua digit.

Bagaimana bilangan biner dengan hanya menggunakan dua digit mewakili bilangan yang lebih besar? Ini menggunakan banyak satu dan nol. Mari kita periksa bilangan biner, katakanlah 10101010. Karena ini adalah bilangan basis-2, setiap digit mewakili 2 pangkat x, dari x=0 dan seterusnya.

Langkah 2:

Gambar
Gambar

Lihat bagaimana setiap digit bilangan biner dapat mewakili bilangan basis-10. Jadi bilangan biner di atas mewakili 85 di basis-10 – nilai 85 adalah jumlah dari nilai basis-10. Contoh lain – 11111111 dalam biner sama dengan 255 di basis 10.

Langkah 3:

Sekarang setiap digit dalam bilangan biner itu menggunakan satu 'bit' memori, dan delapan bit menghasilkan satu byte. Karena keterbatasan internal mikrokontroler di papan Arduino kami, kami hanya dapat menyimpan angka 8-bit (satu byte) di EEPROM.

Ini membatasi nilai desimal dari angka yang berada di antara nol dan 255. Selanjutnya terserah Anda untuk memutuskan bagaimana data Anda dapat direpresentasikan dengan rentang angka tersebut. Jangan biarkan hal itu menunda Anda – angka yang disusun dengan cara yang benar dapat mewakili hampir semua hal! Ada satu batasan yang harus diperhatikan – berapa kali kita dapat membaca atau menulis ke EEPROM. Menurut pabrikan Atmel, EEPROM bagus untuk 100.000 siklus baca/tulis (lihat lembar data).

Langkah 4:

Sekarang kita tahu bit dan byte kita, berapa banyak byte yang dapat disimpan di mikrokontroler Arduino kita? Jawabannya bervariasi tergantung pada model mikrokontroler. Sebagai contoh:

  • Papan dengan Atmel ATmega328, seperti Arduino Uno, Uno SMD, Nano, Lilypad, dll. – 1024 byte (1 kilobyte)
  • Papan dengan Atmel ATmega1280 atau 2560, seperti seri Arduino Mega – 4096 byte (4 kilobyte)
  • Papan dengan Atmel ATmega168, seperti Arduino Lilypad asli, Nano lama, Diecimila dll – 512 byte.

Jika Anda tidak yakin, lihat indeks perangkat keras Arduino atau tanyakan kepada pemasok papan Anda. Jika Anda membutuhkan lebih banyak penyimpanan EEPROM daripada yang tersedia dengan mikrokontroler Anda, pertimbangkan untuk menggunakan EEPROM I2C eksternal.

Pada titik ini kita sekarang memahami jenis data apa dan berapa banyak yang dapat disimpan di EEPROM Arduino kita. Sekarang saatnya untuk mewujudkannya. Seperti dibahas sebelumnya, ada jumlah terbatas ruang untuk data kami. Dalam contoh berikut, kita akan menggunakan papan Arduino khas dengan ATmega328 dengan penyimpanan EEPROM 1024 byte.

Langkah 5:

Untuk menggunakan EEPROM, perpustakaan diperlukan, jadi gunakan perpustakaan berikut dalam sketsa Anda:

#sertakan "EEPROM.h"

Sisanya sangat sederhana. Untuk menyimpan sepotong data, kami menggunakan fungsi berikut:

EEPROM.tulis(a,b);

Parameter a adalah posisi di EEPROM untuk menyimpan integer (0~255) data b. Dalam contoh ini, kami memiliki penyimpanan memori 1024 byte, jadi nilai a adalah antara 0 dan 1023. Untuk mengambil sepotong data sama sederhananya, gunakan:

z = EEPROM.baca(a);

Dimana z adalah bilangan bulat untuk menyimpan data dari posisi EEPROM a. Sekarang untuk melihat contoh.

Langkah 6:

Gambar
Gambar

Sketsa ini akan membuat angka acak antara 0 dan 255, menyimpannya di EEPROM, kemudian mengambil dan menampilkannya di monitor serial. Variabel EEsize adalah batas atas ukuran EEPROM Anda, jadi (misalnya) ini akan menjadi 1024 untuk Arduino Uno, atau 4096 untuk Mega.

// Demonstrasi EEPROM internal Arduino

#termasuk

int zz; int EEukuran = 1024; // ukuran dalam byte EEPROM papan Anda

batalkan pengaturan()

{ Serial.begin(9600); randomSeed(analogRead(0)); } void loop() { Serial.println("Menulis bilangan acak…"); for (int i = 0; i < EEsize; i++) { zz=random(255); EEPROM.tulis(i, zz); } Serial.println(); for (int a=0; a < EEsize; a++) { zz = EEPROM.read(a); Serial.print("Posisi EEPROM: "); Serial.print(a); Serial.print(" berisi "); Serial.println(zz); penundaan(25); } }

Output dari serial monitor akan muncul, seperti terlihat pada gambar.

Jadi begitulah, cara lain yang berguna untuk menyimpan data dengan sistem Arduino kami. Meskipun bukan tutorial yang paling menarik, ini pasti berguna.

Posting ini dipersembahkan oleh pmdway.com – semuanya untuk pembuat dan penggemar elektronik, dengan pengiriman gratis ke seluruh dunia.

Direkomendasikan: