- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 13

Thema: kann ein Arduino asymmetrische Taktgeber oder Stromstossrelais ersetzen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    hallo,
    ein Arduino-Pin ist zu schwach (von der Stromstärke), um Verbraucher direkt zu schalten (außer LEDs), egal ob 5V oder mehr oder weniger.
    Man kann aber mit Arduino-Pins Transistoren oder MOSFETS oder H-Brücken ansteuern, die dann ihrerseits die stärkeren Verbraucher schalten, z.B. auch Motoren oder Relais, und dann auch mit weniger oder mehr als den Arduino-eigenen 5V (oder 3,3V bei manchen anderen Typen), z.B. auch 8V oder 12V oder 230V.
    Um diese höhere Spannung zu schalten, muss dann natürlich auch eine zugehörige zusätzliche höhere Spannungsquelle her.

    http://www.elektronik-kompendium.de/...lt/1201131.htm

  2. #2

  3. #3

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Ein Arduino ist Microcontroller basiert und benötigt deshalb ein Programm das Du vermulich selber schreiben musst.
    Dann sind aber die Möglichkeiten schier unendlich - Ich denke aber, das war Dir schon bewusst!

  5. #5
    Hallo HaWe,

    Danke für die Informationen.
    Habe mir nun also eine Arduino-Kit zugelegt und bin nun doch etwas verblüfft.
    Zwar kann man easy asymmetrische Taktgeber ersetzen, Funktionen in Reihe schalten und mit Relais stärkere Stromkreise schalten, jedoch ist es nicht möglich gleichzeitig mehrere Schaltungen durchzuführen.
    Also in meinem konkreten Fall: kann ich mit drei Schaltern zeitgleich drei Motoren separat für eine bestimmte Zeitspanne schalten oder benötige ich dafür drei Arduinos?
    Eine andere Frage ist, gibt es eine Möglichkeit die Schaltimpulse anzusammeln?
    Danke im Voraus,
    Marodeste

  6. #6
    HaWe
    Gast
    Zitat Zitat von marodeste Beitrag anzeigen
    Hallo HaWe,

    Danke für die Informationen.
    Habe mir nun also eine Arduino-Kit zugelegt und bin nun doch etwas verblüfft.
    Zwar kann man easy asymmetrische Taktgeber ersetzen, Funktionen in Reihe schalten und mit Relais stärkere Stromkreise schalten, jedoch ist es nicht möglich gleichzeitig mehrere Schaltungen durchzuführen.
    Also in meinem konkreten Fall: kann ich mit drei Schaltern zeitgleich drei Motoren separat für eine bestimmte Zeitspanne schalten oder benötige ich dafür drei Arduinos?
    Eine andere Frage ist, gibt es eine Möglichkeit die Schaltimpulse anzusammeln?
    Danke im Voraus,
    Marodeste
    ja, das geht, und zwar sogar auf verschiedene Weise.
    Zum Einen kann man sog. Timer-Interrupts programmieren, die alle unabhängig voneinander ihre eigenen Schaltzeiten haben (z.B. alle 2sec, alle 5 Minuten oder alle 3 Stunden). Die werden unabhängig von der Haupt-Loop aufgerufen, sobald sie ihren Timerwert erreicht haben.
    Zum Anderen kann ein Schaltvorgang auch mit sog. Pinchange-Interrupts erreicht werden die ohne feste Zeit auf "äußere Signale" reagieren (Schalter, Ultraschall- oder RFID-Sensoren).
    Weiterhin kannst du über die sog. millis()-Funktion auch selber für jeden Vorgang in der Loop eigene Stoppuhren programmieren ("wait without delay").
    Außerdem ist mit bestimmten Arduinos (Arduino Due, Zero, ESP32 oder Nano33) auch sog. Multithreading möglich, wo du für jeden Schaltvorgang eine eigene Loop programmierst, die dann sowohl auf Zeitintervalle als auch auf Sensorsignale gesondert reagieren kann, und alle Loops laufen quasi gleichzeitig und unabhängig nebeneinander (über sog Zeitscheiben-Scheduler).
    Alles das erfordert aber schon einen relativ tiefen Einstieg in die Programmier-Materie.

    PS,
    was du mit "ansammeln" meinst, verstehe ich jetzt nicht, aber probier erstmal die einfacheren Schritte, der Rest findet sich später...

    PPS,
    wenn dein Interrupt (edit: per Timer oder Sensor) irgendwann auslöst, kannst du über die zugehörige Funktion (die du ntl auch schreiben musst) z.B. auch 2, 3 oder 10 Pins gleichzeitig schalten, die dann ihrerseits zugehörige Motoren ansteuern.
    Geändert von HaWe (29.08.2020 um 15:53 Uhr)

  7. #7
    Besten Dank, Meister HaWe!

    Ja, das ist Stoff genug ! Vielleicht sollte ich freiwillig in Quarantäne geraten!


    Mit "ansammeln" meine ich, dass wenn der Schalter 5x gedrückt wird und einmal drücken schaltet den Motor für 10s ein, dass dann der Motor eben 50s läuft.
    Quasi die Impulse addieren, um insgesamt die Laufdauer davon abhängig zu machen, wie oft im Vorfeld der Schalter gedrückt wurde.
    Ist das verständlich?

    Nun wollte ich auch nochmal fragen, ob es denn ein richtiges Erklärungsbuch für den Arduino gibt, in dem auch die diversen Ebenen erläutert werden?

    Nochmals besten Dank,
    Marodeste

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wenn Du was generelles zum Einstieg suchst, kann ich Dir dieses Einsteigerkit empfehlen: Arduino Starter Kit für Anfänger K040007
    Das Buch enthält viele Schaltungen mit Programmbeispiel und die benötigte Elektronik.
    Ich habe das auch immer noch im Schrank, zum Nachschlagen, vieler alltäglicher Problemlösungen.
    Darüber hinaus tut es dann das Internet, wo man weitere in die Tiefe gehende Informationen findet.

    MfG

  9. #9
    HaWe
    Gast
    zum "Ansammeln": ja, auch das geht, ist aber auch eher was für die übernächste Level, nicht schon für absolut erste Schritte. Das Stichwort dazu heißt "Statemachine" oder "Zustandsautomat".

    ich habe auch so ein ähnliches Anfängerset als Einstieg gehabt, samt Tutorial für verschiedene Lernprojekte.
    Ein Lernprogramm, das alles abdeckt, gibt es nicht, da sind die Möglichkeiten viel zu unüberschaubar.
    Vermutlich hast du einen Uno in deinem Starterset, dann guck dir doch mal auch diese Tutorials an (hoffe sie sind noch aktuell):

    Arduino Playground
    https://www.arduino.cc/en/Tutorial/HomePage

    tronixstuff (free tutorials):
    http://tronixstuff.com/tutorials/

    Sainsmart_Uno-Starter-Kit:
    http://www.selloutsoon.com/albums/do...0Tutorials.zip

    Sainsmart_Nano-Starter-Kit:
    http://www.selloutsoon.com/albums/do...0/Nano+kit.rar

    Sainsmart_Mega2560-Starter-Kit:
    https://www.sainsmart.com/products/m...r3-starter-kit
    http://s3.amazonaws.com/s3.image.sma...2BMEGA2560.rar

    Arduino-Praxisbuch_Sommer_Franzis
    https://www.elo-web.de/electronic/di...ldBeAuthorized

    Arduino-Codereferenz in deutsch (Forumslink):
    https://www.arduinoforum.de/arduino-...32885#pid32885

    Funduino Tutorial
    http://funduino.de/wp-content/upload...ch-12-2016.pdf

    Funduino Anleitung deutsch (Internet):
    https://funduino.de/

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Ich würde das was Du vor hast mit einem Timer Interrupt lösen.
    Ein Timer wird so programmiert, das er in festen Zeitintervallen einen Interrupt auslöst.

    In diesem Interrupt werden dann ( im Prinzip beliebig viele ) Variablen heruntergezählt, bis sie den Wert 0 erreicht haben.

    Im Hauptprogramm werden dann die entsprechenden Relais eingeschaltet und die Werte für die Variablen gesetzt.
    Ebenfalls im Hauptprogramm wird das entsprechende Relais ausgeschaltet wenn die dazugehörige Variable den Wert 0 erreicht hat.

    Das ist im Prinzip auch easy zu proggen.
    Dein Mehrfachdruck ist auch einfach zu realisieren indem man z.B. bei 3 Tastendrücken zu der entsprechenden Variable einfach den gewünschten Wert dreifach addiert.
    Bei den Variablen musst Du aufpassen. Eine 8Bit Variable geht maximal bis 255, eine 16Bit bis 65536 usw.
    Wird der Wertebereich überschritten fängt die Variable wieder bei 0 an. Das ist gerade bei deinen Mehrfachdrücken gefährlich!

    Tastendrücke zu erkennen ist schwieriger, da normale Tasten ( auch Relaiskontakte ) prellen - D.h. bei einem Druck mehrfach öffnen und schließen.
    Das muss entweder in der Software, oder der Hardware berücksichtigt werden. Stichwort: Debouncing.

    Ich mach das immer so, das ein Taster bei einer Änderung seines Zustandes nach 2, 5, 10ms ( Je nachdem wie "schlecht" der Schalter ist ) nochmals abgefragt wird.
    Bestätigt sich die Änderung wird der Tastendruck akzeptiert.
    Für die Zeitspanne verwende Ich ebenfalls einen Timer mit Interrupt der aber sehr viel schneller läuft, als der für die Relais - Dauern.

    Damit hast Du eigentlich schon alles Rüstzeug für dein Projekt.

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 21.03.2016, 22:38
  2. Antworten: 2
    Letzter Beitrag: 15.03.2013, 06:43
  3. Antworten: 13
    Letzter Beitrag: 09.11.2009, 10:41
  4. Antworten: 5
    Letzter Beitrag: 01.06.2007, 12:39
  5. CCI & CCII - Ersetzen,Vereinen oder mit der "Kleine
    Von Papa Schlumpf im Forum C-Control II
    Antworten: 0
    Letzter Beitrag: 30.04.2006, 07:37

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests