1. Hallo TT-Modellbahner, schön, dass du zu uns gefunden hast.
    Um alle Funktionen nutzen zu können, empfehlen wir dir, dich anzumelden. Denn vieles, was das Board zu bieten hat, ist ausschließlich angemeldeten Nutzern vorbehalten. Du benötigst nur eine gültige E-Mail-Adresse und schon kannst du dich registrieren.
    Deine Mailadresse wird für nichts Anderes verwendet als zur Kommunikation zwischen uns.
    Die Crew des TT-Boardes

Analog automatisch abbremsen und anfahren - mit Arduino

Dieses Thema im Forum "Hilfe - Es wird technisch!" wurde erstellt von ateshci, 22. Februar 2018.

  1. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Darf man mehr davon sehen? Schaltplan, Sketch, Fotos?
     
  2. TT Veit

    TT Veit Foriker

    Registriert seit:
    27. Januar 2018
    Beiträge:
    33
    Ort:
    Buxtehude
    Bewertungen:
    +14
    Hallo,

    ganz ehrlich, ohne falsch verstanden zu werden, dass würde niemanden was bringen. Die Anlage selbst ist noch im Aufbau.
    Man lernt programmieren, irgendwann schreibt man Funktionen, daraus folgen irgendwann Libraries. Nur damit kann hier niemand was anfangen, weil zu inidividuell. Zudem das hier kein Programmierforum ist.
    In dem bin ich unterwegs. https://forum.arduino.cc/index.php?board=31.0
    Lieber individuelle Hilfe als mit etwas erschlagen zu werden was doch nicht gelesen oder verwendet wird.
     
  3. n-spurer

    n-spurer Foriker

    Registriert seit:
    25. Mai 2018
    Beiträge:
    1
    Ort:
    NRW
    Bewertungen:
    +0
    Hallo liebe USER,
    ich bin ein Neuling auf diesem Blog, ich stehe im Moment vor dem selben Problem, ich baue eine N-Spur anlage, die analog bleiben soll, aber die Blöcke sollen digitalisiert werden. Ich habe vor die Anlage mit rückmeldungen von den Blöcken, sowie mit Hallsensoren den Standort der Züge zu bestimmen.
    Alle informationen sollen über Arduino MEGA (48i/o) und SPI Bus gesteuert werden. Was die Schaltung betrifft, ist diese leider etwas eingeschränkt, da nur in einer fahrtrichtung möglich. Es gibt eine Schaltung die mit einem LM324 und einem TIP 122+127 ein paar Widerstände auskommt.
    Sie arbeitet im Prinzip mit 3 Eingängen 1. PWM Signal; 2. Freigabe; 3. Vor und Rückwärtsfahrt.
    Suchbegriff: Fahrregler mit Pulsweitenmodulation und Operationsverstärker; Jeder Block wird auf der Masse seite geschaltet mit z.B. einem TIC206
    Besetzmelder: Gleisbesetzanzeige mit Operationsverstärker.
    Auf diese Weise wäre extrem kostengünstig, die Steuerung für jeden einzelnen Block möglich.
     
  4. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
  5. Jenny_Lo

    Jenny_Lo Foriker

    Registriert seit:
    8. September 2008
    Beiträge:
    2.717
    Ort:
    Simonswald
    Bewertungen:
    +131
    Als erstes würde ich versuchen, den Aufbau übersichtlicher zu stecken. Bei diesem "Abenteuer" hätte ich auch Angst.
     
    • Gefällt mir Gefällt mir x 1
    • Zustimmung Zustimmung x 1
    • Liste
  6. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Der Schaltplan kommt von ateshci Post #68

    Erster Test hat nicht funktioniert.

    Lock bleibt in Fahrtrichtung sofort im Abbremsabschnitt stehen.

    High/Low Wechsel bringt keine Änderung


    Edit: Alles nochmal entfernt. Ich stecke es jetzt mit Steckbrücken und größeren Abständen nochmal zusammen.
     
    Zuletzt bearbeitet: 11. November 2018
  7. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Ich bin gerade dabei, die Schaltung auf dem Steckbrett durchzuprüfen. Ein normales Kabel hat nahezu 0 Ohm. Wenn ich zwei Kabel ins Steckbrett stecke, und den Durchgang, vom einen Ende des Kabels zu dem anderen Ende des anderen Kabels messe, kommt kein sauberer Durchgang zustande. Widerstandsmessung sagt 90 Ohm Wiederstand. Die zwei Kabel ohne Steckbrett ergeben wieder nahezu 0 Ohm. Eine Messung von noch mehr Kabeln die ins Steckbrett gehen (Masse Ring), entsteht ein Widerstand von bis zu 1k Ohm.

    Ich kenn mich nun nicht aus mit Steckbretter, dachte aber, das die Verbindungen im Steckbrett, immer ohne Widerstand sind und an Kabel oder Lötverbindungen herran kommen. Das Steckbrett war auch nicht gerade teuer.

    Ist es normal das sich so ein großer Widerstand aufbaut unter den Kabelverbindungen? Oder ist das Steckbrett eher Schrott?


    Ich hatte mir die Woche, wo ich kein Zugang zu Modellbahn hatte, mal Gedanken gemacht wie ich es auf ein kleine (18*24 Löcher) Lochrasterplatine bekomme. Im Anhang sieht man das Ergebnis. Ich muss natürlich im Sketch die Anschlussbelgeung ändern. D9 hat PWM, als auch dafür zu gebrauchen. Den Schaltplan habe ich mal mit den Anschlüssen der Lochrasterplatine versehen (grüne Buchstaben und Zahlen).

    Einen L7809 habe ich hinzugefügt, da ich min. 12V für das Relais brauche, und die Vorhandene Gleichspannung 12,6V beträgt. Den Nano Clon sollte man wenn es geht aber nur mit max 9V betreiben, laut Hersteller, für längere Lebenszeit.


    Ich frage mich, ob die eng gesteckte Schaltung, von letzter Woche, daran scheitere, da das Steckbrett an sich so einen hohen Widerstand hat.

    Naja, ich bastel mal weiter, wenn die Steckbrettverbindung fertig ist kommt noch ein Foto davon. Vielleicht hat mal jemand ein geschultes Auge für das Lochrasterlayout, ob da ein Fehler ist.


    Edit: Ich sehe gerade das das Rasterlayout ziemlich unscharf geworden ist, die Nano Pins kann man kaum erkennen. Auf einen Weisen Hintergrund lässt es sich etwas besser erkennen.


    Edit2: Bild vom Steckbrett hochgeladen.

    Edit3: Das Forum komprimiert die Bilder stark, dadurch werden sie unscharf. Zuhause schiebe ich sie in meine Dropbox, da sollte man sie dann besser erkennen.
     

    Anhänge:

    Zuletzt bearbeitet: 17. November 2018
  8. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Ich hab mal die Bauteile trocken gesteckt ob es passt. Oft sind die Bauteile etwas größer oder kleiner als bildlich.

    Kollidieren tut leider der Spannungsregler mit den oberen rechten Anschluss Buchsen F und E. Mal schauen ob ich da noch was drehen kann.
     

    Anhänge:

  9. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Ich hab den Spannungsregler drehen können, sogar leichter als gedacht. :D

    Diesmal aus der Dropbox, für bessere Qualität.

    [​IMG]
    [​IMG]
     
  10. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Hmm, es funktioniert immer noch nicht. :(

    Die Lock fährt in den Abbremsbereich, wird schlagartig nur minimal langsamer. Durchfährt den Haltebereich unbeeindruckt. Durchfährt den Beschleunigungsbereich und ist beim verlassen des Blocks schlagartig auf Anfangsgeschwindigkeit.

    Ein High oder Low Wechsel am Signaleingang D5 bringt keine Änderung.

    Hach, und nun?


    Edit:
    Beim Einschalten klickt das Relais, auf D7 liegt 5V an.
    D5 zu GND hat auch 4,73V. Liegt bestimmt am Input Pullup. Wenn ich jetzt D5 mit Masse verbinde sollte der Arduino das als Low interpretieren und das Relais sollte dann wieder schalten und die Verbindung trennen, oder? Macht es aber nicht. Macht es doch.

    Edit2:
    Ich freunde mich gerade mit SerialPrint an. GBM bekommt den Wert bin 157 sobald die Lok im Blockbereich ist. Wenn sie ihn verlässt sinkt der GBM Wert wieder auf 0. das funktioniert also.

    Edit3:
    val1 liefert 1, sobald ich D5 mit GND verbinde liefert val1 den Wert 0, Relais schaltet auch, wenn ich die Verbindung von GND zu D5 entferne, kommt auch wieder der Wert 1 bei val1. Sobald aber die Lok den Haltebereich erreicht, hängt sich das ganz wie auf. SerialPrint liefert keine neuen Werte und der Zug fährt auch nicht mer los. Erst nach drücken des Reset Knopfes funktioniert es wieder. Warum hängt er sich also dort auf?

    Edit4:
    Nachdem ich es hinbekommen habe das es funktioniert, indem ich an den Potis gedreht habe, wo man wirklich Fingerspitzengefühl braucht, habe ich gemerkt das der Block von mir zu kurz ausgelegt ist. Ich hatte mein Testoval etwas vergrößert, und nun ging gar nix mer.

    Der Arduino hing fest oder resetet sich in den LED Blink Sketch, wie auch immer das geht. Auch wildes schalten vom Relais hab ich gehört.

    Dann hab ich nochmals Spannungen gemessen und am 5V lagen nur 4,4v an. Vin nur 6,6v. Und die Zuleitung hatte nur noch 10,4v

    Somit war mir klar das der Spannungsregler unterversorgt ist. Dies erklärt wahrscheinlich die letzten Fehler.

    Also nächstes WE den Spannungregler entfernen oder am Trafo die Spannung erhöhen.
     
    Zuletzt bearbeitet: 24. November 2018
  11. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Inzwischen sind 2 der 3 Arduinos wahrscheinlich kaputt.

    Sie lassen sich nicht mehr mit Sketchen bespielen. Bei dem einen der beiden kaputten kommt ein Fehlermeldung von „missmatch“ und bei dem anderen beendet sich das hochladen nicht. (Halbe Stunde gewartet)

    Der dritte lässt sich problemlos bespielen, also liegt Hardware seitiges der zwei Arduinos ein Problem vor.

    Ich habe nochmals den Schaltplan mit meinem Lötlayout verglichen. Auch das fertig bestückte Shield Bauteile auf Polung gepfrüft. Ich finde kein Fehler.

    Die Versorgungsspannung von nun 14v wird von dem Spannungsregler einwandfrei auf 9V herunter geregelt.

    Bevor ich festgestellt hatte das die Arduinos sich nicht mehr bespielen lassen, habe ich auch am 5V Pin des Arduinos 5V gemessen.

    Nun bin ich mit meinem Latein am Ende und komme ohne Fremde Hilfe nicht mehr weiter. :(
     

    Anhänge:

  12. ateshci

    ateshci Foriker

    Registriert seit:
    31. März 2006
    Beiträge:
    3.597
    Ort:
    Friedberg
    Bewertungen:
    +623
    Hier mal schnell ein Beweisvideo, dass das Programm funktioniert.
     
  13. ateshci

    ateshci Foriker

    Registriert seit:
    31. März 2006
    Beiträge:
    3.597
    Ort:
    Friedberg
    Bewertungen:
    +623
    Verglichen zu Digital mit der Bremskurveneinstellung in Decodern ( linear, konsant linear ), wo man , um bei unterschiedlich langen Bremsstrecken an einem definierten Haltepunkt anzukommen, bei ABC Brems- und Langsamfahrt kombinieren und dazu Abschnittsversorgungen umschalten
    muss, ist diese Analogbetriebsart doch richtig unkompliziert.
     
  14. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Ja ateshci.

    Ich wollte hier auch nichts schlecht reden. Im Gegensatz, ich bin total begeistert von diesem Projekt.

    Ich selber bekomme es nicht hin und ich habe irgendwo einen Fehler gemacht.

    Hinzu kommt gefährliches Halbwissen von mir.

    Danke das mir per Unterhaltung hilfst und ich wäre total glücklich wenn wir es hinbekommen das es bei mir läuft.
     
  15. ateshci

    ateshci Foriker

    Registriert seit:
    31. März 2006
    Beiträge:
    3.597
    Ort:
    Friedberg
    Bewertungen:
    +623
    Hier mal ein Link zu einem Amerikaner, der seine ganze Analogsteuerung mit Arduinos macht. manches halte ich für übertrieben, aber als Anregung ist ds immer gut.
     
  16. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Dank der Ausführlichen Hilfe von ateshci funktioniert es nun auch bei mir. Ein herzliches Danke auch nochmal hier.


    Die Arduinos konnte ich retten indem sie geflasht wurden.

    Eine Diode als Schutz vor Verpolung und zwei Kerkos am Spannungsregler sind hinzu gekommen.

    Als nächstes werde ich mir 3 weitere zusammenbauen und das Verhalten in einem Kreis mit 4 Blöcken testen.

    Dann werde ich versuchen mit der Software etwas zu experimentieren, um ein paar Dinge zu ändern, die mir nicht so ganz gefallen, aber nicht falsch sind.


    Danke und Bis Bald
     
  17. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Da mir die Arbeit zu groß war, 3 weitere auf Lochraster zu löten, habe ich mich hingesetzt und ein Leiterplatten Layout mit Target 3001! erstellt. Diese dann in Gerber exportiert und mir die Leiterplatten beim Chinesen bestellt.

    Also ich habe ja keine Ahnung was den Bezug an Qualität man von Leiterplatten erwarten sollte, da dies meine erste bestellten Leiterplatten sind. Aber ich bin begeistert von dem was hier vor mir liegt.

    Ich habe mit dem Durchgangsprüfer die Verbindungen mal getestet. Ich war immer der Meinung das man Löcher zur Durchkontaktierung mit Zinn füllen muss, aber die Bohrlöcher sind schon durchkontaktiert. o_O Die Verbindungen stimmen mit der vom Layout Program überein.

    Jetzt kommen bei 3 Stück die Bauteile drauf und geht es an die Teststrecke die auch noch vorbereitet werden muss.

    Ich bin aufjedenfall Happy.
     

    Anhänge:

  18. Per

    Per Foriker

    Registriert seit:
    10. April 2002
    Beiträge:
    14.137
    Ort:
    Frankfurt
    Bewertungen:
    +847
    Aber warum dann für den Arduino und nicht direkt für den ATmega? Gerade bei mehreren lohnt eine externe Programmiereinheit.
    Und wer einmal Blut geleckt hat...
     
  19. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Ich bin blutiger Anfänger. Daher die Wahl des Arduinos.

    Und mit 1,96€ ist der Arduino Nano nicht wesentlich teurer als ein ATMega.

    https://www.amazon.de/Haodou-Arduin...dpPl=1&dpID=51iKFBckKXL&ref=plSrch&th=1&psc=1

    Auch könnte man die Arduinos später für andere Dinge Problemlos einsetzen.

    Aber ja, du hast recht. Ich habe schon gelesen das man die Microcontroller einzeln bespielen und nutzen kann. Aber wie das geht und was man dazu noch lernen muss, da habe ich noch gar keine Ahnung.

    Ich bin erstmal froh wenn das alles mit den Arduinos klappt. Bissl programmieren muss ich ja auch noch üben.


    Was ich schon problemlos hinbekommen habe, mit einer IR Fernbenienung über den Arduino alle Beleuchtungen zu schalten. Natürlich braucht man dazu ein Shiftregister. Das ist aber ein anderes Thema.


    Jetzt will ich erstmal mit den Arduinos üben. Das wird noch ein bissl Zeit in Anspruch nehmen, da ich nur am WE Zugang zur Moba habe. Und bin dann froh wenn ich das hier vorgestellte Projekt bei mir realisieren kann.

    Für neue Projekte gehe ich dann sicherlich die direkte Programmierung und Einsatz von Microkontrollern an, rein schon aus Interesse am Thema.
     
  20. krokodil

    krokodil Foriker

    Registriert seit:
    26. Februar 2006
    Beiträge:
    356
    Ort:
    Österreich
    Bewertungen:
    +225
  21. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Moin.

    Also ich finde ich mache große Fortschritte :D

    Es gibt etwas was mir aber große Probleme macht. Wenn ich den Bremsvorgang einleite, sinkt das PWM Signal ab. Das ist gut und funktioniert einwandfrei. Nur wenn das PWM-Signal einen gewissen Wert unterschreitet, erkennt der GBM Sensor nicht mehr den Zug im Bremsabschnitt. Im Halteabschnitt schon. Wenn man den Schaltplan anschaut denke ich erkannt zu haben woran das liegt. Der Haltebereich wird vom Arduino vom 5V über einen Vorwiederstand bespeist zum Messen ob sich ein verbraucher auf dem Gleis befindet. Der Brems und Anfahr bereich hat diese Speisung nicht. Also wenn die Spannung im Bremsbereich zuweit absinkt, wird der zug nicht mehr erkannt.

    Ich dachte jetzt, den Brems und Anfahrtsabschnitt auch vom 5V über 1kOhm und Diode zu bespeisen. Spricht da etwas dagegen?

    Code:
    // Analog Pins
    const int GBMPin = 3; //Pin Eingang GleisBesetztMelder Sensordioden
    const int VFahrPin = 1; // Pin Eingang heruntergeteilte ~(5:1)Fahrspannung
    const int VBlockPin = 0; // Pin Eingang heruntergeteilte ~(5:1)Blockspannung
    const int VMinPin = 4; // Pin Eingang PotiWert für Mindestspannung 0-5V
    const int BremsWegPin = 2; // Pin Eingang PotiWert für Bremsweg
    // Digital Pins
    const int MelEingPin = 11; // Pin SignalEingang vom folgenden Block 0 = BESETZT, 1 = FREI
    const int MelAusgPin = 10; // Pin SignalAusgang zum vorherigen Block 0 = BESETZT, 1 = FREI
    const int PWMPin = 9; // Pin Ausgang für das PWM-Signal
    const int SignalPin = 5; // Pin Ausgang zum Steuern des Relais für Signal und Halteabschnitt, 0 = ROT, 1 = GRÜN
    // Variablen
    int GBMschwelle = 100; //Schwellwert für die GBMDioden
    int VFahr = 0; // Variable für eingelesene Fahrspannung
    int VMin = 0; // Variable für eingelesene Mindestspannung
    int PWMmin = 0; // Variable für den Mindest PWM-Wert
    int PWMmax = 255; // Variable für den Maximalen PWM-Wert
    float PWMcur = 0; // Variable für aktuellen PWM-Wert
    int GBM = 0; // Variable für GBM
    float BremsWeg = 0; // Variable für  Bremsweg
    float inkr = 0; // Variable zum Verringer/Erhöhen
    void setup() {
      TCCR2B=TCCR2B&B11111000|B00000110; // Vorteiler auf 256 für ~123Hz PWM
      Serial.begin(9600);
      pinMode(SignalPin, OUTPUT);
      pinMode(MelAusgPin, OUTPUT);
      pinMode(MelEingPin, INPUT_PULLUP);
      digitalWrite(SignalPin, LOW);
      digitalWrite(MelAusgPin, LOW);
      analogWrite(PWMPin, 0);
      delay(100); // Pause zum reagieren des Relais
    }
    void loop () {
      GBM = analogRead(GBMPin); // Wert über 100, Gleis Besetzt, unter 101, Gleis Frei
      VFahr = map(analogRead(VFahrPin), 0, 1023, 0, 2500)+60; // Fahrspannung 0-2500 für 0,00-25,00V  // BSP: 1600
      VMin = map(analogRead(VMinPin), 0, 1023, 0, 500)+60; // Mindestspannung 0-500 für 0,00-5,00V  // BSP: 300
      if (VMin > VFahr) VMin = VFahr; // Wenn die Mindestspannung größer als die Fahrspannung ist, dann ist die Mindestspannung gleich der Fahrspannung  // pasiert wenn man den Fahrregler unter die Mindestspannung regelt
      BremsWeg = analogRead(BremsWegPin)/2; // Wert zwischen 0-511, je größer um so länger der Bremsweg
      inkr = (VFahr - VMin)/BremsWeg; // Wert zum Verringern/Erhöhen // BSP: (1600-300)/250
      PWMmin = map(VMin,0, VFahr, 0, 255); // Mindest PWM-Signal analog zur Eingestellten Mindestspannung in Abhängigkeit zur Fahrspannung  // BSP: 250, 0, 1600, 0, 255 -> 39.84375 -> 39
      PWMcur = constrain(PWMcur,PWMmin,PWMmax); // PWMSignal zwischen PWMMin und PWMMax begrenzen
      digitalWrite(SignalPin, digitalRead(MelEingPin)); // Wenn folgender Block Frei meldet, setze Halteabschnitt und Signal auf Fahrt (High) ansonsten setze Halteabschnitt und Signal auf Halt (Low)
       
      if (GBM <= GBMschwelle) { // Wenn sich kein Zug im Block befindet,
        PWMcur = PWMmax;  // ist die Blockspannung gleich Maximale Spannung im Block
        digitalWrite(MelAusgPin, HIGH); // Meldet vorherigem Block "FREI"
      }
      if ((GBM > GBMschwelle) && (digitalRead(MelEingPin) == HIGH)) { // Wenn sich ein Zug im Block befindet und der Folgende Block "FREI" ist
        PWMcur = PWMcur + inkr; // Eröht den aktuellen PWM-Wert um den errechneten Erhöhungs/Verringerunswert
        PWMcur = constrain(PWMcur,PWMmin,PWMmax); // PWMSignal zwischen PWMMin und PWMMax begrenzen
        digitalWrite(MelAusgPin, LOW); // Meldet vorherigem Block "BESETZT"
      }
      if ((GBM > GBMschwelle) && (digitalRead(MelEingPin) == LOW)) { // Wenn sich ein Zug im Block befindet und der Folgende Block "BESETZT" ist
        PWMcur = PWMcur - inkr; // Vermindert den aktuellen PWM-Wert um den errechneten Erhöhungs/Verringerunswert
        PWMcur = constrain(PWMcur,PWMmin,PWMmax); // PWMSignal zwischen PWMMin und PWMMax begrenzen
        digitalWrite(MelAusgPin, LOW); // Meldet vorherigem Block "BESETZT"
      }
      analogWrite(PWMPin, PWMcur); //schreibt den PWMWert an den Ausgangspin
      delay(100);
      Serial.println(GBM);
    }
    
    [/spioler]

    Edit: Software Veränderung wäre natürlich besser, weil die Hardware schon fertig ist.

    Eine Schleife (for oder while) bis zum erreichen des Halteabschnitt wollte ich eigentlich nicht mache, da dann wie beim orginal Sketch, eine Änderung des Eingangs vom Folgeblock das halten nicht unterbrechen würde.

    Ich bilde mir aber ein mal was über Interrupts gelesen zu haben, die Schleifen unterbrechen, wäre auch ne Möglichkeit.

    Oder die Schwelle des Wertes der GBMDioden nach unten setzen. Da bin ich mir aber nicht sicher wie wichtig die vom orginal verwendeten 100 sind.

    Edit 2:

    Ich habe den GBM Wert mal auf 10 runter gesetzt. Tests funktionieren einwandfrei. Der PWM-Wert unterschreitet nicht die "Mindestspannung" für die GBM-Dioden. Aber wenn die Mindestspannung zum kriechen weiter herab gesenkt wird, reicht es nicht mehr und der Mikrocontroller denkt, das kein Zug im Block steht. Irgendwie nicht so toll.

    Auch habe ich etwas im Sketch vergessen was die Bremsstrecke immer gleich hält bei unterschiedlichen Geschwindigkeiten. Habe es mal ergänzt.
     

    Anhänge:

    Zuletzt bearbeitet: 19. Januar 2019
  22. krokodil

    krokodil Foriker

    Registriert seit:
    26. Februar 2006
    Beiträge:
    356
    Ort:
    Österreich
    Bewertungen:
    +225
    Kannst Du jeden IRF mit einem etwa 4-10 kOhm Widerstand überbrücken.
     
  23. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Also zwischen Anschluß "A" und "B" (Grüne Buchstaben im Schaltplan) einen 4-10k Ohm Widerstand, richtig?

    Würde auch eine Diode zwischen "B" und "C" gehen? Leitend von "C" Richtung "B"? Nur mal Intressehalber. Oder funktioniert das dann nicht?


    Edit: Mit dem 4-10k Ohm Widerstand funktioniert einwandfrei :D

    Danke

    Jetzt müssen nur noch die Arduinos aus Fern Ost ankommen.
     
    Zuletzt bearbeitet: 19. Januar 2019
  24. Andre1980

    Andre1980 Foriker

    Registriert seit:
    1. Januar 2018
    Beiträge:
    175
    Ort:
    Dresden
    Bewertungen:
    +31
    Der 5k6 Ohm Widerstand hat gut Platz gefunden an den 1N4001 Dioden und verbindet „A“ mit „B“

    Da ich in meinem Sketch die Blockspannung nicht messe, konnte ich unten die zwei Widerstände und den kleinen ELKO einsparen. (Eigentlich auch eine 1N4148, da war aber der Lötkolben zu schnell). Beim Orginal Sketch werden diese 4 Bauteile aber benötigt.

    Die Leiterplatten nehmen das Zinn gut an. Qualität gefällt mir gut, habe da aber auch keine richtige Ahnung, was gut ist. Und das für den Preis. (15Stk. für etwas mehr als 18€)

    Die Beschriftung der Zwei Potis ist verdreht, also Zeit ist für Mindestspannung und Vmin ist für den Bremsweg. Da genügt es aber die PIN Zuweisung im Sketch zu ändern, was sehr einfach geht.

    Ein bissl größer als der Prototyp ist es geworden. Da ich mit dem Routen nicht so richtig zurecht kam, bräuchte ich den Platz. Wenn ich es nochmal Routen würde, würde ich einiges anders machen. Aber war ja meine erstes Leiterplatten Projekt.

    Und nun weiter testen. Bis bald
     

    Anhänge:

  25. WolfgangTT

    WolfgangTT Foriker

    Registriert seit:
    26. November 2014
    Beiträge:
    322
    Ort:
    Thurm
    Bewertungen:
    +125
    Hallo André,
    ich bin einfach nur begeistert, was Du hier so aus dem Stand machst.

    Viele Grüße Wolfgang
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden