Tool/software: Code Composer Studio
#include <SPI.h> #include <SD.h> #include <AltSoftSerial.h> File myFile; String Data; #define RX 8 #define TX 9 AltSoftSerial mySerial(8, 9); const int buzzer = 7; const int buttonPin = 2; int buttonState = 0; int lastButtonState = LOW; unsigned long lastDebounceTime = 0; // the last time the output pin was toggled unsigned long debounceDelay = 100; // the debounce time; increase if the output flickers void setup() { pinMode(buttonPin, INPUT); pinMode(buzzer, OUTPUT); digitalWrite(buzzer,HIGH); Serial.begin(9600); mySerial.begin(9600); while (!Serial) { ; } Serial.print("Initializing SD card..."); if (!SD.begin(4)) { Serial.println("Card failed, or not present"); return; } Serial.println("card initialized."); } void loop() { unsigned long int time2; while(mySerial.available()) { time2 = millis(); if (time2 < 240000) { digitalWrite(buzzer,HIGH); Data = mySerial.readStringUntil('\n'); File dataFile = SD.open("datalog.txt", FILE_WRITE); if (dataFile) { dataFile.println(Data); dataFile.close(); } } else if ((240000 < time2) &&(time2 < 300000)) { tone(buzzer, 2000); // Send 1KHz sound signal... delay(1000); // ...for 1 sec noTone(buzzer); // Stop sound... delay(1000); // ...for 1sec File dataFile = SD.open("datalog.txt", FILE_WRITE); dataFile.println("End of File"); dataFile.close(); } else { digitalWrite(buzzer,HIGH); int reading = digitalRead(buttonPin); buttonState = digitalRead(buttonPin); if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { if (reading != buttonState) { buttonState = reading; if (buttonState == HIGH) { File dataFile = SD.open("datalog.txt"); if (dataFile) { while (dataFile.available()) { Serial.write(dataFile.read()); } dataFile.close(); } else { Serial.println("error opening datalog.txt"); } } } } lastButtonState = reading; } } }