Boa tarde pessoal,

Este programa não está funcionando. Estou querendo gravar um valor 0 ou 1 na eeprom e de acordo com este valor ligar um led, ou outro. Alguém pode me ajudar?

#include <EEPROM.h>

int addr = 0;
int led = 11;
int led2 = 12;
const int Potenciometro = A0;
int val = analogRead(Potenciometro);

void setup(){

Serial.begin(9600);
led = 0;
led2 = 0;

}
void loop(){

int i= 0; //Declaração de uma variável do tipo integer de nome “i”, inicializada com o valor “0”
i = EEPROM.read(1); //Feita a leitura do endereço 1 e guardado o seu conteúdo na variável de nome “i”

if (val > 100){

EEPROM.write(addr,0);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(10);
}

if (val < 900){

EEPROM.write(addr,1);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
delay(10);

}

Serial.print('Analógica:');
Serial.print(val);
delay(1000);
Serial.print('EEPROM:');
Serial.print(i);
delay(2);

}

Exibições: 306

Responder esta

Respostas a este tópico

Normalmente com tudo que termina com PROM para mudar a informação vc precisa primeiro apagar a anterior.

Normalmente EEPROMs são graváves byte a byte e apagaveis somente em bloco.

Mas vc deve evitar fazer isso num loop de programa. O numero de vezes que é possível apagar a informação é finito.

Obrigado pelas informações!!!

=)))

A principio tudo legal para fazer upload. Porem, deve estar dando conflito nas condições dos if.

//primeiro if esta assim

Se val for maior que 100 - correto?

//segundo esta assim

Se val for menor que 900 - correto?

Sendo assim, digamos que o val seja 200.. ele é maior que 100, entra no primeiro if e liga led 11 e desliga o 12.

Depois ele entra no segundo, por que 200 tambem é menor que 900. Então ele liga o led 12 e desliga o 11.

De que adianta ligar numa se vai desligar. Por isso nao funciona.

Obrigado!!!!

Resolvi o problema!!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço