Isi kandungan:

Arduino EEPROM Tetapan Permulaan: 5 Langkah
Arduino EEPROM Tetapan Permulaan: 5 Langkah

Video: Arduino EEPROM Tetapan Permulaan: 5 Langkah

Video: Arduino EEPROM Tetapan Permulaan: 5 Langkah
Video: Tutorial Pemrograman Arduino [Medium] - Optimasi memori EEPROM, FLASH, SRAM di Arduino (2) 2024, Julai
Anonim
Image
Image
Apa itu EEPROM?
Apa itu EEPROM?

Hai semua, Setiap Arduino mempunyai memori kecil yang disebut EEPROM. Anda boleh menggunakannya untuk menyimpan tetapan untuk projek anda di mana nilai yang dipilih akan disimpan di antara kitaran kuasa dan mereka akan berada di sana pada masa anda menghidupkan Arduino. Saya mempunyai tipu muslihat yang akan mengajarkan kepada anda bagaimana anda dapat memasukkan satu set nilai lalai pada percubaan pertama anda, jadi teruskan untuk mengetahui caranya.

Langkah 1: Apa itu EEPROM?

Apa itu EEPROM?
Apa itu EEPROM?

EEPROM adalah simpanan memori kecil, yang nilainya disimpan walaupun papan Arduino dimatikan. Ini berfungsi seperti cakera keras kecil sehingga anda dapat menyimpan parameter untuk kali berikutnya anda menghidupkan peranti. Bergantung pada jenis papan Arduino, anda akan mempunyai jumlah storan yang berbeza untuk masing-masing, jadi misalnya Uno memiliki 1024 bait, Mega memiliki 4096 bita dan LilyPad memiliki 512 bait.

Penting untuk diperhatikan bahawa semua EEPROM mempunyai bilangan kitaran penulisan yang terhad. Atmel menentukan jangka hayat sekitar 100 000 kitaran tulis / hapus untuk EEPROM di Arduino. Ini mungkin terdengar seperti banyak penulisan, tetapi mudah untuk mencapai had ini jika anda membaca dan menulis dalam satu gelung. Setelah sesuatu lokasi ditulis dan dipadamkan berkali-kali ia akan menjadi tidak boleh dipercayai. Ia mungkin tidak mengembalikan data yang betul, atau mengembalikan nilai dari bit yang berdekatan.

Langkah 2: Import Perpustakaan

Import Perpustakaan
Import Perpustakaan
Import Perpustakaan
Import Perpustakaan
Import Perpustakaan
Import Perpustakaan

Untuk menggunakan memori ini, pertama-tama kami memasukkan perpustakaan yang disediakan oleh Arduino. Perpustakaan menyediakan dua kaedah: membaca dan menulis untuk tindakan yang sesuai. Fungsi baca menerima alamat yang ingin kita baca, sementara fungsi menulis menerima alamat dan nilai yang ingin kita tulis.

Dalam contoh kita, tujuannya adalah menyiapkan pelbagai tetapan pada setiap permulaan Arduino, jadi kita mulakan dengan menentukan susunan yang akan kita gunakan untuk penyimpanan dan menentukan alamat untuk setiap tetapan yang ingin kita simpan. Dalam cip di mana kami mempunyai 1024 bait, lokasi alamat adalah dari 0 hingga 1023.

Langkah 3: Tetapkan Bendera Permulaan

Tetapkan Bendera Permulaan
Tetapkan Bendera Permulaan

Caranya untuk menetapkan awal nilai default untuk pengaturan adalah dengan menggunakan salah satu alamat sebagai petunjuk sama ada tetapan telah diinisialisasi atau tidak. Saya telah menggunakan lokasi alamat terakhir untuk ini kerana sering tidak digunakan untuk perkara lain. Fungsi loadSettings akan memeriksa lokasi ini terlebih dahulu jika nilai yang tersimpan ada watak "T" dan jika tidak, ia akan ditetapkan dengan menetapkan, menulis nilai awal untuk masing-masing. Setelah selesai, sekarang akan menetapkan nilai lokasi di mana kita melacak tetapan yang diinisialisasi ke watak "T" dan lain kali ketika kita menghidupkan Arduino, kita tidak akan memasukkan nilai lagi, tetapi membaca data yang disimpan ke tatasusila kami.

Langkah 4: Mengemas kini Tetapan

Mengemas kini Tetapan
Mengemas kini Tetapan

Untuk mengemas kini nilai, kita dapat menggunakan fungsi tulis seperti yang kita lakukan pada inisialisasi, tetapi cara yang lebih baik adalah menggunakan fungsi kemas kini yang disediakan. Fungsi ini adalah bahawa ia terlebih dahulu memeriksa apakah nilai yang ingin kita simpan sama dengan yang sudah ada di EEPROM dan jika sudah, ia tidak akan dikemas kini. Dengan berbuat demikian, ia berusaha untuk meminimumkan jumlah operasi tulis untuk memperpanjang umur EEPROM.

Langkah 5: Nikmati

Selamat mencuba!
Selamat mencuba!
Selamat mencuba!
Selamat mencuba!

Saya harap Instructable ini dapat membantu anda dan anda berjaya mempelajari sesuatu. Kod sumber terdapat di halaman GitHub saya dan pautan ada di bawah. Sekiranya anda mempunyai sebarang cadangan, tinggalkan di komen dan jangan lupa untuk melanggan saluran YouTube saya untuk lebih banyak video yang serupa.

Disyorkan: