# Interrupts als input Zähler

**URL:** <https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521>\
**Category:** Deutsch\
**Created:** [March 12, 2024, 9:15am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521 "2024-03-12T09:15:30Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![aldin123](https://avatars.discourse-cdn.com/v4/letter/a/c0e974/32.png) [@aldin123](https://forum.arduino.cc/u/aldin123)\
**Post date:** [March 12, 2024, 9:15am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/1 "2024-03-12T09:15:30Z")

</div>

Hallo zusammen,

Ich habe den Auftrag erhalten 24 Impulse zu zählen und wenn diese angekommen sind, ein EIN Signal zu produzieren, welches eine beliebige Zeit betragen kann (Abfallverzögerter Impuls).

Könnte mir jemand vielleicht mit der Aufgabe helfen?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [March 12, 2024, 9:31am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/2 "2024-03-12T09:31:21Z")

</div>

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.  
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben

➜ [Wie man dieses Forum benutzt - bitte lesen](https://forum.arduino.cc/t/wie-man-dieses-forum-benutzt-bitte-lesen/902274)

* * *

Welches Arduino verwenden Sie?

---

<div class="post-metadata">

**Author:** ![noiasca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/noiasca/32/1126910_2.png) [@noiasca](https://forum.arduino.cc/u/noiasca)\
**Post date:** [March 12, 2024, 9:34am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/3 "2024-03-12T09:34:06Z")

</div>

> [@aldin123](#):
>
> 24 Impulse

Das IDE Beispiel

[https://www.arduino.cc/en/Tutorial/BuiltInExamples/StateChangeDetection](https://www.arduino.cc/en/Tutorial/BuiltInExamples/StateChangeDetection)

"zählt" bis 4 und schaltet dann eine LED um.

ich denke das kannst du gut als Ausgangsbasis verwenden um bis 24 zu zählen.

p.s.: die Aufgabenstellung scheint mir unvollständig. Bitte schreibe die komplette Aufgabe mit allen Nebenbedingungen rein.

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [March 12, 2024, 9:41am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/4 "2024-03-12T09:41:00Z")

</div>

Für einen gängigen Arduino (AVR) könnte der folgende Code funktionieren:

```arduino
const byte eingabePin = 2; // Pin, an dem die Impulse erkannt werden
const byte ausgabePin = 3; // Pin für das Ausgangssignal

volatile int impulseZaehler = 0; // Variable zur Zählung der Impulse

void setup() {
  pinMode(eingabePin, INPUT); // Pull-down
  pinMode(ausgabePin, OUTPUT);
   // Interrupt für steigende Flanke
  attachInterrupt(digitalPinToInterrupt(eingabePin), zaehleImpulse, RISING);
}

void loop() {
  noInterrupts(); // Interrupts deaktivieren
  int zaehlerKopie = impulseZaehler; // Kopie von impulseZaehler erstellen
  interrupts(); // Interrupts aktivieren

  if (zaehlerKopie >= 24) { // Überprüfen, ob 24 Impulse gezählt wurden
    digitalWrite(ausgabePin, HIGH); // Ausgangssignal einschalten
    delay(10); // Beliebige Zeitverzögerung (hier 10 ms)
    digitalWrite(ausgabePin, LOW); // Ausgangssignal ausschalten

    noInterrupts(); // Interrupts deaktivieren
    impulseZaehler -= zaehlerKopie; // Kopie von impulseZaehler abziehen
    interrupts(); // Interrupts aktivieren
  }
}

void zaehleImpulse() {
  impulseZaehler++; // Impulszähler erhöhen
}

```

---

<div class="post-metadata">

**Author:** ![aldin123](https://avatars.discourse-cdn.com/v4/letter/a/c0e974/32.png) [@aldin123](https://forum.arduino.cc/u/aldin123)\
**Post date:** [March 12, 2024, 9:43am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/5 "2024-03-12T09:43:20Z")

</div>

Danke für die Hilfe.

Die genau Aufgabenstellung lautet:  
Ich bekomme 24 Impulse von einer externen Quelle. Diese muss ich im Arduinoprogramm erfassen. Dann das Signal auf die Arduino übertragen (z.B mit einem Optokoppler) und zu guter letzt ein Ausgangssignal produzieren, welches eine beliebige Abschaltverzögerung z.B von 5 millisekunden haben kann.

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [March 12, 2024, 9:49am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/6 "2024-03-12T09:49:47Z")

</div>

Es sieht aus wie ein Schulprojekt... ??

---

<div class="post-metadata">

**Author:** ![wwerner](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/wwerner/32/1001727_2.png) [@wwerner](https://forum.arduino.cc/u/wwerner)\
**Post date:** [March 12, 2024, 10:07am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/7 "2024-03-12T10:07:57Z")

</div>

> [@aldin123](#):
>
> Ich bekomme 24 Impulse

Wie schnell kommen die? Beliebige Pausen dazwischen? Warum willst du Interrupts benutzen? (Die machen meistens mehr Probleme wie sie lösen.)

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [March 12, 2024, 10:57am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/8 "2024-03-12T10:57:19Z")

</div>

> [@aldin123](#):
>
> Diese muss ich im Arduinoprogramm erfassen. Dann das Signal auf die Arduino übertragen (z.B mit einem Optokoppler)

Das ist doch ein Widerspruch in sich. Wenn das Arduinoprogramm die Impulse erfasst, ist die Info ja schon im Arduino. Wieso willst Du das dann erst in diesen über Optokoppler übertragen? Ist die Aufgabe so grauenvoll gestellt worden oder hast Du sie nur falsch interpretiert.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![michael\_x](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/michael_x/32/628623_2.png) [@michael\_x](https://forum.arduino.cc/u/michael_x)\
**Post date:** [March 12, 2024, 11:45am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/9 "2024-03-12T11:45:52Z")

</div>

> [@Tommy56](#):
>
> oder hast Du sie nur falsch interpretiert.

Das Signal soll per Opto auf einen Arduino übertragen werden.  
Das kann man durchaus richtig verstehen.  
Lediglich das Wort 'dann' verwirrt etwas, 'dazu' wäre wohl besser.

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [March 12, 2024, 11:49am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/10 "2024-03-12T11:49:30Z")

</div>

So herum wird etwas Sinnvolleres draus.  
Aber ich nehme erst mal die Aufgabenstellung, wie sie uns gegeben wird. Wir haben hier ja schon viel Mist erlebt.  
Wenn man schon die Aufgabe nicht richtig abschreiben kann, sehe ich für die Programmierung mindestens dunkelgrau 😉

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [September 8, 2024, 11:49am UTC](https://forum.arduino.cc/t/interrupts-als-input-zahler/1234521/11 "2024-09-08T11:49:31Z")

</div>

Closed on September 8, 2024, 11:49am UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
