پاور سائیکلوں کے درمیان ڈیٹا کو بچانے کے لیے Arduino EEPROM کا استعمال کیسے کریں۔

پاور سائیکلوں کے درمیان ڈیٹا کو بچانے کے لیے Arduino EEPROM کا استعمال کیسے کریں۔

کیا آپ جانتے ہیں کہ Arduino بند ہونے پر ڈیٹا محفوظ کر سکتا ہے؟ فلیش میموری میں محفوظ کردہ خاکہ نہیں۔ میں EEPROM میں متغیر ڈیٹا کے بارے میں بات کر رہا ہوں۔ میرے ساتھ شامل ہوں جیسا کہ میں آپ کو دکھاتا ہوں کہ اسے کیسے پڑھنا اور لکھنا ہے ، اور یہ آپ کے منصوبوں کے لیے کیا کر سکتا ہے۔





اگر آپ Arduino میں نئے ہیں ، تو یقینی بنائیں کہ آپ ہمارے چیک کریں۔ ابتدائی رہنمائی .





EEPROM کیا ہے؟

EEPROM کا مطلب ہے۔ برقی طور پر مٹانے کے قابل پروگرام پڑھنے کے لیے صرف میموری۔ . یہ غیر مستحکم میموری کی ایک قسم ہے۔ پریشان نہ ہوں اگر آپ نہیں سمجھتے کہ اس کا کیا مطلب ہے۔ یہ آسانی سے ڈیٹا کو ذخیرہ کرتا ہے یہاں تک کہ بجلی کو ہٹا دیا جاتا ہے (برعکس۔ رام ، جسے کسی بھی ڈیٹا کو برقرار رکھنے کے لیے بجلی کی ضرورت ہوتی ہے)۔





EEPROM ہزاروں پروسیسرز میں بنایا گیا ہے ، جیسا کہ فیلڈ پروگرام ایبل گیٹ ارے (FPGA) جو میٹرکس تخلیق کار Pi HAT میں استعمال ہوتا ہے۔ تمام Arduinos کے پاس EEPROM دستیاب ہے ، لیکن صلاحیت فی ماڈل مختلف ہوتی ہے۔ یقینی بنائیں کہ آپ ہر بورڈ پر مزید تفصیلات کے لیے ہماری خریداری گائیڈ پر ایک نظر ڈالیں۔

یہ کیسے کام کرتا ہے؟

EEPROM کو برقی طور پر مٹا دیا گیا ہے اور استعمال کرکے پروگرام کیا گیا ہے۔ فولر-نورڈیم ٹنلنگ۔ . اسے استعمال کرنے کے لیے آپ کو تکنیکی تفصیلات جاننے کی ضرورت نہیں ہے۔ بنیادی بنیاد یہ ہے کہ بجلی بائنری ڈیٹا (بائنری کیا ہے) کو تبدیل کرنے کے لیے استعمال ہوتی ہے۔ اسے الیکٹرانک طریقے سے پڑھا ، مٹایا اور دوبارہ لکھا جا سکتا ہے۔



خوش قسمتی سے ، اردوینو زبان۔ کمپیوٹر سائنس میں ڈگری کی ضرورت کے بغیر ، ڈیٹا کو تبدیل کرنا آسان بناتا ہے۔

زندگی کی امید

اگرچہ Arduino میں EEPROM استعمال کرنا آسان ہے ، لیکن اس کی زندگی محدود ہے۔ EEPROM 100،000 پڑھنے/مٹانے کے چکروں کو سنبھالنے کے لیے مخصوص ہے۔ اس کا مطلب ہے کہ آپ EEPROM کے غیر مستحکم ہونے سے پہلے 100،000 بار ڈیٹا لکھ اور مٹا سکتے ہیں۔ حقیقت میں، اتمیل۔ (Arduino 'چپ' کے مینوفیکچررز) ہر پروسیسر کی رواداری پر منحصر ہے ، سیمی کنڈکٹر زیادہ یا کم تعداد میں سائیکل سنبھال سکتے ہیں۔





ایک بار جب کوئی مقام لکھا گیا اور بہت بار مٹا دیا گیا تو یہ ناقابل اعتماد بننا شروع ہوسکتا ہے۔ یہ صحیح ڈیٹا واپس نہیں کر سکتا ، یا پڑوسی سے قدر واپس نہیں کر سکتا۔

یہ بہت ساری تحریروں کی طرح لگ سکتا ہے ، لیکن اگر پروگرام کے مطابق پڑھنا اور لکھنا ہو تو اس حد تک پہنچنا آسان ہوسکتا ہے۔ لوپ ، مثال کے طور پر). ڈیٹا پڑھنے سے سیلیکن خراب نہیں ہوتا ، صرف لکھنا کرتا ہے . آپ EEPROM سے جتنا چاہیں ڈیٹا کو بغیر خوف کے پڑھ سکتے ہیں!





یہ نوٹ کرنا ضروری ہے کہ یہ حد ہر میموری مقام پر لاگو ہوتی ہے۔ آپ کے آرڈوینو میں EEPROM میں 1،000 یا اس سے زیادہ میموری کے مقامات دستیاب ہوسکتے ہیں ، لہذا اگر آپ ایک جگہ پر کئی بار لکھتے ہیں تو ، یہ صرف وہی مقام متاثر ہوتا ہے ، نہ کہ کسی دوسرے پر۔ بعد میں میں بحث کروں گا۔ لیولنگ پہننا ، جو ڈیٹا کو یکساں طور پر تقسیم کرکے EEPROM پہننے کو کم کر سکتا ہے - ایسی چیز جس کا SSDs استعمال کرتے ہیں۔

یہ کس کے لیے مفید ہے؟

EEPROM آپ کے Arduino منصوبوں کے لیے ناقابل یقین حد تک مفید ہے۔ جیسا کہ یہ ڈیٹا کو یاد رکھتا ہے یہاں تک کہ جب بجلی ہٹا دی جاتی ہے ، آپ آرڈوینو کی حالت کو محفوظ کرسکتے ہیں۔ شاید آپ ایک لیزر برج بنا سکتے ہیں جو اس کی پوزیشن کو یاد رکھتا ہے یا کتنا 'بارود' باقی ہے۔ آپ اسے اپنے آلات کو کنٹرول کرنے کے لیے استعمال کر سکتے ہیں ، اور لاگ ان کر سکتے ہیں کہ آپ کے آلات کو کتنی بار چالو کیا گیا تھا۔

EEPROM ترتیبات یا اعلی اسکور جیسی چیزوں کے لیے بہترین موزوں ہے۔ اگر آپ باقاعدگی سے پیچیدہ ڈیٹا لکھنا چاہتے ہیں تو ، شاید ایتھرنیٹ شیلڈ (بلٹ میں ایس ڈی سلاٹ کے ساتھ) یا راسبیری پائی پر غور کریں۔

پڑھو اور لکھو

اب جب کہ نظریہ ختم ہوچکا ہے ، آئیے دیکھتے ہیں کہ کچھ ڈیٹا کیسے پڑھنا اور لکھنا ہے! سب سے پہلے ، لائبریری شامل کریں (یہ Arduino IDE کے ساتھ آتا ہے):

#include

اب کچھ ڈیٹا لکھیں:

EEPROM.write(0, 12);

یہ نمبر لکھتا ہے۔ 12۔ EEPROM مقام پر۔ . ہر تحریر 3.3 ملی سیکنڈ لیتی ہے ( MS ، 1000ms = 1 سیکنڈ) نوٹ کریں کہ آپ کیسے خط نہیں لکھ سکتے ( چار ) ، صرف صفر سے 255 تک کے اعداد کی اجازت ہے۔ یہی وجہ ہے کہ EEPROM ترتیبات یا اعلی اسکور کے لیے مثالی ہے ، لیکن کھلاڑیوں کے نام یا الفاظ کے لیے اتنا اچھا نہیں ہے۔ اس طریقے کا استعمال کرتے ہوئے متن کو ذخیرہ کرنا ممکن ہے (آپ حروف تہجی کے ہر حرف کو ایک نمبر پر نقشہ بنا سکتے ہیں) ، تاہم آپ کو میموری کے کئی مقامات - ہر حرف کے لیے ایک مقام کی ضرورت ہوگی۔

یہ ہے کہ آپ اس ڈیٹا کو کیسے پڑھتے ہیں:

ونڈوز 10 یوزر فولڈر کو دوسری ڈرائیو میں منتقل کرتی ہے۔
EEPROM.read(0);

زیرو وہ پتہ ہے جو آپ نے پہلے لکھا تھا۔ اگر آپ نے پہلے کسی پتے پر نہیں لکھا ہے تو ، یہ زیادہ سے زیادہ قیمت لوٹائے گا ( 255۔ ).

کچھ قدرے مفید طریقے دستیاب ہیں۔ کہتے ہیں کہ آپ ایک اعشاریہ جگہ یا تار محفوظ کرنا چاہتے تھے:

EEPROM.put(2,'12.67');

یہ اعداد و شمار کو متعدد مقامات پر لکھتا ہے - ایسی چیز جو خود لکھنا آسان ہو ، لیکن اس سے کم کوئی بھی نہیں۔ آپ کو اب بھی ٹریک رکھنے کی ضرورت ہوگی کہ اس نے کتنے مقامات پر لکھا ہے ، تاکہ آپ غلطی سے اپنے ڈیٹا کو اوور رائٹ نہ کریں! آپ کو استعمال کرنا ہوگا۔ حاصل کریں اس ڈیٹا کو دوبارہ حاصل کرنے کا طریقہ:

float f = 0.00f;
EEPROM.get(2, f);

