- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 14

Thema: Relais-Zeitsteuerung mit Digispark

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2013
    Beiträge
    8

    Relais-Zeitsteuerung mit Digispark

    Hallo Leute
    da ich bis jetzt noch nicht so viel vom Programmieren verstehe, wende ich mich vertrauensvoll an Euch, mit der Bitte bei einem kleinen Sketch zu helfen.
    Habe hier einen Digispark mit aufgestecktem Relais.
    Der Sketch sieht volgendermaßen aus:
    void setup()
    {
    // Initialize the relay pin as output
    pinMode(5, OUTPUT);
    }

    void loop()
    {
    digitalWrite(5, HIGH); // Turn the relay on
    delay(2000); // Wait for a second
    digitalWrite(5, LOW); // Turn the relay off
    delay(3000); // Wait for a second
    }
    Das Relais schaltet bei angelegter 5V Spannung ein und nach der hinterlegten Zeit ( delay ) wieder aus und wieder ein.
    Nun möchte ich aber, dass das Relais nach angelegter Spannung ein schaltet und nach der hinterlegten zeit wieder ausschaltet und aus bleibt.
    Es liegt sicherlich an der Schleife ( loop ), aber ich finde keinen Befehl, das das Relais aus bleibt.
    Ich hoffe, daß mir jemand da weiter helfen kann.
    Viele Grüße
    Mexico67

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Die Loop ist vermutlich eine schleife. Diese wird immer durchlaufen, also nach delay(3000) kommt wieder der erste Befehl. Das ist sicher nicht das gesamte Programm. Normalerweise hast du ein main, das ist das Hauptprogramm. Poste einmal das gesamte Programm, aber bitte mit den Code Tags (<code> Programm</code>). Statt den <> Zeichen musst du [] nehmen. Dann sieht es so aus
    Code:
     Programm
    MfG Hannes

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2013
    Beiträge
    8
    Hallo Hannes,

    Herzlichen Dank für Deine Antwort.

    Leider habe ich für den Digispark keinen anderen Sketch

    Habe den Sketch für das Relais hier http://digistump.com/wiki/digispark/tutorials/relay herunterkopiert und mit dem Programm Digispark-Arduino 1.0.4 kompeiliert und dann in den Digispark geladen.Danach schaltet das Relais nach Spannungsanlegung wie beschrieben.

    Laut Arduino-Befehlsliste ist Loop eine Schleife, aber wenn ich die Loop entferne, bringt mit das Programm eine Fehlermeldung.
    void setup() {
    // Initialize the relay pin as output
    pinMode(5, OUTPUT);
    }

    {
    digitalWrite(5, HIGH); // Turn the relay on
    delay(1000); // Wait for a second
    digitalWrite(5, LOW); // Turn the relay off
    delay(1000); // Wait for a second
    }

    Fehlermeldung:
    expected unqualified-id before`{`token
    sketch_ian28a:6: error: expected unqualified-id before`{`token

    MFG Mexico67 (Richard)

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Mit der Software kenne ich mich leider nicht aus. Ich arbeite nur mit AVR-Studio.

    Was du machen kannst (nicht die eleganteste Variante) ist das du eine variable nimmst. Die Ausgänge schaltest du nur wenn die Variable 0 ist. Nach dem ersten Durchlauf änderst du die Variable auf 1, somit werden die Ausgänge nicht mehr geschalten.

    MfG Hannes

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2013
    Beiträge
    8
    Hallo Hannes,

    vielen Dank für Deine Antwort und Hilfe.
    Habe jetzt die Schleife (Loop) mal gelassen und Delay Low geändert. Ist zwar nicht das was ich wollte, aber eventuell ist noch jemand da, der mir weiter helfen kann. Hier nochmal der sketch.
    void setup()
    {
    pinMode(5, OUTPUT); // Initialize the relay pin as output
    }

    void loop()
    {
    digitalWrite(5, HIGH); // Relais an Pin 5 einschalten
    delay(5000); // schalte Relais nach 5 Sekunden aus
    digitalWrite(5, LOW); // Relais am Pin 5 ausschalten
    delay(86400000); // schalte Relais nach 24 Stunden wieder ein
    }
    somit schaltet das Relais bei Spannungsanlegung ein und nach 5 Sekunden wieder aus und alle 24 Stunden das gleiche.

    Viele Grüße
    Mexico67 (Richard)

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    Du solltest Dich dringend mit den Grundlagen der Arduino-Programmierung vertraut machen. Grundsätzlich sollte man delay() eigentlich immer versuchen zu vermeiden ... also auch das delay(5000) - zumindest wenn Du vorhast, die Software noch zu erweitern. Wenn sie wirklich nichts anderes machen soll:

    boolean ReRun = false;

    void setup()
    {
    pinMode(5, OUTPUT); // Initialize the relay pin as output
    }

    void loop()
    {
    if (ReRun == false) {
    digitalWrite(5, HIGH); // Relais an Pin 5 einschalten
    delay(5000); // schalte Relais nach 5 Sekunden aus
    digitalWrite(5, LOW); // Relais am Pin 5 ausschalten

    ReRun = true;
    }
    }

Ähnliche Themen

  1. Digispark PRO jetzt auch in Deutschland verfügbar
    Von redround im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 19.12.2014, 13:20
  2. Zeitsteuerung+Temperaturmessung
    Von Projekt 2252 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 10.04.2012, 21:22
  3. Zeitsteuerung
    Von Maxibot im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 20.08.2010, 01:33
  4. Zeitsteuerung für asuro
    Von Hans2 im Forum Asuro
    Antworten: 16
    Letzter Beitrag: 13.12.2008, 18:55
  5. Hilfe bei Zeitsteuerung
    Von Blamaster im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 40
    Letzter Beitrag: 13.03.2007, 21:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress