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

Поділитися
Вставка
  • Опубліковано 15 вер 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

КОМЕНТАРІ • 46

  • @uwep3409
    @uwep3409 Рік тому +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 8 місяців тому +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

  • @reinhardf.6581
    @reinhardf.6581 Рік тому

    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 Рік тому +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

  • @hubertkinna8641
    @hubertkinna8641 9 місяців тому

    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

  • @heiko3963
    @heiko3963 Рік тому +1

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

  • @kleinekellerwerkstatt6530
    @kleinekellerwerkstatt6530 7 місяців тому

    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

  • @heikohofi644
    @heikohofi644 Місяць тому

    Sehr gut erklärt, vielen Dank

  • @WoodworkingRuppen
    @WoodworkingRuppen Рік тому

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

  • @uweinabox3918
    @uweinabox3918 Рік тому

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

  • @stiv989
    @stiv989 Рік тому

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

  • @legonania
    @legonania Рік тому

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

  • @archeaopteryxm.b.8078
    @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

  • @christophb.3147
    @christophb.3147 5 місяців тому

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

  • @ChristianIstKeinCO2Schwurbler

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

  • @MyOliver64
    @MyOliver64 4 дні тому

    Habe gerade Deine Videoreihe entdeckt, super erklärt! Anmerkung bei [40:45] machst Du in Zeile 47 (in der If-Bedingung) eine zweite For-Schleife auf, um (tmpSum/size) in dem Array singleValues zu speichern und die Summe mit den Werten des Arrays aufzusummieren. Aber warum machst Du diese Schritte nicht gleich in der ersten For-Schleife ab Zeile 45, denn jede zusätzliche Schleife (und stell Dir nur vor diese würde bis 1 Million, oder 10 Million zählen) und deren Berechnungen (gerade wenn es komplexe Berechnungen sind) darin, erhöht die Laufzeit eines Programms.

    • @FrohnixBastelbude
      @FrohnixBastelbude  4 дні тому

      Weil tmpSum erst nach Beendigung der for-Schleife (Zeile 45) feststeht.

    • @MyOliver64
      @MyOliver64 3 дні тому

      @@FrohnixBastelbude Ah ja, Du möchtest praktisch in das singleValues-Array ab dem Index 0 bis zum Index size immer den selben Wert (tmpSum/size) zuweisen, der am Anfang der Schleife noch nicht bekannt ist. Das hatte ich übersehen, dass die tmpSum ja aufsummiert wird. Jedenfalls machst Du super Videos. Ich hoffe da kommen noch ein paaar mehr.

    • @FrohnixBastelbude
      @FrohnixBastelbude  3 дні тому +1

      Ist bereits in Arbeit.

  • @andreasroessner2571
    @andreasroessner2571 11 місяців тому

    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!

  • @xbowcx
    @xbowcx Рік тому +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.

  • @WilliHerda
    @WilliHerda 6 місяців тому

    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 3 місяці тому

      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

  • @larsmuhlhaus3351
    @larsmuhlhaus3351 Місяць тому

    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.

  • @Flo-cx8fi
    @Flo-cx8fi 2 місяці тому

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

    • @FrohnixBastelbude
      @FrohnixBastelbude  2 місяці тому

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

  • @fjeengel6863
    @fjeengel6863 11 днів тому

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

  • @huelsmart
    @huelsmart Рік тому

    Da issa wieder !! 🔥🔥🔥🔥

  • @hubertdornberger9522
    @hubertdornberger9522 Рік тому

    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  Рік тому

      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 8 місяців тому

      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 Рік тому

    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  Рік тому

      Na sichi, Didä 😄
      Beide Tage 😬

    • @MAVIST0
      @MAVIST0 Рік тому

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

  • @timwitzel1982
    @timwitzel1982 Рік тому

    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  Рік тому

      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.

  • @mertesadolf8792
    @mertesadolf8792 Рік тому

    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 4 місяці тому

    Geht die Reihe noch weiter ? :)

    • @FrohnixBastelbude
      @FrohnixBastelbude  4 місяці тому

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

  • @ischisch9127
    @ischisch9127 Рік тому

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

  • @MB-SC
    @MB-SC Рік тому

    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 Місяць тому

      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 Місяць тому +1

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

  • @oliverschmidt5121
    @oliverschmidt5121 Рік тому

    Hallo,
    welche Programmiersprache ist das bitte? Danke