const int digitalPin = 12; // Použijte správný digitální pin pro měření
const int LED = 10; // pin pro signalni led
const int intPin = 2; // pin pro cteni preruseni
const int arraySize = 20; // Velikost pole pro ulozeni merenych dat
volatile byte digitalValues[arraySize]; // Pole pro ukládání hodnot
volatile int interruptCount = 20; // Počet přerušení
void setup() {
Serial.begin(9600);
pinMode(12, INPUT_PULLUP);
pinMode(10, OUTPUT);
attachInterrupt(digitalPinToInterrupt(intPin), interruptHandler, RISING); // Nastavení externího přerušení na změnu stavu pinu
}
void loop() {
// Čekání na 20 přerušení
while (interruptCount < arraySize) {
// Vykonávejte další úkony, pokud jsou potřeba
}
// Zde můžete provést další akce po dosažení 20 přerušení
// Například, vypsat hodnoty ze série
for (int i = 0; i < arraySize; i++) {
Serial.print(digitalValues[i]);
Serial.print(" ");
}
Serial.println();
// Resetujte počet přerušení pro další cyklus
// interruptCount = 0;
}
void interruptHandler() {
// Čtení digitální hodnoty a uložení do pole
digitalValues[interruptCount] = digitalRead(digitalPin);
// Zvýšení počtu přerušení
interruptCount++;
}