Der einfache Einstieg in Arduino & Co. 7: Analoge Eingänge

Поділитися
Вставка
  • Опубліковано 17 лис 2024

КОМЕНТАРІ • 38

  • @magicmastera
    @magicmastera 5 років тому +3

    Immer wieder toll, Danke. Lerne immer wieder spannende Details dazu.

  • @wolfgangboettcher3126
    @wolfgangboettcher3126 5 років тому +1

    Diese Programmierung ist sehr kompliziert ,ich Versuche es zu Verstehen

  • @manfredwittemann4198
    @manfredwittemann4198 5 років тому

    Danke für dieses Video. Spannend erklärt und gut verständlich.

  • @judahbenhur9247
    @judahbenhur9247 3 роки тому +2

    08:00
    Wieso das "!" nach val, habe es auch ohne ausprobiert, hat nicht funktioniert.
    Wie kommt das respektive warum funktioniert es bei diesem Beispiel nicht ohne?
    .
    Danke für die hervorragende Arbeit, den Content den sie hier generieren!

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  3 роки тому +1

      Mit '!=' wird auf 'nicht gleich' getestet. Der nachfolgende Code wird nur ausgeführt, wenn sich val und oldVal unterscheiden. Ein Test auf 'ist gleich' müsste mit '==' erfolgen. Wird nur '=' verwendet, ist das eine Zuweisung. val wird dabei einfach auf den Wert von oldVal gesetzt. So funktioniert der Code dann selbstverständlich nicht mehr.

    • @judahbenhur9247
      @judahbenhur9247 3 роки тому

      @@HobbyelektronikerCh Danke vielmals für die schnelle Antwort.

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

    Direkt Abo, gefällt mir sehr gut

  • @WoW4332
    @WoW4332 5 років тому

    Wenn mich nicht alles Techt, müsste ich auch genau werden, wenn ich die 5 Volt am 5V in Pin anlege oder meinetwegen 12 Volt am Stecker und der interne Spannungswandler regelt dann aud 5 V. Ist das soweit richtig? Edit.: Zum 2. und wie ich die Spannung (72V) auslesen will. Genauso die (bis zu 60 A) den Durchflussstrom. Aus Der Spannung lassen sich Rückslüsse auf die verbleibende Kapazität des Akkus ziehen und aus den Ampare * der Spannung die mommentane Leistung. Die Hall oder IR Sensoren bestimmen die Drehgeschwindigkeit des Rades und mi dem Umfang errechnet man mit der Drehzahl die Geschwindigkeit. Jetzt kann das Arduino mit hilfe der angegebenen Strecke das eingehende Podisignal soweit herunter regeln, bis der verbrauch den maximalen Verbrauch um anzukommen nicht übersteigt und als PWM an den Motorcontroller weiterleiten. Und noch eine Frage. Muss das wirklich ein Delay sein? der Friert mir ja den Ganzen Code ein. Da muss es doh noch eine andere Möglichkeit geben.

    • @renelobsiger3050
      @renelobsiger3050 5 років тому +1

      Wenn du exakt 5V an den 5V - Pin anlegst, bekommst du bessere Resultate als bei einer Speisung über USB. Das gilt auch für eine Speisung über 12V. Der 5V - Regler auf dem Board sorgt dann für eine bessere Genauigkeit.
      Generell gilt, dass Delays möglichst vermieden werden sollten. In diesem Stadium des Kurses wollte ich aber noch möglichst einfach bleiben. Zeitsteuerung über millis() wird aber später ein wichtiges Thema sein.

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

    Ganz fein alles. Besonders die Ruhe bei den Erklärungen. Vielen Dank.
    Nach einigen Jahren "herumstocherei" habe ich nun erkannt, dass mir doch noch viel fehlt. Daher wollte ich " Den einfachen Einstieg in Arduino"
    durcharbeiten. Ist doch noch aktuell, oder?
    Leider kann ich die heruntergeladenen PDF Dateien nicht öffnen. Liegt es an mir?

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

      Ich nehme an, dass due die Datei Aufgaben07.zip heruntergeladen hast. Wenn du diese entpackst, erhälst du drei PDF-Dateien und zwei PNG - Dateien. Bei mir lassen sich alle 5 Dateien problemlos öffnen. Funktioniert bei dir keine der Dateien?

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

      Danke für die prompte Antwort. Nachdem ich es gestern auf zwei verschiedenen Rechnern probierte klappte es nicht. Heute morgen klappte es jedoch ausgezeichnet. Dann will ich mal mit Begeisterung weiter machen.@@HobbyelektronikerCh

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

      Jetzt habe ich auch die Erklärung gefunden. Ich habe den ersten Ordner "MACOSX" geöffnet.

  • @Dripfluencer
    @Dripfluencer 3 роки тому

    Ich küss dein Auge habe wegen dir ein Plus

  • @Chrfilmer
    @Chrfilmer 5 років тому

    11:00
    Hätte man theoretisch der Variable oldaVal in Zeile 19 nicht einfach die Zuweisung der 0 entfernen können? So das man die int nicht auf static setzten muss?

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  5 років тому

      Nein, das geht nicht. Eine lokale Variable verliert ihren Wert jedesmal, wenn die Funktion verlassen wird. Mit static wird die Variable wie eine globale Variable behandelt. Sie wird beim ersten Durchgang auf 0 gesetzt, behält aber danach ihren Wert, auch wenn die Funktion verlassen wird. Da die Variable nur innerhalb der Funktion messung() verwendet wird, ist es sinnvoll, sie als static lokal in der Funktion zu definieren anstatt eine globale Variable zu erzeugen.

    • @Chrfilmer
      @Chrfilmer 5 років тому

      Der Hobbyelektroniker und was wäre wenn man static int oldaVal ohne Zuweisung 0 hat? Das wäre egal oder?
      static int oldaVal;

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  5 років тому

      @@Chrfilmer Vermutlich schon. Ich nehme an, dass der Compiler die Variable auf 0 setzt, wenn nichts anderes angegeben ist. Es ist aber möglich, dass dieses Verhalten ausgeschaltet werden kann.

    • @andreasschmitt2307
      @andreasschmitt2307 3 роки тому

      @@Chrfilmer
      Ganz konkret werden statische Variablen durch die C-Runtime-Library mit 0 initialisiert, das definiert der ANSI-C-Standard. Gerade im Embedded-Bereich ist es aber durchaus möglich, dass die CRT aus Platzgründen nicht verwendet wird, man muss dann alle statischen und globalen Variablen selbst initialisieren.

  • @klimbimbla
    @klimbimbla 3 роки тому

    Hallo, ich bin auch neu im Thema.
    Kann mir jemand verständlich machen, wie der Sketch
    1.) bei 07:40 mit der Initialisierung verfährt?
    2.) weiß, dass oldVal den letzten gemessenen Wert enthält/ausgibt?
    EDIT: gegen Ende wird ja „oldVal = val“ definiert und da das Programm Zeile für Zeile ausgeführt wird, wird val dann bei erneutem Durchlauf zu oldVal - alles klar! 👌
    Ein schönes Video, besonders der Kniff, die Eingangsspannung zu prüfen und anzupassen.

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  3 роки тому

      val soll ja nur ausgegeben werden, wenn es sich vom vorherige Wert unterscheidet. Der vorherige Wert ist in der Variablen oldVal gespeichert. Da beim Start des Programms oldVal noch keinen Wert zugewiesen bekommen hat, wird oldVal bei der Deklaration der Variablen auf 0 gesetzt. Die Initialisierung soll einfach dafür sorgen, dass oldVal vor dem ersten Vergleich (if (val != oldVal)) einen definierten Wert hat. Später wird dann oldVal immer auf den zuletzt eingelesenen Wert gesetzt (oldVal = val).

  • @Oettinger53
    @Oettinger53 5 років тому

    Super Video, wie man es gewohnt ist:-) Wie kommt es eigentlich, dass so ca. 1,6 Volt angezeigt werden, obwohl kein Poti und Kabel angeschlossen sind? Vielen Dank.

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  5 років тому

      An welcher Stelle im Video sollte das sein? Das Poti ist mit 5V und GND verbunden, das Messgerät ist am Schleifer angeschlossen.

    • @Oettinger53
      @Oettinger53 5 років тому

      Ist an gar keiner Stelle:-) Ist mir nur so aufgefallen, als alles abgeklemmt war und im seriellen Monitor immer noch eine Spannung angezeigt wurde. Ansonsten funktioniert der Aufbau aber einwandfrei.

    • @andreasschmitt2307
      @andreasschmitt2307 3 роки тому

      @@Oettinger53
      Was sollte denn deiner Meinung angezeigt werden, wenn nichts angeschlossen ist? Das ist das typische Problem "schwebender" Eingänge, die sind hochohmig und fangen sich irgend etwas aus der Umgebung ein. Schon, wenn du da mit einem Finger ranfasst (oder nur in die Nähe kommst), wird sich der Wert ändern. Das gleiche passiert mit dem Multimeter auf Spannungsmessung, wenn "nichts" angeschlossen ist.

  • @cCcBuDDycCc
    @cCcBuDDycCc 2 роки тому

    Wie bestimm ich genau den R3 ? Muss dieser immer 10k sein?

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  2 роки тому

      Der Widerstand R3 sollte etwa dem Widerstand des LDRs bei mittlerer Beleuchtungsstärke entsprechen. Das ist aber nicht sehr kritisch.

  • @blendraphi
    @blendraphi 5 років тому

    Danke :)

  • @filiphesse7148
    @filiphesse7148 5 років тому

    oldVal = 0 in 7min40sec ist nicht so ganz gut. Falls ich es einschalte und der Sensor (Potentiometer) Null messt, wird auf den Bildschirm nichtz gezeigt.
    Besser ist oldVal = -1, oder oldVal = 1025. Das kann der Sensor niemals messen und der erste Durchlauf wird bestimt angezeigt.

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  5 років тому

      Da hast du natürlich recht. Es ist immer besser mit einem Wert zu initialisieren, der in den Messungen nicht vorkommt.

  • @AppleFreak675
    @AppleFreak675 4 роки тому

    Wieviel Strom verbraucht so ein Sensor? Ich finde nichts darüber im Internet

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  4 роки тому

      Stromverbrauch ist immer ein heikles Kapitel bei Mikrokontrollern. Die Sensoren selbst nehmen normalerweise einen verschwindend kleinen Teil des Stroms. Der Hauptanteil fällt auf den Arduino. Spannungsregler und USB-Schnittstelle brauchen verhältnismässig viel Strom. Der Stromverbrauch des LDR - Sensors hängt hauptsächlich von der Beleuchtungsstärke und R3 ab. In diesem Beispiel liegt das immer unter 1 mA. Der Arduino selbst braucht sicher mehr als 50 mA.

  • @killkesscmbn
    @killkesscmbn 4 роки тому

    Kurze Nachfrage: Wozu ist R3 notwendig?

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  4 роки тому

      R3 bildet mit dem LDR zusammen einen Spannungsteiler. Der analoge Eingang ist sehr hochohmig und so wäre ohne R3 die Spannung an A0 immer 5V, unabhängig von der Lichtstärke.

    • @killkesscmbn
      @killkesscmbn 4 роки тому

      @@HobbyelektronikerCh Vielen Dank für die schnelle Antwort. Leider bin ich noch Neuling im Bereich Elektrotechnik und verstehe deshalb die Antwort nicht vollständig. Durch den Spannungsteiler liegt also am A0 eine geringere Spannung an. Meine LDR hat einen Widerstand von 4,66kOhm, der R3 10kOhm. Dann muesste die Spannung bei 5V an A0 maximal 1,59V betragen? Was hat die "Ohmigkeit" des Eingangs damit zu tun? Entschuldigen Sie die "dummen" Fragen. Und vielen Dank für die tolle Serie!

    • @HobbyelektronikerCh
      @HobbyelektronikerCh  4 роки тому

      @@killkesscmbn Der Eingangswiderstand von A0 liegt parallel zu R3. Wenn R3 fehlt, sind nur Eingangswiderstand und LDR für den Spannungsteiler zuständig. Der Eingangswiderstand ist aber so hoch, dass er bei der Parallelschaltung mit R3 vernachlässigt werden kann. Bei LDR = 4.66K und R3 = 10K erhält man eine Spannung an A0 von (5V / (4.66K+10K) * 10K = 3.41V.
      Die Fragen sind ganz sicher nicht "dumm". Ich weiss, dass das am Anfang ganz schön verwirrend sein kann.
      Die UA-cam - Kommentare sind nicht besonders gut geeignet solche Dinge zu diskutieren. Im Forum auf community.hobbyelektroniker.ch geht das viel besser. Einfach eine Frage in community.hobbyelektroniker.ch/wbb/index.php?board/26 absetzen. Dabei aber unbedingt schreiben, um welches Video es sich handelt.

  • @TheMoosalp
    @TheMoosalp 5 років тому

    Very Good