// https://wokwi.com/projects/360769786667890689
// https://forum.arduino.cc/t/entering-if-loop-despite-not-meeting-requirements/1109505
bool runLoop = false; // set state based loop to write to SD card
const int buttonPin = 7;
int buttonState = LOW;
int prevButtonState = LOW;
int prevPrevButtonState = LOW;
int progCounter = 0;
/*
const float maxVoltage = 3.3; //ESP32 max voltage on ADC pins
const int maxDigital = 4095; //max digital pin value
const float adcSlopeConv = maxVoltage / maxDigital; //.000805 V/DigitalValue
const int staticGain = 300; //static sensitvity is 300mV/g
const float zeroG = 1.65; //ADXL335 3-axis accel. on GY-61 dev board centers at 1.65V
const int zero = (maxDigital / 2);
*/
# define SD 777
void writeFile(int aNumber, char *msg)
{
static unsigned int counter;
Serial.print(counter); counter++;
Serial.print(" ");
Serial.println(msg);
}
void setup(){
Serial.begin(115200);
Serial.println("hello there world!\n");
//...
pinMode(buttonPin, INPUT_PULLUP);
}
void loop(){
if(runLoop) {
if(progCounter==1){
writeFile(SD, "Button1.txt");
runLoop = false;
}
if(progCounter==2){
writeFile(SD, "Button2.txt"); delay(100); // so be slow on the pushbutton...
// runLoop = false;
}
if(progCounter==3){
writeFile(SD, "Button3.txt");
runLoop = false;
}
if(progCounter==4){
writeFile(SD, "Button4.txt");
runLoop = false;
}
if(progCounter>4){
Serial.println(progCounter);
//while (1);
}
}
buttonState = digitalRead(buttonPin);
static unsigned long lastButtonTime;
if (millis() - lastButtonTime > 20) {
lastButtonTime = millis();
if (buttonState != prevButtonState) {
if (!buttonState) {
if (runLoop) {
runLoop = false;
}
else {
progCounter++;
runLoop = true;
}
}
prevButtonState = buttonState;
}
}
}