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);
}
Tags:
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!!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por