Arduino Serie -

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ย. 2024

ความคิดเห็น • 41

  • @Patrick.
    @Patrick.  4 หลายเดือนก่อน

    Zusätzliche Hilfe gibt es NUR in der Community: linktr.ee/patrickhauswald

  • @hubertoberleithner4101
    @hubertoberleithner4101 4 ปีที่แล้ว +5

    Hi...
    also erstmal danke für dieses Video, welches das typische Anfängerproblem mit der Tasterabfrage löst. Ich glaube jeder, der mit der Mikrocontroller-Programmierung anfängt, hat das Problem, dass ihm nicht klar ist, das eine Taster-Abfrage, die im 'void loop()' steht, mehrere tausendmal in der Sekunde stattfindet.Es wird also mehrere tausendmal pro Sekunde ein Tastendruck registriert.
    Soll ein Tasterklick nur als einmalig betätigt gezählt werden, darf die Auswertung nur zu diesem Zeitpunkt stattfinden, als der Taster noch nicht gedrückt war. Sobald also der Taster gedrückt wurde, darf bei weiteren durchläufen der 'void loop()' das Betätigen des Tasters nicht weiter gezählt werden. Somit wird ein langes Drücken auf einen Taster, als nur ein Klick registriert.
    Dies erreicht Du durch die IF-Abfrage: if(buttonstatus != letzterStatus)
    So weit... so gut...
    Aber danach machst Du es leider sehr umständlich und rechenintensiv.
    Du benutzt zwei IF-THEN-ELSE-Abfragen und berechnest noch ein Modulo.
    Das bläht den Maschinencode unnötig auf und braucht relativ viel Rechenleistung.
    Deshalb schreibe ich hier mal eine effizientere Möglichkeit auf, welche genau das gleiche macht.
    //Programmcode ANFANG Licht AN/AUS mit Taster
    byte LED_PIN = 9; // Variablentypen immer so klein wie möglich wählen, damit der Arbeits-
    byte BUTTON_PIN = 10; // speicher nicht so voll wird. Hier sogar besser: #DEFINE nutzen.
    bool buttonstatus = 0; // Da buttonstatus und letzterStatus nur die Zustände 0 und 1 annehmen
    bool letzterStatus = 0; // können, sollte der Variablentyp bool genutzt werdern. Das spart
    bool light = 0; // Arbeitsspeicher und kann bei Berechnungen gut genutzt werden.
    void setup() {
    pinMode(LED_PIN, OUTPUT);
    pinMode(BUTTON_PIN, INPUT);
    }
    void loop() {
    buttonstatus = digitalRead(BUTTON_PIN);
    if (buttonstatus != letzterStatus){
    letzterStatus = !letzterStatus;
    light = light-buttonstatus; //Da bool als Variablentyp genutzt wird, kommt bei einen
    } //Unterlauf (unter 0) wieder eine 1 raus.
    digitalWrite(LED_PIN, light);
    }
    //Programmcode ENDE
    Ein Delay braucht man nur einbinden, falls man den Taster damit softwareseitig entprellen möchte.
    Dies erledigt bei Arduino-Schaltungen hardwareseitig aber auch ein 22pF-Kondensator parallel zum Schalter angeschlossen.
    Will man mit diesem Programmcode die Tasterklicks zählen, muss man nur den Variablentyp 'light' von 'bool' auf 'int' ändern und in der zeile 'light = light-buttonstatus' das Minus in ein Plus ändern.
    //Programmcode ANFANG Tasterklicks zählen
    byte LED_PIN = 9; // Variablentypen immer so klein wie möglich wählen, damit der Arbeits-
    byte BUTTON_PIN = 10; // speicher nicht so voll wird. Hier sogar besser: #DEFINE nutzen.
    bool buttonstatus = 0; // Da buttonstatus und letzterStatus nur die Zustände 0 und 1 annehmen
    bool letzterStatus = 0;// können, sollte der Variablentyp bool genutzt werdern. Das spart
    int zaehlen = 0; // Arbeitsspeicher und kann bei Berechnungen gut genutzt werden.
    void setup() {
    pinMode(LED_PIN, OUTPUT);
    pinMode(BUTTON_PIN, INPUT);
    }
    void loop() {
    buttonstatus = digitalRead(BUTTON_PIN);
    if (buttonstatus != letzterStatus){
    letzterStatus = !letzterStatus;
    zaehlen = zaehlen+buttonstatus; //Tasterklicks werden gezählt
    }
    //Eigener Programmcode. Z.B. Ausgabe der Anzahl der Tasterklicks
    }
    //Programmcode ENDE
    Weiter so mit Deinen Videos.
    Daumen hoch!

    • @spotzgeil
      @spotzgeil 3 ปีที่แล้ว +2

      hi hubert! dein code funktioniert so leider nicht. habe deinen code eins zu eins übernommen und musste feststellen, dass er ohne ein delay von mindestens einer millisekunde, nicht immer korrekt schaltet, da er möglicherweiße aufgrund des fehlenden delays zeilen überspringt. - aber mit delay erfüllt er die selben anforderungen im video. spitze, wenn alle so viel engagement zeigen!

    • @eumel_hd5865
      @eumel_hd5865 9 หลายเดือนก่อน

      Was heißt folgendes: letzterStatus = !letzterStatus;
      Heißt das dass letzterstaus jetzt nicht mehr den gleichen wert wie letzterstatus hat und somit auf 0 bzw 1 geändert wird, weil es bool ist?

  • @prayingthathansscissorwillbons
    @prayingthathansscissorwillbons ปีที่แล้ว

    danke vielmals für dieses wirklich gute Tutorial!!

  • @pcvijetin1
    @pcvijetin1 3 ปีที่แล้ว +1

    Super Video ! Hat mir sehr geholfen

  • @davidebarone4236
    @davidebarone4236 4 ปีที่แล้ว

    super toll erklärt mach weiter so brauchen solche Leute wie dich Danke.

    • @Patrick.
      @Patrick.  4 ปีที่แล้ว

      Freut mich wenn es dir geholfen hat :)

  • @cihadalo6859
    @cihadalo6859 13 วันที่ผ่านมา

    Sehr hilfreiches Video . Ich wollte dieses Programm mit Led Matrix strip komponieren Aber ging nicht . Hat jemand Ahnung

  • @bacaala
    @bacaala 2 ปีที่แล้ว +1

    sehr organisiertes turtorial! mega nice

  • @andysbastelwerkstatt7299
    @andysbastelwerkstatt7299 2 ปีที่แล้ว +1

    Danke für die Erklärung 👍

  • @mirroo4697
    @mirroo4697 3 ปีที่แล้ว

    Starke Erklärung, hat wirklich sehr geholfen

  • @stevenvoge9112
    @stevenvoge9112 4 ปีที่แล้ว +4

    Dein vid hat mit interessiert weil ich wissen wollte wie es andere machten. Vid hat mir gut gefallen. Ein Minus gibts da von meiner Seite doch noch. Die musi aber die musi muss nicht sein. Vielleicht liegt es am Alter, mir würde dein Dialog völlig reichen. In einer Vorlesung ist auch ruhe. Lg

  • @daechtepasi
    @daechtepasi ปีที่แล้ว

    Bei mir funktioniert es leider nicht und ich weiss nicht wieso kannst du mir helfen? Wenn ich deinen Code benutze passiert garnichts wenn ich meinen benutze den ich bei dir abgeschrieben habe anscheinend mit Fehlern leuchtet sie einmak heller und einmal nicht so hell wenn ich drücke

  • @tablebraker4167
    @tablebraker4167 ปีที่แล้ว +1

    Danke Brudi

  • @jaimiepagidis7072
    @jaimiepagidis7072 ปีที่แล้ว +1

    Danke für das Video

  • @tobing5737
    @tobing5737 3 ปีที่แล้ว +1

    Mega gutes Video!:)

  • @mo7aZa
    @mo7aZa 3 หลายเดือนก่อน +1

    Danke

  • @fabor.
    @fabor. 3 ปีที่แล้ว +1

    Hätte man Zeile 27-30 und 39-41 nicht auch weglassen können da er dann ja sowieso garnicht erst vor dem Konflikt stünde was er machen soll falls if nicht gegeben ist... Also die else wird ja nie angewendet vom arduino weil Beispielsweise wenn buttonstatus ungleich 1 ist dann wird eh nicht geschehen oder habe ich da etwas falsch verstanden🙈

  • @Kill1981Bill
    @Kill1981Bill ปีที่แล้ว

    Vielen Dank für das Video. Eine Frage habe ich, wenn der Arduino vom Strom genommen wird und dann wieder Strom bekommt, geht die LED gleich an. Was muss man machen damit Sie erstmal aus bleibt? Vielen Dank

  • @derdreher3456
    @derdreher3456 2 ปีที่แล้ว

    Hallo, super erklärt!!! Danke.

  • @manadokill69
    @manadokill69 ปีที่แล้ว

    Gutes Video, vielen Dank

  • @pauldilauro3632
    @pauldilauro3632 4 ปีที่แล้ว +1

    Wie mach ich das, dass die LED nur eine bestimmte Zeit angeht und dann von alleine aus. Wie ein Treppenhausrelais.

    • @СвятойБуратино
      @СвятойБуратино 3 ปีที่แล้ว

      www.tinkercad.com/things/kGQhc6pTzYZ-arduino-3-leds-1-taster-einschalt-ausschaltverzogerung

  • @willimaties5772
    @willimaties5772 5 ปีที่แล้ว +1

    Hallo,
    Ist es möglich durch einen langen Tastendruck eine Led auszuschalten und durch einen kurzen Tastendruck einzuschalten.
    Wenn Ja, wie?
    Gruß Willi

    • @Patrick.
      @Patrick.  4 ปีที่แล้ว

      Ja das ist möglich, es kommt demnächst auch ein Video dazu. Also wenn ich dich noch bis zum 08.08.2020 14:30 Uhr hinhalten kann würde ich mich sehr freuen wenn du dir da mein Video dazu anschaust :)

  • @spotzgeil
    @spotzgeil 4 ปีที่แล้ว +3

    toll erklärt, top!

  • @spotzgeil
    @spotzgeil 3 ปีที่แล้ว

    hat das eigentlich einen grund warum in dem code zum downloaden HIGH und LOW vertauscht sind im vergleich zum video?

  • @christiangoehl8925
    @christiangoehl8925 3 ปีที่แล้ว

    Ich möchte den Button parallel zu einem RC522 laufen lassen. Einzeln laufen beide Systeme schon, aber Leder noch nicht zusammen.
    Über nen Tipp wie ich das hinbekomme wäre ich echt dankbar.

  • @qlashy6883
    @qlashy6883 4 ปีที่แล้ว +1

    Hi Könntest du vielleicht mal über meine Schaltung schauen und mir sagen ob sie so funktioniert? Ich würde sie dir schicken wenn es ok ist.

  • @thomasuhlig2377
    @thomasuhlig2377 4 ปีที่แล้ว +1

    Mit einem Taster einfach... aber wie geht das mit 2 Tastern und 2 LEDs ???
    Hab bis jetzt noch kein Tutorial gefunden😣

    • @Patrick.
      @Patrick.  4 ปีที่แล้ว +2

      Gut das du fragst, am Samstag 14:30 Uhr kommt da von mir ein Video dazu :)

  • @_milowoneshoot5782
    @_milowoneshoot5782 2 ปีที่แล้ว

    Guten Tag
    Ich haben einen LCD und wollte diesen (wie die LED ansteuern) d.h wenn ich den Knopf einmal drücke soll das Display mit einem Text darauf angehen und wenn ich nochmal drücke wieder aus. An dem Display habe ich ein I2C dran. Könnte mir da wer helfen da ich nicht wirklich weiß wie ich das realisieren soll :D

  • @noahsamuel8204
    @noahsamuel8204 4 ปีที่แล้ว

    Kann man auch 2 leds mit dem knopfdruck starten? wenn ja wie ?

  • @j.d.1890
    @j.d.1890 3 ปีที่แล้ว

    Wie heißt das letzte Lied von dem Video (12:57-15:38)?

  • @jonieclix135
    @jonieclix135 3 ปีที่แล้ว +1

    gutes video

  • @Mica_No
    @Mica_No 2 ปีที่แล้ว

    der Code im Link ist am Ende die LED PIN ( HIGH)
    und Low vertauscht er ist also nicht gleich wie im Video.

    • @Mica_No
      @Mica_No 2 ปีที่แล้ว

      egal hab nur falsch abegschrieben, es macht ein Unterschied wenn man buttonstate=letzterstatus oder letzterstatus = buttonstatus macht.

  • @asnap_4625
    @asnap_4625 4 ปีที่แล้ว

    Wo finde ich das Programm?
    Tolles Video!

    • @Patrick.
      @Patrick.  4 ปีที่แล้ว

      Den Link findest du in der Videobeschreibung :)