Вывод состояния датчика удара на SD

Написал код для того чтобы при срабатывании датчика удара на SD записывались данные, но идет сигнал на спикер, а данные не вносятся в файл. Можете подсказать что ни так.

#include <SPI.h>
#include <SD.h>
#include <Wire.h> // Для I2C
Sd2Card card;
SdVolume volume;
SdFile root;
const int chipSelect = 4;
int Led = 13; // встроенный в адуино светодиод
int shock = 3; // пин для подлкючения вибродатчика
int spiker = 10; // пин spiker
int val; // переменная состояния датчика

void setup () {
  pinMode (Led, OUTPUT); // LED pin as output  
  pinMode (shock, INPUT); // назначение входа для датчикаKY-002 
  pinMode(spiker, OUTPUT); // объявляем пин 10 как выход
  Serial.begin(9600);
  Serial.print("Инициализация SD-карты...");
  if (!SD.begin(chipSelect)) {
    Serial.println("Ошибка инициализации!");
    return;
  }
  Serial.println("Инициализация завершена.");
} 
void loop () {
  val = digitalRead (shock); // чтение состояния датчика KY-002
  if (val == HIGH ) { // когда сенсор определяет вибрацию, светодиод загорается 
    digitalWrite(spiker, LOW);
  } else {
    analogWrite(spiker, 100); // включаем пьезоизлучатель
    delay(3000); // на 1000 мс (1 сек),
    analogWrite(spiker, 0); // выключаем звук
    delay(1000); // на 1 сек.
     // Создаем объект для файла
    File dataFile = SD.open("button_log.txt", FILE_WRITE);

    // Если файл открыт успешно
    if (dataFile) {
      dataFile.println("Button Pressed"); // Выводим сообщение о нажатии
      dataFile.close(); // Закрываем файл
      Serial.println("Запись произведена.");
    }
    else {
      Serial.println("Ошибка открытия файла!");
    }
    delay(500); // Задержка, чтобы избежать многократной записи при удержании кнопки
  }
}

попробуйте вывести запись на sd из блока else, а то мало ли val == LOW, не происходит…

Вывел сообщение что запись произведена, а как записать состояние датчика?

сразу после вывода сообщения, добавьте создание файла (если надо), а далее запишите состояние датчика, я думаю вообще я не смогу вам помочь, если мое первое сообщение вам нечего не дало…

Проверьте как библиотеку используете. Соответствие имени и файловой системы. Для начала имя сократить не помешает, на всякий случай