#include <SdFat.h>
const int buttonPin = 2; // připojeno na digitální pin 2
int buttonState = 0; // aktuální stav tlačítka
int buttonPrevState = LOW; // předchozí stav tlačítka
int count = 0; // počítadlo stisků tlačítka
SdFat SD; // instance třídy SdFat pro práci se SD kartou
SdFile dataFile; // instance třídy SdFile pro práci se soubory na SD kartě
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
// inicializace SD karty
if (!SD.begin(4)) {
Serial.println("Nepodařilo se inicializovat SD kartu.");
return;
}
// otevření souboru pro zápis
if (!dataFile.open("data.txt", O_WRITE | O_CREAT)) {
Serial.println("Nepodařilo se otevřít soubor.");
return;
}
// zapíšeme počet stisknutí
dataFile.println(count);
dataFile.close();
Serial.println("Data uložena.");
}
void loop() {
// přečtení aktuálního stavu tlačítka
buttonState = digitalRead(buttonPin);
// pokud došlo ke změně stavu tlačítka
if (buttonState != buttonPrevState) {
// pokud bylo tlačítko právě stisknuto
if (buttonState == HIGH) {
count++;
Serial.println("Stisknuto.");
// uložení nové hodnoty počítadla na SD kartu
if (!dataFile.open("data.txt", O_WRITE | O_APPEND)) {
Serial.println("Nepodařilo se otevřít soubor.");
return;
}
dataFile.println(count);
dataFile.close();
Serial.println("Data uložena.");
}
}
// uložení předchozího stavu tlačítka
buttonPrevState = buttonState;
delay(100); // zpoždění pro stabilitu čtení
}