Buona sera sto provando il codice postato da >Docdoc< .
[code]
#include <SD.h>
#include <Wire.h>
#include <SPI.h>
#define PULSANTE_ON 5
#define PULSANTE_OFF 3
#define LED 6
//int ultimo; //ho provato cosi.
//char ultimo;
File stato;
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
while (1);
}
pinMode(PULSANTE_ON , INPUT);
pinMode(PULSANTE_OFF , INPUT);
pinMode(LED, OUTPUT);
stato = SD.open("stato.txt");
if (stato)
{
byte ultimo = stato.read();
stato.close();
Serial.print("stato.txt: ultimo=");
Serial.println(ultimo);
digitalWrite(6, ultimo);
}
Serial.println("fine setup ");
delay(1000);
}
void loop() {
ultimo = -1;// mi da errore 'ultimo' su questa riga di codice
if (digitalRead(PULSANTE_OFF) == HIGH)
ultimo = 0;
else if (digitalRead(PULSANTE_ON) == HIGH) {
ultimo = 1;
if (ultimo != -1)
{
stato = SD.open("stato.txt", FILE_WRITE);
Serial.print("Scrivo lo stato: ");
Serial.println(stato);
stato.write(ultimo);
delay(50);
stato.close();
delay(1000);
}
}
}
[/code]
ho commentato la riga che mi da errore ho provato a inizializzare >int ultimo;
funziona ma sulla sd mi stampa dopo la scritta caratteri strani .
sulla seriale invece mi stampa solo stato 1, anche se premo l'altro pulsante.