Salve a tutti, sono nuovo nel forum e mi sto avvicinando ora al mondo di arduino. Premetto che sono in possesso di un arduino mega con la shield ethernet.
Veniamo al punto:
Ho la necessita che all'avvio, arduino controlli il valore di una variabile e lo memorizzi, per poi riscriverlo una volta cambiato.
Il circuito è semplice, si basa su un led che si accende o si spegne se premo un tasto.
le 2 variabili sono:
- la presenza o meno di un file (vuoto) che mi serve per memorizzare l'ultimo stato del led (e qui non ci sono problemi)
- il contatore totale degli impulsi del bottone (e qui non riesco a riprendere l'ultimo valore scritto nel file contass.txt).
Allego il codice:
#include <SD.h>
const int button = 7; //definisco
const int led = 12;
int statobottone = 0; //definisto le variabili come interi
int vecchiostatobottone = 0;
int contatore = 0; //definisco la variabile contatore relativo
int contass1 = 0; //definisco la variabile contatore assoluto
File contrel; //file di conservazione ultimo stato del led
File contass; //contatore quante volte ho premuto il pulsante
void setup () { //definisco gli input e output
pinMode(led, OUTPUT);
pinMode(button, INPUT);
SD.begin(4);
if(SD.exists("contrel.txt")) {
digitalWrite(led, HIGH);
contatore = 1;
}
}
void loop() {
statobottone = digitalRead(button);
if (statobottone != vecchiostatobottone) {
delay(300);
contatore++;
contass1++;
}
if (contatore == 1) { // se uguale ad 1
digitalWrite(led, HIGH); //accendi il led
contrel = SD.open("contrel.txt", FILE_WRITE); //apro e chiudo il file solo per crearlo
contrel.close();
SD.remove("contass.txt");
contass = SD.open("contass.txt", FILE_WRITE); //scrivo il valore di contass1 in contass.txt
contass.println(contass1);
contass.close();
}
if (contatore > 1) {
digitalWrite(led, LOW);
contatore = 0;
SD.remove("contrel.txt");
SD.remove("contass.txt");
contass = SD.open("contass.txt", FILE_WRITE);
contass.println(contass1);
contass.close();
}
}
Il mio vero problema è che non riesco ad assegnare a contass1 il valore scritto in contass.txt se interrompo l'alimentazione o resetto la scheda.
grazie a tutti.
P.s. ma non esiste un sito dove poter leggere le guide sulle varie librerie??