Verzögerer

Ich bin auf der suche nach einem microzeitverzögerer.
Er sollte den Impuls/aufschlag auf eine Tasterfolie so verlängern, dass der Impuls auf einem LED visuell ersichtlich wird.

Das würde z.B. mit einem Monoflop gehen (Elektronik-Kompendium) aber natürlich kannst Du das auch mit einem Arduino programmieren.

Gruß Tommy

Da braucht man keinen 15,- Bausatz, das geht mit nem NE555 auch für ein paar Cent :wink:

Koni98:
Ich bin auf der suche nach einem microzeitverzögerer.
Er sollte den Impuls/aufschlag auf eine Tasterfolie so verlängern, dass der Impuls auf einem LED visuell ersichtlich wird.

Hallo,

da du das hier in diesem Forum schreibst gehe ich jetzt mal davon aus, das Du das mit einen Arduino oder einem seiner Brüder machen willst. Dazu habe ich jetzt noch ein paar Fragen damit wir dir hier weiter hefen können.

  1. Was hast Du denn für eine Hardware ? Mit was willst Du das programmieren.

  2. Hast Du Vorkentnisse , elektrische, schon mal was programmiert,

  3. steckt dahinter eine Idee zu einem grösseren Projekt oder geht es darum Grundlagen zu erlernen.

Wenn Du die Arduino IDE verwenden möchtest dann schau dir die Beispiele an, da gibt es einfache Beispiele mit nur wenigen Zeilen die man gut verstehen und dann anpassen kann. Wenn Du noch nichts angeschafft hast und wenig oder keine Vorkenntnisse hast dann solltest Du mit einem Startet Set (z.B Eligo) anfangen, da ist für den Anfang was an Hardware dabei ( Widerstände,Taster, LED, usw. ). Und ich finde die Beispiele darin sind gut erklärt , bauen aufeinander auf und man lernt so die Grundlagen.

Heinz

Hallo,

retriggerbarer Monoflop

/* 
 *  Doc_Arduino - german Arduino Forum
 *  IDE 1.8.5
 *  Arduino Mega2560
 *  12.06.2018
 */

const byte pin_Signal = 2;
const byte pin_LED = 3;

typedef enum {TRIGGER, ZEIT, AUS} state;    // Steuerzustände
state sens_MODE = AUS;


void setup() {
  pinMode(pin_Signal, INPUT_PULLUP);        // Low aktiv
  pinMode(pin_LED, OUTPUT);
  
}  

 
void loop() {

  if (retrigger_Monoflop(2000) == true) {     // Verzögerungszeit[ms]  
    digitalWrite(pin_LED, HIGH);
    // ... oder andere sinnvolle Dinge           
  }
  else {
    digitalWrite(pin_LED, LOW);
  }
  
}


// *** Funktionen *** ----------------------------------------------

bool retrigger_Monoflop (unsigned int verzoegerung)
{
  static bool state = false;
  static unsigned long retrigger_time = 0;
  
  if (digitalRead(pin_Signal) == LOW) {
    sens_MODE = TRIGGER;  
  }

  switch (sens_MODE) {
    case TRIGGER:
                retrigger_time = millis();
                sens_MODE = ZEIT;
                state = true;
                break;
                
    case ZEIT:
                if (millis() - retrigger_time > verzoegerung) {
                  sens_MODE = AUS;
                }
                break;
                
    case AUS:
                state = false;
                break;
                                    
    default:    sens_MODE = AUS;
                break;
  }

  return state;
}

Eigentlich sollte der Thread doch "Verlängerer" heißen, denn der TO mochte doch den Impuls verlängern und nicht verzögern.

Aus meiner Sicht mit einem NE555 gut machbar.
Naja andere Vorschläge sind auch praktikabel.

Aus meiner Sicht mit einem NE555 gut machbar

Sicher, aber in einem Arduino-Forum geht es darum, dass man solche Bauteile locker einsparen kann, wenn man sowieso schon einen Microcontroller verwendet und dort noch Pins und Speicher frei hat.

#include <CombiePin.h>
#include <CombieTimer.h>

Combie::Pin::TasterGND<8> taster;
Combie::Pin::OutputPin<3> led;
Combie::Timer::FallingEdgeTimer fallingEdge(200);// ms Nachleuchtdauer

void setup()
{
  taster.initPullup();
  led.init();
}

void loop()
{

  // Datenfluss Schreibweise
  led = fallingEdge = taster;
}

CombieLib.zip (51.8 KB)

michael_x:
Sicher, aber in einem Arduino-Forum geht es darum, dass man solche Bauteile locker einsparen kann, wenn man sowieso schon einen Microcontroller verwendet und dort noch Pins und Speicher frei hat.

Na klar, ein Beispiel hat ja Doc auch schon gepostet.
Und ich selbst bin ja auch Fan der Controller, also absolut richtig.