Güç Çevrimleri Arasında Verileri Kaydetmek İçin Arduino EEPROM Nasıl Kullanılır

  • Harry James
  • 0
  • 2175
  • 288
reklâm

Arduino kapatıldığında veri depolayabildiğini biliyor muydunuz? Flash bellekte saklanan kroki değil. EEPROM'daki değişken verilerden bahsediyorum. Size nasıl okuyup yazacağınızı ve projeleriniz için neler yapabileceğini gösterdiğim gibi bana katılın.

Arduino'da yeniyseniz, yeni başlayanlar kılavuzumuza göz attığınızdan emin olun Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino, esnek, kullanımı kolay donanıma dayalı açık kaynaklı bir elektronik prototip platformudur. ve yazılım. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar yaratmak isteyen herkes için hazırlanmıştır.. .

EEPROM Nedir??

EEPROM kısaltması elektriksel olarak silinebilir programlanabilir salt okunur bellek. Bir tür kalıcı bellek. Bunların ne anlama geldiğini anlamadıysanız endişelenmeyin. Sadece güç kesilmiş olsa bile veriyi saklar (RAM'den farklı olarak RAM Hızlı ve Kirli Kılavuzu: Bilmeniz Gerekenler RAM Hızlı ve Kirli Kılavuzu: Bilmeniz Gerekenler RAM her bilgisayarın çok önemli bir bileşenidir, ancak kafa karıştırıcı olun, anlayacağınız kolay anlaşılır terimlerle parçalara ayırıyoruz. Bu, verileri tutmak için elektriğe ihtiyaç duyuyor).

EEPROM, Ahududu Pi İnceleme için Matrix Oluşturucu Matrix Oluşturucusu'nda kullanılan Ahududu Pi İnceleme Matrisi Oluşturucu olarak kullanılan alan programlanabilir kapı dizisi (FPGA) gibi sayısız işlemciye sahiptir. Matrix Oluşturucusu, Pi'niz için İsviçre Çakısıdır. 15 sensör, bir dizi iletişim protokolü, bir RGB LED halkası, bir mikrofon dizisi ve daha fazlası! Pi HAT. Tüm Arduino'larda EEPROM mevcut, ancak kapasite modele göre değişiyor. Satın alma kılavuzumuza göz attığınızdan emin olun Arduino Satın Alma Rehberi: Hangi Kurulu Almalı? Arduino Satın Alma Rehberi: Hangi Kurulu Almalısınız? Dışarıda pek çok farklı Arduino tahtası var, kafanız karıştığı için affedilirsiniz. Projeniz için hangisini satın almalısınız? Bu Arduino satın alma rehberi ile yardım edelim! Her panoda daha fazla ayrıntı için.

O nasıl çalışır?

EEPROM elektrik kullanılarak silinir ve programlanır. Fowler-Nordheim tünel açma. Kullanabilmek için teknik detayları bilmenize gerek yok. Temel öncül, elektriğin ikili verileri değiştirmek için kullanılmasıdır (ikili nedir? İkili Nedir? [Teknoloji Açıklanır] İkili Nedir? [Teknoloji Açıklaması] İkilinin bilgisayarların varlığı için kesinlikle çok temel olduğu göz önüne alındığında, garip görünüyor konuyu daha önce hiç ele almadık - bu yüzden bugün hangi ikili kod hakkında kısa bir genel bakış sunacağımı düşündüm…). Elektronik olarak okunabilir, silinebilir ve yeniden yazılabilir.

Neyse ki, Arduino Dili, bilgisayar bilimlerinde bir dereceye ihtiyaç duymadan, verileri değiştirmeyi kolaylaştırıyor.

Yaşam Beklentisi

Arduino'da EEPROM'u kullanmak kolay olsa da sınırlı bir ömre sahiptir. EEPROM, 100.000 okuma / silme döngüsünü idare edecek şekilde belirlenmiştir. Bu, EEPROM'un kararsız hale gelmesinden 100.000 kez veri yazıp ardından silebileceğiniz / yazabileceğiniz anlamına gelir. Gerçekte, Atmel (Arduino üreticileri “Yonga”) yarı iletkenler, her işlemcinin toleranslarına bağlı olarak daha yüksek veya daha düşük sayıda döngü gerçekleştirebilir.

Bir konum çok defa yazılıp silindiğinde, güvenilmez olmaya başlayabilir. Doğru verileri döndürmeyebilir veya komşu bir bitin değerini döndüremez.

Bu, birçok yazar gibi görünebilir, ancak programlı olarak okuyup yazıyorsanız, bu sınıra ulaşmak kolay olabilir (bir döngü, Örneğin). Verileri okumak silikonu bozmaz, sadece yazı yapar. EEPROM'dan korkmadan dilediğiniz kadar veri okuyabilirsiniz!

Bu sınırın her hafıza yeri için geçerli olduğunu unutmayın. Arduino'nuz EEPROM'da 1.000 veya daha fazla hafızaya sahip olabilir, bu nedenle bir yere çok fazla yazıyorsanız, bu sadece etkilenen konumdur, diğerlerinden hiçbiri değil. Daha sonra tartışacağım tesviye giymek, Bu, verileri eşit olarak dağıtarak EEPROM aşınmasını azaltabilir - SSD'lerin SSD'nizin Kalan Ömrünü Tahmini Nasıl Yapılır? SSD'nizin Kalan Ömrünü Nasıl Hesaplayabilirsiniz? düşünebilir). İşte sonuna kadar ne kadar yakın olduğunuzu tahmin edebilirsiniz. faydalanmak.

Ne İçin Yararlı??

EEPROM, Arduino projeleriniz için inanılmaz derecede faydalıdır. Güç kesildiğinde bile verileri hatırladığı için, Arduino'nun durumunu saklayabilirsiniz. Belki bir lazer taret Pew Pew yapabilirsin! Bir Arduino Pew Pew ile Lazer Taret Nasıl Yapılır! Bir Arduino ile Bir Lazer Taret Nasıl İnşa Edilir? Bir lazer kulesi inşa etmek de mümkün. Bu onun konumunu ya da ne kadarını hatırlıyor “cephane” kaldı Arduino'dan Kontrol Aletleri: Ev Otomasyonunun Başlamasını Kontrol Etmek Arduino'dan Kontrol Aletleri: Ev Otomasyonunun Başlatılmasını Arduino projelerinizi konuşmayı SiriProxy, OS üzerinden kontrol etmenin birkaç yolunu gösterdim. X'in yerleşik konuşabilen öğeleri ve bazı Automator komut dosyaları veya hatta özel bir ses tanıma donanım yongası. Ben… ve cihazınızın kaç kez etkinleştirildiğini kaydedin.

EEPROM, ayarlar veya yüksek puanlar gibi şeyler için en uygun olanıdır. Düzenli olarak karmaşık veri yazmak istiyorsanız, belki bir ethernet kalkanı düşünün Arduino Projenize Kendi Mini Web Sunucunuzu Verin, Bir Ethernet Kalkanı ile Arduino Projenize Kendi Mini Web Sunucunuzu Verin, Bir süre önce Ethernet Kalkanı ile Arduino'nuz için bir internet kontrol sistemi kurmak - ama internet bağlantısını korumak için USB üzerinden bir bilgisayara bağlı kalmak zorunda kaldım… (dahili SD yuvası ile) veya bir Ahududu Pi Ahududu Pi: Resmi Olmayan Eğitim Ahududu Pi: Resmi olmayan Eğitim Bilgileri Daha fazla bilgi edinmek isteyen mevcut bir Pi sahibi olsanız da, bu kredi kartı boyutunda bir cihazın potansiyel sahibi olsanız da, bu kaçırmak istediğiniz bir rehber değil.. .

Oku ve yaz

Şimdi teori artık bitti, hadi biraz veri okuma ve yazma konusuna bakalım! İlk olarak, kütüphaneyi ekleyin (bu Arduino IDE ile birlikte gelir):

#Dahil etmek 

Şimdi biraz veri yazın:

EEPROM.write (0, 12);

Bu sayıyı yazar 12 EEPROM konumuna 0. Her yazma 3.3 milisaniye sürer (MS, 1000ms = 1 saniye). Harfleri nasıl yazamayacağınıza dikkat edin (kömür) yalnızca sıfırdan 255'e kadar sayılara izin verilir. Bu nedenle EEPROM, ayarlar veya yüksek puanlar için idealdir, ancak oyuncu adları veya kelimeler için çok iyi değildir. Bu yöntemi kullanarak metin saklamak mümkündür (alfabenin her harfini bir sayıya eşleyebilirsiniz), ancak birden çok bellek konumuna sahip olmanız gerekir - her harf için bir konum.

İşte bu verileri nasıl okuduğunuz:

EEPROM.read (0);

Sıfır, daha önce yazdığınız adres. Daha önce bir adrese yazmadıysanız, maksimum değeri döndürür (255).

Mevcut biraz daha kullanışlı yöntemler var. Ondalık bir yer veya dize saklamak istediğinizi varsayalım:

EEPROM.put (2, "12.67");

Bu, verileri birden fazla yere yazar - kendiniz yazması kolay olan ancak kullanışlı olmayan hiçbir şey. Bunun kaç tane yere yazdığını takip etmeniz gerekecek, böylece yanlışlıkla verilerinizin üzerine yazmazsınız! Kullanmak zorundasın almak bu verileri tekrar alma yöntemi:

şamandıra f = 0.00f; EEPROM.get (2, f);

Get'den değer şamandırada saklanır f değişken. Bunun nasıl başlatıldığına dikkat edin 0.00f değer olarak. f derleyicinin bu değişkende çok sayıda sayı saklamak isteyebileceğinizi bilmesini sağlar, böylece derleme sırasında bazı ek yapılandırmalar kurar.

Arduino web sitesindeki EEPROM dokümantasyonunda çok daha fazla örnek var.

Aşınma Tesviye

Aşınma dengeleme, aşınmayı azaltmak ve EEPROM'un ömrünü artırmak için kullanılan bir tekniktir. Yalnızca küçük bir proje üzerinde çalışıyorsanız, bu konuda endişelenmenize gerek olmayabilir.

EEPROM ömrünü korumak için yapabileceğiniz en basit şey, yazılarınızı belirli bir konumla sınırlandırmaktır. Bunu önce adresi okuyarak yapabilirsiniz ve yazmak istediğiniz değer zaten mevcutsa, tekrar yazmaya gerek yoktur (unutmayın, veri okumak zarar vermez). İşte bunu nasıl yaparsın:

int safeWrite (int veri, adres) if (EEPROM.read (adres)! = veri) EEPROM.write (adres, veri); 

Bu oldukça basit bir kod, ancak sadece tamsayılar için çalışıyor! Tekerleği yeniden icat etmek yerine, Arduino EEPROM kütüphanesinde yerleşik olan işlevi kullanın:

EEPROM.update (adres, val);

Bu yöntem tam olarak aynı imzayla yazmak yöntem, ihtiyaç duyulan yazma sayısını önemli ölçüde azaltabilse de!

Çok fazla veri yazmanız gerekiyorsa ve silikonu yıpratmakla ilgileniyorsanız, bu daha çok veri kullanmasına rağmen ne kadar yazma yaptığınızı takip edebilirsiniz. İşte sözde kodda kaba bir uygulama:

var adres = 0 var writeCount = 0 ise (writeCount> 75.000) writeCount = 0 address + = 1 EEPROM.write (adres, veri)

EEPROM'da adresinizi ve writeCount'u saklamanız gerekecektir (ve writeCount'un adres konumlarına bölünmesi gerekir). Zamanın çoğunda, bu koruma seviyesine ihtiyaç duyulmaz. Arduinos da çok ucuz, bu yüzden bir yedek satın almak daha kolay bulabilirsiniz!

Şimdi harika projeler yapmak için yeterince bilginiz olmalı. Bir şeyi serinletirseniz bize bildirin! Resimlerdeki tüm cihazları tanıyabilir misiniz? Aşağıda bize bir yorum bırakın!




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.