Analog Input, Arrays und Schleifen | Arduino Programmierung verständlich erklärt

Sdílet
Vložit
  • čas přidán 5. 09. 2024
  • Hallo zusammen,
    Heute zeige ich euch, wie man effektiv Mittelwerte aus Messungen vom Analog-Input errechnet. Nebenbei kommen Arrays und Schleifen zum Einsatz.
    Wie immer mit vielen nützlichen Tips "nebenbei"
    Hier noch der Link zum github-Post, wo erklärt wird, wie man den seriellen Plotter verändert: github.com/ard...
    Viel Spaß beim Schauen !!
    ----------
    Der Nachbau ist natürlich auf eigene Gefahr und ohne Erfolgsgarantie ;-)
    Achtet auf eure eigene Sicherheit und benutzt erforderliche Schutzkleidung bzw. Sicherheitsmaßnahmen
    Wenn ich mal (ausversehen) im Video unsicher arbeite, macht es besser ;-)
    Meinen Shop findet ihr unter: www.frohnix.de
    ---------------------------------------
    ✂️ Videoschnitt
    ---------------------------------------
    DaVinci Resolve 17 (studio)
    ---------------------------------------
    🎥 Kameras
    ---------------------------------------
    SONY ZV-1
    LUMIX G70

Komentáře • 42

  • @uwep3409
    @uwep3409 Před rokem +5

    Moin Frank, es freut mich so sehr das es mit dieser Reihe weitergeht !
    Du erklärst die Dinge ausgezeichnet, für mich die beste Arduino Programmierreihe im deutschsprachigen Raum.
    Schön wäre es wenn du deine Beispiele zum Download anbieten würdest.
    Mach bitte weiter so!!

  • @bjornschultze6597
    @bjornschultze6597 Před 8 měsíci +2

    ich habe keine Ahnung vom Programmieren, am Ende auch absolut nix von dem Verstanden was du da erzählt hast 😀, aber Du erklärst es soo geil, das ich mir einen arduino inkl zubehör bestellt habe um unsere credit platine vom billardtisch zu ersetzen und nach eigenen Wünschen anzupassen🙂TOP

  • @heiko3963
    @heiko3963 Před rokem +1

    Hallo Frank, ich finde es super das es weiter geht mit den Arduino Kurs. Super alles erklärt, sehr gutes Video.👍

  • @hubertkinna8641
    @hubertkinna8641 Před 9 měsíci

    Hallo Frank, du hast es drauf, nicht langweilig, du wiederholst, gibst Tippst, steigerst die Problematik und trotzdem konnte ich dir nicht ganz folgen. Ich habe versucht das Ganze grafisch nachzuvollziehen, hat aber nicht ganz geklappt, kommt vielleicht noch. Hoffentlich bleibst du uns erhalten und bringst uns noch viele gute Sketsches

  • @reinhardf.6581
    @reinhardf.6581 Před rokem

    Hallo Frank,
    schließe mich allen an, welche das "super" fanden, endlich mal jemand der aus der Praxis erklärt.
    Bitte führe diese Videoreihe weiter

  • @gertnrw71
    @gertnrw71 Před rokem +1

    Hi Frank, freut mich das die Arduino Programmierung weiter geht, habe schon darauf gewartet :)
    Danke das du das so ausführlich darstellst, mir hilft das so sehr gut weiter.
    Gruß Gert

  • @christophb.3147
    @christophb.3147 Před 5 měsíci

    5:47 …es gibt sie also doch, die IF-Schleife😅… der Running Gag unter den Programmierern … *Spaß* …tolle Video-Reihe… vielen Dank …

  • @heikohofi644
    @heikohofi644 Před měsícem

    Sehr gut erklärt, vielen Dank

  • @kleinekellerwerkstatt6530
    @kleinekellerwerkstatt6530 Před 7 měsíci

    Hallo Frank, super Deine Programmierreihe bis hier hin… 👏👏👏 ich habe zwar bisher nur alles am Bildschirm verfolgt, werde aber auch noch alles praktisch nachvollziehen… Deine Erklärungen sind sehr gut nachvollziehbar… toll wäre es, wenn Du Zeit finden würdest weitere Folgen zu bringen… mein Ziel: eine automatisierte Blastgatesteuerung… natürlich nicht zu kaufen, sondern selbst zu bauen und zu programmieren… 🙈 LG Werner

  • @WoodworkingRuppen
    @WoodworkingRuppen Před rokem

    Hallo Frank! Super Videoreihe! Einfach und verständlich erklärt. Ich freue mich auf jeden Fall auf weitere Erklärvideos deinerseits 👍

  • @uweinabox3918
    @uweinabox3918 Před rokem

    Ich bin überrascht, dass es weitergeht. Super (und das bei diesem Wetter).

  • @stiv989
    @stiv989 Před rokem

    Großartig. Vielen Dank das Du mit diesem Thema weiter machst. TOP

  • @larsmuhlhaus3351
    @larsmuhlhaus3351 Před měsícem

    Hallo Frank, wird es hierzu nochmal weitere Reihen geben oder habe ich die übersehen? Ich habe hier wirklich viel neues gelernt und ich finde das super erklärt von dir. Würde mich freuen weiteren Content in dieser Richtung von dir zu sehen.

  • @legonania
    @legonania Před rokem

    Super Video 👍
    Deine arduino Reihe hat mir schon gut weiter geholfen.

  • @archeaopteryxm.b.8078

    Hi Frank,
    ich finde das so klasse wie du das erklärst. Ich habe sogar ein paar Sachen verstanden. grins
    Da sieht man halt wer es so richtig drauf hat.
    Viele Grüße
    Markus

  • @Flo-cx8fi
    @Flo-cx8fi Před 2 měsíci

    Kommen in Zukunft noch mehr von den Arduino Tutorials? Super erklärt würde mich freuen wenn du diese Kurse fortsetzt👍🏼

    • @FrohnixBastelbude
      @FrohnixBastelbude  Před 2 měsíci

      Ich versuche, demnächst mal wieder was zu machen. Mir fehlt einfach die Zeit.....

  • @xbowcx
    @xbowcx Před rokem +1

    Gut erklärt, bis auf die IFSchleife.🙈 die Erstauffüllung des Arrays hätte ich in die Setuproutine gepackt. Macht es übersichtlicher und spart die Abfrage im Hauptprogramm. Im realen Leben hat keiner Lust die Dinge ständig in andere Fächer um zu packen 😂 Ringspeicher mit Zeiger.

  • @ChristianIstKeinCO2Schwurbler

    Allein schon für die 🙂 gute Laune gibt's nen Daumen. 👍

  • @andreasroessner2571
    @andreasroessner2571 Před 11 měsíci

    Hallo Frank, ich habe schon auch schon bei anderen reingeschaut, du erklärst das wirklich super!
    Kannst du mal einen Sketch machen, wo du einen Schrittmotor ansteuerst und mittels mehrerer Taster jeweils eine dazugehörige feste Positionen anfährst?
    Wäre voll super!

  • @WilliHerda
    @WilliHerda Před 5 měsíci

    Lieber Kollege Frohnix;
    Vielen Dank für dieses Video!
    Es hat mir sehr geholfen, bei der Programmierung eines Timers mit analoger Eingabe über ein Poti. (Ja, auch ich erfinde gerne mal etwas...)
    Da ich mein Projekt mit ATtiny umsetzen will, kommt ein 1000er Array nicht in Frage. Aber, mit Poti an Minus und über einen LDO 3,3V habe ich nach der Mittelwertbildung final nur Abweichungen von max. 2%. Was mir reicht.

    • @flyhigh1286
      @flyhigh1286 Před 2 měsíci

      Moin moin, ein 1000-er Array ist - soweit ich das durchblicke - nicht nötig. Der eingelesen Wert wird immer in die Position 9 im Array - "singleValues[9] = analogValue" geschrieben, dann wird in der for-Schleife der Mittelwert über die ersten 10 Elemente des Arrays gebildet - und anschließend in einer for-Schleife ein Shift der Elemente auf die jeweilige Vorgängerposition vorgenommen. MaW: ein Array von 10 Elementen würde schon reichen. Viel Erfolg beim Basteln und Programmieren

  • @fjeengel6863
    @fjeengel6863 Před dnem

    Hallo Frank. Wo kommt der Analogwert her? Ist an A0 ein Poti angeschlossen?

  • @huelsmart
    @huelsmart Před rokem

    Da issa wieder !! 🔥🔥🔥🔥

  • @hubertdornberger9522
    @hubertdornberger9522 Před rokem

    Hallo Frank, es ist immer wieder schön deinen Videos zu folgen. Zumal ich in einer anderen Programmiersprache schreibe und ich mich tatsächlich mit dem C-Dialekt etwas schwer tue.
    Ich habe dennoch zwei Vorschläge zum Programm:
    1) wäre es nicht schneller erstmalig das Value in jede Stelle des Arrays zu schreiben anstatt sich die Anzahl Messwerte zu holen, und den Mittelwert zu bilden ?
    2) an sich wäre alternativ eine Integral-Funktion möglich, in der nur die Summe gesichert wird. Das spart Speicherplatz.
    Neue_Summe = ( Summe - ( Summe / AnzahlWerte ) + NeuerWert );
    Neuer_Mittelwert = Summe / AnzahlWerte;

    • @FrohnixBastelbude
      @FrohnixBastelbude  Před rokem

      Zu 1: klar kann man das machen, aber da hat man eben nur einen Wert und das könnte natürlich ein „schlechter“ sein (zu tief, zu hoch, ect. )
      Zu 2: Sicher geht das auch so. Da spart man einiges an Platz.
      Ich mache das aber oft mit Arrays, weil man da natürlich noch andere Möglichkeiten zur nachträglichen Analyse hat.
      Gerade beim programmieren führen 100000 Wege zum Ziel 😬

    • @Henry-sv3wv
      @Henry-sv3wv Před 7 měsíci

      Dass ist kein C Dialekt, das ist C++
      die main() funktion (in der datei: avr/cores/arduino/main PUNKT cpp) wird vor dir versteckt und ruft setup() und dann loop() in dauerschleife auf.
      Außerdem werden heimlich vorwärzdeklarationen generiert und deinem sketch hinzu-copy-pasted bevor der c++ compiler (avr-gcc) deinen quellcode sieht.
      Serial dot begin(115200); kann man einfach so in den sketch schreiben weil (auch vor dir versteckt) im Hintergrund die entsprechende C++ Klasse aus dem Arduino Framework als Serial objekt-variable instanziiert wurde. ( HardwareSerial Serial(...); // in HardwareSerial0 dot cpp )
      die begin methode in der Klasse (code in HardwareSerial dot cpp ) inizialisiert dann den Register-Kram im ATmega328P für die Benutzung der UART ...

  • @MAVIST0
    @MAVIST0 Před rokem

    Frank du alter Schlumpf! kommst du im August wieder auf die Maker-Faire? Onkel Phil, der End und ich sind auch wieder da (ich zumindest Samstag, die anderen beiden wollen wohl beide Tage) - gruß Dieter !

    • @FrohnixBastelbude
      @FrohnixBastelbude  Před rokem

      Na sichi, Didä 😄
      Beide Tage 😬

    • @MAVIST0
      @MAVIST0 Před rokem

      @@FrohnixBastelbude na denn werden wir uns sehen - ick freu mir !

  • @mertesadolf8792
    @mertesadolf8792 Před rokem

    Besser kann man die Sache nicht erklären.der Kopf qualmt,aber ist halt Theorie,muss man auch lernen.Mich würde ein Praktisches Bsp,was man auf ein Garagentor anwenden könnte interesieren.Zb.sp. zwei Taster,zwei Endschalter(Sensoren)..Kurtz beschrieben,Digitale Inputs ,die Eingänge abfragen und je nach zusstand digitale Ausgänge steuern.Ein Garagentoor ist zu,der Motor darf egal welchen Taster ich betätige, nicht zu fahren sondern auf machen und natürlich auch das gleiche im Umgekehrten Falle;Tor ist auf.

  • @leagueofshaco2901
    @leagueofshaco2901 Před 4 měsíci

    Geht die Reihe noch weiter ? :)

    • @FrohnixBastelbude
      @FrohnixBastelbude  Před 4 měsíci

      Theoretisch ja. Es fehlt, wie immer, die Zeit. Mal sehen, wann ich wieder Luft habe.

  • @timwitzel1982
    @timwitzel1982 Před rokem

    Moin, ich hab mal ne frage.. ist es möglich ein programm zu bauen dass auf mehrere ardoinos zugreift?
    also ein teil der sernsorik und aktorik ist bei meinem nächsten projetkt einfach sehr weit vom anderen teil entfernt und ich würde quasi aus mehreren ardoinos über netzwerk "einen" mache wollen.. geht das?

    • @FrohnixBastelbude
      @FrohnixBastelbude  Před rokem

      Naja, "Einen" machste daraus nicht.
      Auf beiden läuft dann eher eine eigene Software und die müssen dann kommunizieren. Seriell oder LoRa...
      Kommt eben auf die Datenmenge und den Abstand an. I2C oder SPI sind, glaube ich, nicht für größere Strecken geeignet.

  • @ischisch9127
    @ischisch9127 Před rokem

    Ja ja, jetzt weiß ich warum bei mir nie was funktioniert hat, ich bin einfach zu dämlich

  • @MB-SC
    @MB-SC Před rokem

    Hallo Frank, Super- es geht weiter. Ein Hinweis zu der Aussage wegen Speicherplatz. Du hast beim 'nano every' 48 KB, beim UNO oder nano hat man nur 32 KB, mit dem int Array[1000] bekommt man eine Fehlermeldung. Datenbereich überschreitet den verfügbaren Platz auf der Platine und es gibt im Serieller Monitor komische Ausgaben 250,l250,750,304,376
    250,750,491,378
    250,>9#�M������H�250,750,296,369
    Ich hab jetzt getestet, bei singleValues[880] ist bei mir Schluß.👍

    • @Klimafutzi
      @Klimafutzi Před 23 dny

      Du benutzt wahrscheinlich einen Aduino Nano R3 mit 2048 Bytes Speicher.
      Der Frank verwendet den Arduino Nano Every. Der besitzt 6 Kilo Bytes bzw. 6144 Bytes Speicher.
      Ein Integer ist 16 Bit groß, bedeutet pro Integer 2 Bytes Verbrauch.
      Da der Arduino auch intern bereits Speicher belegt (für Millis,Timer, usw), sind bei dir dann "nur" noch 880 Bytes für das Array übrig.
      Ein paar Bytes verbrauchst du ja auch noch für die anderen Variablen, wie Average, Sum, ...

    • @MB-SC
      @MB-SC Před 23 dny +1

      @@Klimafutzi Richtig. Ich wollte nur darauf hinweisen, wer nicht den Nano Every hat, bekommt eine Fehlermeldung.

  • @oliverschmidt5121
    @oliverschmidt5121 Před rokem

    Hallo,
    welche Programmiersprache ist das bitte? Danke