/**
TinyDebug usage example: ATtiny85 debug prints in the Wokwi Simulator.
*/
#include "TinyDebug.h"
#define servoPin PB0
#define LED PB1
#define piezoSensor PB2
#define LED_ON_DURATION 200
void setup() {
Debug.begin();
Debug.println(F("Hello Tiny!"));
pinMode(servoPin, OUTPUT);
pinMode(LED, OUTPUT);
}
uint32_t i = 0;
void loop() {
static uint32_t nextSecond = millis() + 1000;
static uint32_t switchLedOffNow = 0;
static uint8_t lastPiezoState = LOW;
i++;
if (millis() > nextSecond) {
Debug.print(i);
Debug.println(F(" loops/s"));
nextSecond += 1000;
i = 0;
}
uint8_t piezoState = digitalRead(piezoSensor);
if ( piezoState != lastPiezoState ) {
lastPiezoState = piezoState;
if (piezoState == HIGH) {
digitalWrite(LED, HIGH);
switchLedOffNow = millis() + LED_ON_DURATION;
}
}
if (digitalRead(LED) && millis() > switchLedOffNow) {
digitalWrite(LED, LOW);
}
}