Netzwerkseiten auf Erreichbarkeit prüfen - Anzeige per LED

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Weil ich ein Projekt sehr interessant fand, habe ich es nach gebaut, um damit die Funktion eines Powerline Wlans (Terrasse) zu testen. Ich habe regelmäßig das Problem, dass das Wlan zwar vorhanden ist, aber keine Verbindung zum Internet besteht. Mit dieser Lösung kann ich mir nun anzeigen lassen, ob eine Verbindung besteht oder nicht.

    Der Aufbau ist sehr überschaubar. Ich habe dazu mal wieder eine "customized Version" des Breakoutboards von joh.raspi genommen und den nächstbesten Micro-USB-Anschluss aufgelötet, der mir in die Finger fiel. Das ist nicht schön, aber es funktioniert. Auf der Unterseite erzeugt ein LDO die notwendigen 3,3V. Auf der Vorderseite ist ein ESP-12S direkt aufgelötet. Darauf habe ich mit doppelseitigem Klebeband eine kleine Platine geklebt, auf der eine 5050 RGB-LED sitzt. Die drei Farben wurden mit drei GPIO verbunden. Als Vorwiderstand habe ich lediglich 100 Ohm gewählt, damit die LED im Außenbereich noch hell genug leuchtet. Damit bin ich am Limit dessen, was der ESP pro GPIO liefern kann.

    Den Sketch habe ich leicht abgewandelt und an meine Bedürfnisse angepasst.

    [code=php]
    /**
    * WLAN Monitor mit ESP-12 Modul.
    *
    * Kontrolliert die Erreichbarkeit eines Internet Servers
    * und zeigt den Status mit einer bunten LED an.
    *
    * Beim Start wird jede LED kurz getestet. Danach blinkt grün 3x kurz auf.
    *
    * Grün = Alles Ok
    * Blau = Verbindung ist langsam
    * Rot = Verbindung ist ausgefallen
    * Aus = Keine Verbindung zum AP
    *
    * Ein leichtes Flackern der LED bestätigt, dass das Modul arbeitet.
    *
    * Die Schaltung ist ganz einfach:
    * Das ESP-12 Modul wird auf der Platine angebracht und dann z. B. mit 5V versorgt.
    * Die RGB-LED ist so angeschlossen:
    *
    * LED 3x 100 Ohm
    * GND o---+---|<|---[===]-------o GPIO0 blau
    * |
    * +---|<|---[===]-------o GPIO4 rot
    * |
    * +---|<|---[===]---+---o GPIO5 grün
    *
    *
    */

    #include <ESP8266WiFi.h>

    // Name und Passwort des Access Points
    #define SSID "wlan-von-hier"
    #define PASSWORD "das-passwort"


    // Webserver, dessen Erreichbarkeit getestet wird
    #define HOST "heise.de"
    #define PORT 80

    // Wenn der Verbindungsaufbau länger dauert, geht die Anzeige auf blau.
    #define MAX_CONNECT_MS 100

    // Intervall für die Verbindungstests
    #define INTERVAL_MS 10000

    // Wird verwendet, um Verbindungen zu testen.
    WiFiClient client;

    /** Wird beim Start einmal ausgeführt */
    void setup()
    {
    // Seriellen Port nicht verwenden
    //Serial.end();
        
    // LED's aus
    pinMode(5, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(0, OUTPUT);

    delay(500);

    digitalWrite(0,HIGH);
    delay(500);
    digitalWrite(0,LOW);
    delay(200);

    digitalWrite(4,HIGH);
    delay(500);
    digitalWrite(4,LOW);
    delay(200);
        
    digitalWrite(5,HIGH);
    delay(500);
    digitalWrite(5,LOW);
    delay(200);
        
    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(200);

    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(200);
        
    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(1000);
        

    // WLAN Parameter setzen
    WiFi.mode(WIFI_AP);
    WiFi.begin(SSID, PASSWORD);
    }

    /** Hauptschleife, wird wiederholt ausgeführt. */
    void loop()
    {
        
    // Sind wir mit dem AP verbunden?
    if (WiFi.status()!=WL_CONNECTED)
    {
    led_rot();
    delay(400);
    led_aus();
    }
    else
    {
    // Verbinde mit einem Webserver und messe die Zeit
    unsigned long start=millis();
    if (client.connect(HOST, PORT))
    {
    unsigned long end=millis();
    if (end-start > MAX_CONNECT_MS)
    {
    // Hat zu lange gedauert
    led_aus();
    delay(50);
    led_blau();
    }
    else
    {
    // War schnell genug
    led_aus();
    delay(50);
    led_gruen();
    }
    }
    else
    {
    // Hat nicht geklappt, der Internet Zugang ist gestört
    led_aus();
    delay(50);
    led_rot();
    }
    client.stop();
    }
    delay(INTERVAL_MS);
    }

    void led_aus()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, LOW);
    digitalWrite(0, LOW);
    }

    void led_gruen()
    {
    digitalWrite(5, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(0, LOW);
    }

    void led_rot()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(0, LOW);
    }

    void led_blau()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, LOW);
    digitalWrite(0, HIGH);
    }


    [/php]

    Sollte jemand Interesse an der verlinkten Platine, dem Adapter, etc. haben, kann er sich gerne per PN melden.

  • Netzwerkseiten auf Erreichbarkeit prüfen - Anzeige per LED? Schau mal ob du hier fündig wirst!

  • Sehr schön. Ich habe gerade heute morgen über eine Ampelanzeige nachgedacht - allerdings für den Innenbereich und mit Batteriebetrieb. Ließe sich das dahingehend modifizieren? Kannst Du in etwa abschätzen, welche Batterielaufzeiten man mit/ohne leuchtender LED erreichen könnte? Und kannst Du vielleicht noch ein Photo mit einem Größenvergleich (Münze oder so) posten? Die Micro-USB-Buchse ist bei mir nicht sicher genug abgespeichert, um als Referenz zu dienen.

  • Servus Manul


    ... Innenbereich und mit Batteriebetrieb. ...

    das mit dem Batteriebetrieb des ESP ist so eine Sache ...
    Da Du das Teil ja in dem Fall nicht schlafen legen und den low power modus nutzen kannst, zieht der ESP afair allein schon im Schnitt um die 30 mA.
    Moment ... mir fällt grad was ein ... -> hier ist noch ein interessanter Link dazu <-.
    Also es sind wohl 35 mA.
    Bei 3500 mAh sind das 100 Stunden oder 4 Tage. Nicht wirklich viel. Wobei da die LED noch gar nicht mit eingerechnet ist.
    Da wirst Du imho um ein Netzteil nicht drumherum kommen.

    cheers,
    -ds-


  • Da Du das Teil ja in dem Fall nicht schlafen legen ... kannst ...

    Warum eigentlich nicht? Es würde doch genügen, alle paar Minuten die Verbindung zu checken.
    Und für die Anzeige würde doch eine LED genügen, die nur anzeigt, wenn das Wlan NICHT funktioniert. Wenn die noch im 2 Sekunden Rhythmus kurz blitzt...
    Wenn das Teil dann alle 5 Minuten 15 Sekunden aktiv ist... das könnte die Betriebsdauer um den Faktor 20 erhöhen. Wären immerhin fast 3 Monate. Bei 10 Sekunden alle 10 Minuten schon Faktor 60 ~ 8 Monate... Keine Ahnung, ob das realistisch ist, erstmal nur als Zahlenspielerei.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Das hatte ich mir auch schon überlegt ... dann braucht er aber die Hardware nicht und es genügt z.B. eine rote UH LED. Auch der sketch wäre komplett anders aufgebaut.
    Das mit dem Blinken ist auch so eine Sache ... erfahrungsgemäß blinkt's immer dann, wenn man gerade nicht hinschaut.
    Also praktisch was ganz Neues, was mit dem Teil von Neueinsteiger im Grunde (fast) nix mehr zu tun hat.

    Die Frage war ja, inwieweit Neueinsteigers Hardware mit Batteriebetrieb möglich wäre ;)

    cheers,
    -ds-

  • Hallo Neueinsteiger,

    Zusammen mit meinem Programm HostRepair könntest Du die Internet-Verbindung wieder herstellen, sollte sie verloren gehen.

    Ich würde auch versuchen, das Ganze über eine DUO-LED realisieren.
    Grün: aktiv (leuchtet alle paar Minuten mal)
    Rot: Problem
    Beide = Orange (HostRepair in Aktion)

    Wenn keine Probleme auftreten, wird nur gelegentlich für die LED Strom benötigt und dadurch die Laufzeit erhöht.

    Beste Grüsse

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Naja, einen Tod muss man ja sterben... Lange Laufzeit geht nur mit veränderter Funktion.
    Wieso braucht er die Hardware nicht mehr? Es muss doch nach wie vor die Funktion des Wlans geprüft werden, oder?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Naja, die Hardware wäre nicht das Problem. Der Lötjumper unten links im Bild verbindet RESET mit GPIO16. Das wäre die Hardwarevoraussetzung. Der Rest ist "nur" Software.

    Für meine temporäre Anwendung ist das Teil, so wie es ist, sehr gut. Ich hänge eine Powerbank dran und kann dann nachvollziehen, ob es einen Zugang zum Internet gibt oder nicht.

    Im Dauerbetrieb würde ich aber auch eher zu einem Netzteil greifen, als Klimmzüge zu machen, um einen Akku ein paar Tage länger auslutschen zu können. Das nächste Problem ist dann nämlich die Tiefentladung des Akkus. Wenn immer nur mit sehr geringen Strömen am Akku gesaugt wird, dann wird das auf Dauer nicht gut enden, fürchte ich. Auch müsste man erst mal schauen, was für einen Akku man nimmt und wie man auf die rund 3V kommt. Stepup oder Stepdown? Auch der Wandler hat dann wieder reichlich Verluste usw. usf...

    Andreas: Ich weiß noch nicht, wieso die Verbindung abbricht und hoffe mit diesem Teil etwas Klarheit zu bekommen. Laut AVM ist die Leitungslänge nicht das Problem.

  • Hi,


    ... Wieso braucht er die Hardware nicht mehr? Es muss doch nach wie vor die Funktion des Wlans geprüft werden, oder?

    naja ... die Platine mit der RGB-LED und die micro-USB Buchse sind ja das, was Neueinsteiger dazugebaut hat. Die sind dann hinfällig. Der sketch ebenfalls.
    Einzig einen ESP mit entweder dem Board von joh.raspi, einem -> Adapter-Board von der Stange <- oder, was ich gerne nehme, -> ein witty Developer-Board <- wird benötigt.
    Das hat alles nur marginal, und das auch nur zum Teil, mit Neueinsteigers Projekt zu tun.
    Ist also was komplett Neues.

    cu,
    -ds-

  • Hallo Neueinsteiger,
    interessantes Projekt!
    Als ich deinen Artikel gelesen habe, dachte ich "Oh man, das kenne ich!" Ich hatte damals einen Access Point neu eingerichtet und dieser war über Powerline mit dem Router verbunden. Ich bin verzweifelt weil immer wieder das gleiche Problem aufgetreten war, W-Lan war vorhanden aber keine Internetverbindung möglich. Nach langer Fehlersuche und unzähligen Software Änderungen und Neustarts war des Rätsels Lösung die Powerline Verbindung. Die Powerline Stecker nicht an Verlängerungskabel mit Steckdosenleiste verwenden! Verbindung überprüfen! Steht ja, glaube ich, auch in der Beschreibung.
    Ich gehe einmal davon aus dass Du die Beschreibung gelesen hast und dies deshalb nicht die Fehlerquelle für dein Problem ist. Wollte dies einfach nur mitteilen. Aber vielleicht konnte ich ja doch helfen.

    Grüße

  • Danke für den Hinweis. Die bisherige Erkenntnis nach einer halben Stunde in der Kälte am gestrigen Abend war genau die, die Du schilderst. Sporadisch fällt die Powerline Verbindung aus. Das ging mir natürlich nicht aus dem Kopf. Daher habe ich heute früh einen Blick in die Hauptverteilung geworfen. Da wurde mir dann einiges klar. Daher habe ich den "Sender" im Haus testweise an einen anderen Stromkreis angeschlossen. Bisher steht die Verbindung seit über einer Stunde, was es bisher nicht gab :D
    Ich hoffe es bleibt jetzt so.

  • Stichwort "Phasenkoppler"? Hilft in vielen Installationen (bei 3-phasigem Anschluss) bei powerlan weiter.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (5. Mai 2017 um 09:29)

  • Ne, das war nicht nur eine andere Phase. Das ist noch viel komplizierter. Aber wie schon geschrieben, sieht es so aus, als wäre das Problem jetzt gelöst. Das GUI des FRITZ!Powerline 540E ist auch nach fast zwei Stunden immer noch erreichbar. Nun könnte ich aber trotzdem noch mal nach dem Phasenkoppler Ausschau halten und damit testen, ob sich dadurch die Bandbreite erhöht. Wichtig war mir aber erst einmal, dass die Powerline Verbindung dauerhaft hält. Das ist nun gegeben.

  • Ja, es scheint jetzt zu laufen. Aber um noch mal auf das Projekt zurück zu kommen...

    Mir sind beim gestrigen Einsatz ein paar Dinge aufgefallen, die ich mit einer kleinen Hardwareergänzung nachgebessert habe. Zum einen fehlte mir ein Resettaster, mit dem ich den ESP neu starten kann. Das ständige Abziehen des USB-Steckers nervte mit der Zeit etwas.

    Zum anderen habe ich einen Schalter installiert, der über die GPIO 12/14/16 geht, wobei 14 als Ausgang mit aktiviertem Pullup geschaltet ist (das erspart mir eine weitere Leitung auf der kleinen Platine). 12 und 16 sind als Eingang definiert. So ist es nun möglich, zwei verschiedene Zeiten zu wählen, die der ESP abwartet, bis er einen erneuten Test durchführt. Ich habe 3 und 10 Sekunden gewählt. Ein längerer Test wird zeige, ob 3 Sekunden evtl. etwas kurz sind. Aber bisher funktioniert es. Für Kontrollzwecke habe ich noch die LED an GPIO13 angeschlossen.

  • Nett ... Du entwickelst Dich zum Programmierer ;) ...

    Ich hätte da auch eine Idee: ist der Analog-Eingang zugänglich? Dann könntest Du da ein Poti anschliessen und die Zeit stufenlos einstellen :cool:
    Du musst nur darauf achten, dass der A/D Wandler nur 0 bis 1 V beherrscht ... zumindest hab' ich das so abgespeichert ;)

    Jedenfalls eine schöne Geschichte,
    -ds-

  • Zum einen würde das Poti nicht auf die Platine passen und zum anderen wäre eine so variable Einstellung (für mich) nicht notwendig. Aber die Idee ist gut.

    Es gibt trotzdem noch ein kleines Update. Da noch ein GPIO frei war, habe ich noch einen (sehr) kleinen Taster auf die Platine gelötet. Da ich zwei verschiedene Wlans habe und keine Lust habe, jedes Mal das Programm zu ändern und neu aufzuspielen, nutze ich den Taster, um das Wlan zu wählen. Wird der Taster nicht gedrückt, startet automatisch Wlan1. Drücke ich den Taster während des "Bootvorganges", wenn die einzelnen Farben der LED kurz aufleuchten, wird Wlan2 aktiviert. Um eine visuelle Kontrolle darüber zu haben, welches Wlan aktiv ist, nutze ich die LED an GPIO13. Ist Wlan1 aktiv, blitzt sie 1x kurz auf. Ist Wlan2 aktiv, blitzt sie 2x kurz auf.

    Programmiertechnisch kann man das bestimmt eleganter lösen. Aber so wie es ist, macht es, was ich möchte. Da ich nicht auf Prozessor- oder speicherauslastung achten muss ist es für mich vollkommen okay.


    [code=php]
    /**
    * WLAN Monitor mit ESP-12 Modul.
    *
    * Kontrolliert die Erreichbarkeit eines Internet Servers
    * und zeigt den Status mit einer bunten LED an.
    *
    * Beim Start wird jede LED kurz getestet. Danach blinkt grün 3x kurz auf.
    * Wird während dieses Tests der Taster gedrückt gehalten, startet nicht automatisch Wlan1,
    * sondern Wlan2. Angezeigt wird dies durch Aufblitzen der LED an GPIO13.
    *
    * Grün = Alles Ok
    * Blau = Verbindung ist langsam
    * Rot = Verbindung ist ausgefallen
    * Aus = Keine Verbindung zum AP
    *
    * Ein leichtes Flackern der LED bestätigt, dass das Modul arbeitet.
    *
    * Die Schaltung ist ganz einfach:
    * Das ESP-12 Modul wird auf der Platine angebracht und dann z. B. mit 5V versorgt.
    * Die RGB-LED ist so angeschlossen:
    *
    * LED 3x 100 Ohm
    * GND o---+---|>|---[===]-------o GPIO0 blau
    * |
    * +---|>|---[===]-------o GPIO4 rot
    * |
    * +---|>|---[===]---+---o GPIO5 grün
    *
    *
    */

    #include <ESP8266WiFi.h>

    // Name und Passwort des Access Points
    #define SSID1 "Wlan No 1"
    #define PASSWORD1 "Passwort Wlan 1"

    #define SSID2 "Wlan NO 2"
    #define PASSWORD2 "Passwort Wlan 2"


    // Webserver, dessen Erreichbarkeit getestet wird
    #define HOST "heise.de"
    #define PORT 80

    // Wenn der Verbindungsaufbau länger dauert, geht die Anzeige auf blau.
    #define MAX_CONNECT_MS 100

    // Intervall für die Verbindungstests
    int INTERVAL_MS;

    int Abfrage_kurz;
    int Abfrage_lang;
    int LED = 13;
    int Intervall_kurz = 800; // 1/4 der gewuenschten Zeit eintragen
    int Intervall_lang = 2500; // 1/4 der gewuenschten Zeit eintragen
    int WlanX; // Tasterwert für Wahl des Wlan
    int Welches_Wlan = 1; // Variable: Wlan1 = 1 oder Wlan2 = 2

    // Wird verwendet, um Verbindungen zu testen.
    WiFiClient client;

    /** Wird beim Start einmal ausgeführt */
    void setup()
    {
    // Seriellen Port nicht verwenden
    //Serial.end();
        
    // LED's aus
    pinMode(5, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(0, OUTPUT);

    // Schalter für Abfrageintervall
    pinMode(14, OUTPUT);
    pinMode(12, INPUT_PULLUP);
    pinMode(LED, OUTPUT);
    pinMode(16, INPUT_PULLUP);
    digitalWrite(14, LOW);

    // Taster für Wahl des Wlan
    pinMode(2, INPUT_PULLUP);
    delay(500);

    // LED Test blau
    digitalWrite(0,HIGH);
    delay(800);
    digitalWrite(0,LOW);
    delay(300);

    // LED Test rot
    digitalWrite(4,HIGH);
    delay(800);
    digitalWrite(4,LOW);
    delay(300);

    // WLAN Parameter setzen
    // Wird der Taster nicht gedrückt, startet Wlan1
    // Wird der Taster gedrückt, startet Wlan2
    WiFi.mode(WIFI_AP);

    WlanX = digitalRead(2); // Zustand des Tasters wird ausgelesen
    if (WlanX == HIGH)
    {
    WiFi.begin(SSID1, PASSWORD1);
    Welches_Wlan = 1;
    digitalWrite(13,HIGH); // Ein kurzes Blitzen der LED GPIO13 für Wlan1
    delay(100);
    digitalWrite(13,LOW);

    }

    if (WlanX == LOW)
    {
    WiFi.begin(SSID2, PASSWORD2);
    Welches_Wlan = 2;
    digitalWrite(13,HIGH); // Ein kurzes doppeltes Blitzen der LED GPIO13 für Wlan2
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }

    // Signalisieren, dass alle Einstellungen vorgenommen wurden durch dreimaliges Aufblitzen der grünen LED
    digitalWrite(5,HIGH);
    delay(800);
    digitalWrite(5,LOW);
    delay(300);
        
    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(200);

    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(200);
        
    digitalWrite(5,HIGH);
    delay(200);
    digitalWrite(5,LOW);
    delay(200);
        


    }

    /** Hauptschleife, wird wiederholt ausgeführt. */
    void loop()
    {
    Abfrage_kurz = digitalRead(12); // Abfrage der Schalterstellung
    Abfrage_lang = digitalRead(16);
     
    if (Abfrage_kurz == LOW)
    {
    INTERVAL_MS = Intervall_kurz;
    }
    if (Abfrage_lang == LOW)
    {
    INTERVAL_MS = Intervall_lang;
    }
     
        
    // Sind wir mit dem AP verbunden?
    if (WiFi.status()!=WL_CONNECTED)
    {
    led_rot();
    delay(400);
    led_aus();
    }
    else
    {
    // Verbinde mit einem Webserver und messe die Zeit
    unsigned long start=millis();
    if (client.connect(HOST, PORT))
    {
    unsigned long end=millis();
    if (end-start > MAX_CONNECT_MS)
    {
    // Hat zu lange gedauert
    led_aus();
    delay(50);
    led_blau();
    }
    else
    {
    // War schnell genug
    led_aus();
    delay(50);
    led_gruen();
    }
    }
    else
    {
    // Hat nicht geklappt, der Internet Zugang ist gestört
    led_aus();
    delay(50);
    led_rot();
    }
    client.stop();
    }

    delay(INTERVAL_MS);
    if (Welches_Wlan == 1)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }

    if (Welches_Wlan == 2)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
     
    delay(INTERVAL_MS);
    if (Welches_Wlan == 1)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
    if (Welches_Wlan == 2)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
    delay(INTERVAL_MS);
    if (Welches_Wlan == 1)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
    if (Welches_Wlan == 2)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }

    delay(INTERVAL_MS);
    if (Welches_Wlan == 1)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
    if (Welches_Wlan == 2)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
    }
    }

    void led_aus()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, LOW);
    digitalWrite(0, LOW);
    }

    void led_gruen()
    {
    digitalWrite(5, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(0, LOW);
    }

    void led_rot()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(0, LOW);
    }

    void led_blau()
    {
    digitalWrite(5, LOW);
    digitalWrite(4, LOW);
    digitalWrite(0, HIGH);
    }[/php]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!