Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

EEPROM

Fazer download em pdf
Fazer download em pdf
Você está na página 1de 2
Tabela 5-1 » Comandos parao registrador de temperatura R L805 dados armazenados pelo re- gistrador x Limpa todos 0s dados do registrador Modo Celsius F Modo Fahrenheit Ld Ajusta o periodo de amostragem em minutos de 1a9 Comegaaa registrar as temperaturas ? Faz um relatério do estado do dispo- sitivo, numero de amostras registra- das, etc. Fonte: do autor. Cuda ee Descricéo ‘Arduino Uno ou Leonardo ch TMP36 >? Hardware O diagrama esquemético do Projeto 13 esta mos- trado na Figura 5-18. O circuito é to simples que podemos simplesmen- te nserir os terminals do TMP36 na placa do Ardui- no, como mostrado na Figura 5-19. Observe que o n sv AL Salida Tree Arduino GND v0 Figura 5-18 Diagrama esquemético do Projeto 13. Fonte: do autor. lado curvo do TMP36 deve estar voltado para fora da placa do Arduino. Fazendo uma pequena dobra ‘nos terminals com aajuda de um alicate, cansegul- remos um contato melhor. Dols dos pinus analogicus (AO € A2) serao utlll- zados como conexées de GND e SV do TMP36. A corrente cansumida & tio baixa que as saidas ana- légicas conseguem fornecer poténcia suficiente se colocarmos um dos pinos em nivel alto (HIGH) € 0 ‘outro em nivel baixo (LOW). >> Software software deste projeto é mais complexo do que os anteriores (veja a Listagem do Projeto 13). Todas as varidvels usadas nos sketches até agora eram apagadas quando a placa do Arduino era ini- lalizada (reset) ou desconectada da alimentagSo elétrica. Algumas vezes, no entanto, gostariamos de manter os dados armazenados de forma per- manente pois, assim, estario disponiveis quando voltarmos a energizar ou inicializar a placa. Isso pode ser feito se utilizarmos um tipo de meméria especial que esta disponivel no Arduino: é a EE- PROM, que significa meméria programdvel apenas de leitura eletricamente apagavel. Tanto 0 Arduino Uno quanto 0 Leonardo tém 1024 bytes de EE- PROM. Para que o registrador seja citi, é necessério que ele se lembre das leituras jé feltas, mesmo quando ele é desconectado do computador e alimentado cam baterias. Tamisém & nacessirio que ele se lem- bre do periodo de registro (logging period). Este € 0 primeiro projeto em que utilizamos a EE- PROM do Arduino para armazenar valores de for- ‘ma que esses dados nio se percam quando a placa for iniializada (reset) ou desligada da alimentagao elétrica. Isso significa que, apés ajustar as confi- urac6es de operacéo do registrador, poderemos desconectar 0 cabo USB e detxé-lo funcionando com baterlas, Mesrno que carga das baterlas aca be, os dados ainda estarao la na préxima vez que 0 Arduino for energizada, Projetos com sensores capitulo5 » LISTAGEM DO PROJETO 1: { nt a = analogead{analogPin) ; Float volts = a / 205.0; float temp = (volts - 0.51 * 100; return temp: } void storeReading(float reading, int index) { EPROW.write(O, (byte) index) ; HEPROW.write(index + 2, compressedReading) ropertstatuc(), } Aloat getReading (int index) { lastReading = FEPHOU.read(0) ; lost unconpressestesdiog return uncompressesReading; } void reportstatus() { Serial printin| Serial.printin(*status") ; Serzal.prant ("current Temp ¢*); Serial .printin (neasureTemp () Serial print ("Sample period (s)\t"); Serial.printin(period / 1000); Serial.print ("un readings\t") ; Serial.printin (Iastteading) ; Serial print ("Node degrees\t") ; Serial. printIn node) ; Serial .printin(*. J/ axvazenar © ninere de ancetras no byte 0 byte conpressedReading = (byte) ((reading + 20.0) * 4); Lyle cimpieseedResiliiy = BEPRON:cead (dikes + 2h; lconpressedReading / 4.0) - 20.0; Vocé verd que, no inicio desse sketch, usamos 0 comando #define para fazer o que antes faziamos usando variavels.Na verdade, essa é uma forma mais. eficiente de definir constantes, isto é, valores que no se modificam durante a exccugso do sketch. E ideal para definigéo de pinos e constantes, como beta. 0 comando define é o que denominamos di- retiva de pré-processamento. Acontece que, antes da compilagdo do sketch, todas as ocorréncias de seu rome, em qualquer lugar do sketch, sao substituidas por seu valor. uma questio de gosto pessoal usar "define ou uma variével. Felizmente, a leitura e a escrita na EEPROM sio feitas com 1 byte a cada vez. Assim, se quisermos escrever uma varivel do tipo byte ou char, podere- ‘mos usar as fungGes EEPROM.writee EEPROMread, como mostrado a seguir: char lettertowrite = 'a'; // letra a ser escrita EEPROM. write(0, letterTotrite) : char letterToRead; letterToRead = HEPROM.xead(0) ;// letra a ser Lida Projetos com sensores capitulo5 »

Você também pode gostar