حاصل کی قیمت فلوٹ میں محفوظ ہے۔ f متغیر نوٹ کریں کہ یہ کس طرح شروع کیا گیا ہے۔ 0.00 ایف قدر کے طور پر. کی f مرتب کو بتاتا ہے کہ آپ اس متغیر میں بڑی تعداد کو ذخیرہ کرنا چاہتے ہیں ، لہذا یہ تالیف کے دوران کچھ اضافی تشکیلات مرتب کرتا ہے۔

کی EEPROM دستاویزات پر Arduino ویب سائٹ بہت زیادہ مثالیں ہیں.

لیولنگ پہنیں۔

پہننے کی سطح ایک ایسی تکنیک ہے جو پہننے کو کم کرنے اور EEPROM کی زندگی بڑھانے کے لیے استعمال ہوتی ہے۔ اگر آپ صرف ایک چھوٹے سے منصوبے پر کام کر رہے ہیں ، تو آپ کو اس کے بارے میں فکر کرنے کی ضرورت نہیں ہوگی۔

EEPROM لائف کو محفوظ رکھنے کے لیے آپ جو آسان کام کر سکتے ہیں وہ یہ ہے کہ اپنی تحریروں کو کسی خاص جگہ تک محدود رکھیں۔ آپ پہلے ایڈریس پڑھ کر ایسا کر سکتے ہیں ، اور اگر آپ جو قدر لکھنا چاہتے ہیں وہ پہلے سے موجود ہے تو اسے دوبارہ لکھنے کی ضرورت نہیں ہے (یاد رکھیں ، ڈیٹا پڑھنے سے کوئی نقصان نہیں ہوتا)۔ یہاں آپ یہ کیسے کریں گے:

int safeWrite(int data, address) {
if(EEPROM.read(address) != data) {
EEPROM.write(address, data);
}
}

یہ بہت آسان کوڈ ہے ، تاہم یہ صرف عدد کے لیے کام کرتا ہے! وہیل کو دوبارہ ایجاد کرنے کے بجائے ، Arduino EEPROM لائبریری میں بنایا گیا فنکشن استعمال کریں:

EEPROM.update(address, val);

یہ طریقہ بالکل وہی دستخط رکھتا ہے جیسا کہ لکھیں طریقہ ، اگرچہ یہ ضروری لکھنے کی تعداد کو بہت کم کر سکتا ہے!

اگر آپ کو بہت زیادہ ڈیٹا لکھنے کی ضرورت ہے ، اور سلیکن کو ختم کرنے کے بارے میں فکر مند ہیں ، تو آپ اس بات پر نظر رکھ سکتے ہیں کہ آپ کتنے لکھتے ہیں ، حالانکہ اس میں زیادہ ڈیٹا استعمال ہوتا ہے۔ یہاں ایک موٹا عمل درآمد ہے۔ سیڈو کوڈ :

var address = 0
var writeCount = 0
if(writeCount > 75,000)
writeCount = 0
address += 1
EEPROM.write(address, data)

آپ کو EEPROM میں ایڈریس اور رائٹ کاؤنٹ اسٹور کرنے کی ضرورت ہوگی (اور رائک کاؤنٹ کو ایڈریس کے مقامات پر تقسیم کرنے کی ضرورت ہوگی)۔ زیادہ تر وقت ، تحفظ کی یہ سطح ضروری نہیں ہوگی۔ Arduinos بھی اتنے سستے ہیں ، لہذا آپ کو بیک اپ خریدنا آسان ہو سکتا ہے!

اب آپ کو کچھ خوفناک منصوبے بنانے کے لیے کافی جاننا چاہیے۔ اگر آپ کچھ ٹھنڈا کرتے ہیں تو ہمیں بتائیں! کیا آپ تصاویر میں موجود تمام آلات کو پہچان سکتے ہیں؟ ہمیں ذیل میں ایک تبصرہ چھوڑ دو!

بانٹیں بانٹیں ٹویٹ ای میل۔ اپنے ورچوئل باکس لینکس مشینوں کو سپر چارج کرنے کے 5 نکات۔

ورچوئل مشینوں کی پیش کردہ ناقص کارکردگی سے تنگ آ چکے ہو؟ اپنی ورچوئل باکس کی کارکردگی کو بڑھانے کے لیے آپ کو یہ کرنا چاہیے۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • DIY
  • Arduino
  • الیکٹرانکس۔
مصنف کے بارے میں جو کوبرن۔(136 مضامین شائع ہوئے)

جو یونیورسٹی آف لنکن یونیورسٹی سے کمپیوٹر سائنس میں گریجویٹ ہیں۔ وہ ایک پیشہ ور سافٹ وئیر ڈویلپر ہے ، اور جب وہ ڈرون نہیں اڑاتا یا موسیقی نہیں لکھتا ، تو وہ اکثر تصاویر لیتے یا ویڈیو بناتے ہوئے پایا جا سکتا ہے۔

جو کوبرن سے مزید۔

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