ఆర్డునో డేటాను ఆపివేసినప్పుడు నిల్వ చేయగలదని మీకు తెలుసా? ఫ్లాష్ మెమరీలో నిల్వ చేయబడిన స్కెచ్ కాదు. నేను EEPROM లో వేరియబుల్ డేటా గురించి మాట్లాడుతున్నాను. దానికి ఎలా చదవాలి మరియు వ్రాయాలి మరియు మీ ప్రాజెక్ట్ల కోసం అది ఏమి చేయగలదో నేను మీకు చూపుతున్నప్పుడు నాతో చేరండి.
మీరు ఆర్డునోకు కొత్తవారైతే, మీరు మా తనిఖీని నిర్ధారించుకోండి ప్రారంభ మార్గదర్శి .
EEPROM అంటే ఏమిటి?
EEPROM అంటే విద్యుత్తుగా తొలగించగల ప్రోగ్రామబుల్ రీడ్-ఓన్లీ మెమరీ . ఇది అస్థిరత లేని మెమరీ రకం. అందులో దేనినైనా అర్థం చేసుకోలేకపోతే చింతించకండి. ఇది పవర్ తీసివేసినప్పటికీ డేటాను నిల్వ చేస్తుంది (కాకుండా ర్యామ్ , ఏదైనా డేటాను నిలుపుకోవడానికి విద్యుత్ అవసరం).
మ్యాట్రిక్స్ క్రియేటర్ పై HAT లో ఉపయోగించే ఫీల్డ్-ప్రోగ్రామబుల్ గేట్ అర్రే (FPGA) వంటి అనేక ప్రాసెసర్లలో EEPROM నిర్మించబడింది. అన్ని Arduinos EEPROM అందుబాటులో ఉన్నాయి, కానీ సామర్థ్యం ఒక్కో మోడల్కు మారుతుంది. ప్రతి బోర్డులో మరిన్ని వివరాల కోసం మీరు మా కొనుగోలు గైడ్ని పరిశీలించినట్లు నిర్ధారించుకోండి.
ఇది ఎలా పని చేస్తుంది?
EEPROM విద్యుత్తుగా చెరిపివేయబడింది మరియు ఉపయోగించి ప్రోగ్రామ్ చేయబడింది ఫౌలర్-నార్డ్హీమ్ టన్నలింగ్ . దీన్ని ఉపయోగించడానికి మీరు సాంకేతిక వివరాలను తెలుసుకోవాల్సిన అవసరం లేదు. బైనరీ డేటాను (బైనరీ అంటే ఏమిటి) మార్చడానికి విద్యుత్తు ఉపయోగించబడుతుందని ప్రాథమిక ఆవరణ. దీనిని ఎలక్ట్రానిక్గా చదవవచ్చు, చెరిపివేయవచ్చు మరియు తిరిగి వ్రాయవచ్చు.
అదృష్టవశాత్తూ, ది ఆర్డునో భాష కంప్యూటర్ సైన్స్లో డిగ్రీ అవసరం లేకుండా, డేటాను మార్చడం సులభం చేస్తుంది.
ఆయుర్దాయం
Arduino లో EEPROM ని ఉపయోగించడం సులభం అయినప్పటికీ, ఇది పరిమిత జీవితాన్ని కలిగి ఉంటుంది. 100,000 రీడ్/ఎరేస్ చక్రాలను నిర్వహించడానికి EEPROM పేర్కొనబడింది. దీని అర్థం మీరు EEPROM అస్థిరంగా మారడానికి ముందు 100,000 సార్లు డేటాను వ్రాయవచ్చు మరియు ఎరేజ్ చేయవచ్చు/మళ్లీ వ్రాయవచ్చు. వాస్తవానికి, అట్మెల్ (Arduino 'చిప్' తయారీదారులు) సెమీకండక్టర్లు ప్రతి ప్రాసెసర్ యొక్క సహనంపై ఆధారపడి, ఎక్కువ లేదా తక్కువ సంఖ్యలో చక్రాలను నిర్వహించగలవు.
ఒక ప్రదేశాన్ని చాలాసార్లు వ్రాసి, ఎరేజ్ చేసిన తర్వాత అది నమ్మదగనిదిగా మారుతుంది. ఇది సరైన డేటాను తిరిగి ఇవ్వకపోవచ్చు లేదా పొరుగు బిట్ నుండి విలువను తిరిగి ఇవ్వకపోవచ్చు.
ఇది చాలా వ్రాసినట్లు అనిపించవచ్చు, కానీ ప్రోగ్రామటిక్గా చదవడం మరియు వ్రాస్తే ఈ పరిమితిని చేరుకోవడం సులభం అవుతుంది (లో లూప్ , ఉదాహరణకి). పఠన డేటా సిలికాన్ను దిగజార్చదు, రచన మాత్రమే చేస్తుంది . మీరు భయపడకుండా మీకు నచ్చినంత వరకు EEPROM నుండి డేటాను చదవవచ్చు!
ఈ పరిమితి ప్రతి మెమరీ స్థానానికి వర్తిస్తుందని గమనించడం ముఖ్యం. మీ ఆర్డునోలో EEPROM లో 1,000 లేదా అంతకంటే ఎక్కువ మెమరీ స్థానాలు అందుబాటులో ఉండవచ్చు, కాబట్టి మీరు ఒక ప్రదేశానికి చాలాసార్లు వ్రాస్తే, అది ప్రభావితం చేయబడిన ప్రదేశం మాత్రమే, మరియు ఇతరులు ఏదీ కాదు. తరువాత నేను చర్చిస్తాను లెవలింగ్ వేర్ , ఇది డేటాను సమానంగా పంపిణీ చేయడం ద్వారా EEPROM దుస్తులను తగ్గించగలదు - SSD లు ఉపయోగించే విషయం.
ఇది దేనికి ఉపయోగపడుతుంది?
మీ Arduino ప్రాజెక్ట్లకు EEPROM చాలా ఉపయోగకరంగా ఉంటుంది. పవర్ తీసివేయబడినప్పుడు కూడా ఇది డేటాను గుర్తుంచుకుంటుంది కాబట్టి, మీరు Arduino స్థితిని నిల్వ చేయవచ్చు. బహుశా మీరు లేజర్ టరెట్ను నిర్మించవచ్చు, అది దాని స్థానాన్ని గుర్తుకు తెచ్చుకుంటుంది లేదా ఎంత 'మందు సామగ్రి సరఫరా' మిగిలి ఉంది. మీ ఉపకరణాలను నియంత్రించడానికి మీరు దాన్ని ఉపయోగించవచ్చు మరియు మీ ఉపకరణం ఎన్నిసార్లు సక్రియం చేయబడిందో లాగ్ చేయవచ్చు.
సెట్టింగ్లు లేదా అధిక స్కోర్లు వంటి వాటికి EEPROM ఉత్తమంగా సరిపోతుంది. మీరు సంక్లిష్ట డేటాను క్రమం తప్పకుండా వ్రాయాలనుకుంటే, ఈథర్నెట్ షీల్డ్ (అంతర్నిర్మిత SD స్లాట్తో) లేదా రాస్ప్బెర్రీ పైని పరిగణించండి.
చదువుట మరియు వ్రాయుట
ఇప్పుడు సిద్ధాంతం బయటపడింది, కొంత డేటాను ఎలా చదవాలి మరియు వ్రాయాలి అని చూద్దాం! ముందుగా, లైబ్రరీని చేర్చండి (ఇది Arduino IDE తో వస్తుంది):
#include
ఇప్పుడు కొంత డేటాను వ్రాయండి:
EEPROM.write(0, 12);
ఇది సంఖ్యను వ్రాస్తుంది 12 EEPROM స్థానానికి 0 . ప్రతి రచనకు 3.3 మిల్లీసెకన్లు పడుతుంది ( కుమారి , 1000ms = 1 సెకను). మీరు అక్షరాలు ఎలా రాయలేరో గమనించండి ( చార్ ), సున్నా నుండి 255 వరకు ఉన్న సంఖ్యలు మాత్రమే అనుమతించబడతాయి. అందుకే EEPROM సెట్టింగ్లు లేదా అధిక స్కోర్లకు అనువైనది, కానీ ప్లేయర్ పేర్లు లేదా పదాలకు అంత మంచిది కాదు. ఈ పద్ధతిని ఉపయోగించి వచనాన్ని నిల్వ చేయడం సాధ్యమవుతుంది (మీరు అక్షరంలోని ప్రతి అక్షరాన్ని ఒక సంఖ్యకు మ్యాప్ చేయవచ్చు), అయితే మీరు బహుళ మెమరీ స్థానాలను కలిగి ఉండాలి - ప్రతి అక్షరానికి ఒక స్థానం.
మీరు ఆ డేటాను ఎలా చదువుతారో ఇక్కడ ఉంది:
విండోస్ 10 యూజర్ ఫోల్డర్ను మరొక డ్రైవ్కు తరలించండి
EEPROM.read(0);
మీరు గతంలో వ్రాసిన చిరునామా సున్నా. మీరు ఇంతకు ముందు చిరునామాకు వ్రాయకపోతే, అది గరిష్ట విలువను అందిస్తుంది ( 255 ).
కొంచెం ఎక్కువ ఉపయోగకరమైన పద్ధతులు అందుబాటులో ఉన్నాయి. మీరు దశాంశ స్థలం లేదా స్ట్రింగ్ను నిల్వ చేయాలనుకుంటున్నారని చెప్పండి:
EEPROM.put(2,'12.67');
ఇది డేటాను బహుళ స్థానాలకు వ్రాస్తుంది - మీరే వ్రాయడం సులభం, కానీ ఏది తక్కువ కాదు. ఇది ఇంకా ఎన్ని స్థానాలకు వ్రాయబడిందో మీరు ఇంకా ట్రాక్ చేయాల్సి ఉంటుంది, కాబట్టి మీరు అనుకోకుండా మీ డేటాను ఓవర్రైట్ చేయవద్దు! మీరు ఉపయోగించాలి పొందండి ఈ డేటాను మళ్లీ పొందడానికి పద్ధతి:
float f = 0.00f;
EEPROM.get(2, f);
గెట్ నుండి విలువ ఫ్లోట్లో నిల్వ చేయబడుతుంది f వేరియబుల్. దీన్ని ఎలా ప్రారంభించాలో గమనించండి 0.00f విలువగా. ది f మీరు ఈ వేరియబుల్లో పెద్ద సంఖ్యలో నిల్వ చేయాలనుకుంటున్నారని కంపైలర్కు తెలియజేయండి, కనుక ఇది కంపైలేషన్ సమయంలో కొన్ని అదనపు కాన్ఫిగరేషన్లను సెటప్ చేస్తుంది.
ది EEPROM డాక్యుమెంటేషన్ న Arduino వెబ్సైట్ ఇంకా చాలా ఉదాహరణలు ఉన్నాయి.
లెవలింగ్ వేర్
వేర్ లెవెలింగ్ అనేది దుస్తులు తగ్గించడానికి మరియు EEPROM జీవితాన్ని పెంచడానికి ఉపయోగించే ఒక టెక్నిక్. మీరు ఒక చిన్న ప్రాజెక్ట్లో మాత్రమే పనిచేస్తుంటే, మీరు దీని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు.
EPROM జీవితాన్ని కాపాడటానికి మీరు చేయగలిగే సరళమైన విషయం ఏమిటంటే, మీ వ్రాతలను ఒక నిర్దిష్ట ప్రదేశానికి పరిమితం చేయడం. మీరు ముందుగా చిరునామాను చదవడం ద్వారా దీన్ని చేయవచ్చు మరియు మీరు వ్రాయాలనుకుంటున్న విలువ ఇప్పటికే ఉన్నట్లయితే, దాన్ని మళ్లీ వ్రాయాల్సిన అవసరం లేదు (గుర్తుంచుకోండి, డేటాను చదవడం వల్ల ఎలాంటి హాని ఉండదు). మీరు దీన్ని ఎలా చేస్తారో ఇక్కడ ఉంది:
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
- ఆర్డునో
- ఎలక్ట్రానిక్స్
జో UK లోని లింకన్ విశ్వవిద్యాలయం నుండి కంప్యూటర్ సైన్స్లో గ్రాడ్యుయేట్. అతను ఒక ప్రొఫెషనల్ సాఫ్ట్వేర్ డెవలపర్, మరియు అతను డ్రోన్లను ఎగురవేయనప్పుడు లేదా సంగీతం వ్రాయనప్పుడు, అతను తరచుగా ఫోటోలు తీయడం లేదా వీడియోలను ఉత్పత్తి చేయడం చూడవచ్చు.
జో కోబర్న్ నుండి మరిన్నిమా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి
టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!
సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి