Dude Geschrieben 28. Mai 2014 Geschrieben 28. Mai 2014 Nochmal wegen der 4,7V Z-Diode am Gate des IRFP3206: Wieso? Um den vor Spannungsspitzen zu schützen, würde ich eine 12-15V einbauen. Nicht dass die 4,7V noch die eh schon knappen 5V kastriert. Ich meine, ich kann das Mißverständniss aufklären. Im Schaltplan ist eine 5V Z-Diode eingezeichnet, obwohl ich in fritzing 12V als Durchbruchspannung ausgewählt habe. Der Kenner (Beatbuzzer, Barney) sieht das an der Typbezeichnung sofort, ich nicht. Daher meine Verwunderung, dass Beatbuzzer immer mit den 5V anfängt, wo ich doch eine 12V Diode drin habe. Zwischenzeitlich habe ich auch die richtige Typbezeichung der 12 V Z-Diode im Schaltplan und alles ist Jiggy ... bis auf die Tatsache, dass ich lieber einen Optokoppler verwenden sollte (lese ich gerade). Zitieren
barney Geschrieben 28. Mai 2014 Autor Geschrieben 28. Mai 2014 Anbei die Schaltung! Der IRF510 ist nur Stellvertreter für den Leistungs-MOSFET!. Der Virtuelle Optokoppler hat drei Anschlüsse am Ausgang, den an der Basis kannst Du ignorieren. Der Rest sollte so passen. 15V Ugs sind durch die Z-Diode sicher gestellt. Der Optokoppler wird mit 10mA angesteuert. Du musst natürlich im Datenblatt nachsehen, ob das dann zu deinen passen wird. VG Barney Zitieren
Dude Geschrieben 28. Mai 2014 Geschrieben 28. Mai 2014 Thx! Womit machst Du die Simulationen? Zitieren
barney Geschrieben 28. Mai 2014 Autor Geschrieben 28. Mai 2014 Ni Multisim 10.1 für 10,-€ zu haben bei Hugendubel. Zitieren
Beatbuzzer Geschrieben 28. Mai 2014 Geschrieben 28. Mai 2014 Gibt auch noch LTspice. Das ist kostenlos. Nur so als weiterer Vorschlag... Zitieren
barney Geschrieben 28. Mai 2014 Autor Geschrieben 28. Mai 2014 Gibt auch noch LTspice. Das ist kostenlos. Nur so als weiterer Vorschlag... Da möchte ich noch erwähnen: Externe Links nur für Mitglieder sichtbar Zitieren
barney Geschrieben 28. Mai 2014 Autor Geschrieben 28. Mai 2014 Externe Links nur für Mitglieder sichtbar Wurde mit 1464 Seiten Papier bei Hugendubel für 10,-€ verscheuert. Zitieren
Dude Geschrieben 29. Mai 2014 Geschrieben 29. Mai 2014 Der Optokoppler wird mit 10mA angesteuert. Du musst natürlich im Datenblatt nachsehen, ob das dann zu deinen passen wird. Muss ich aufpassen, dass er bei 10mA durchsteuert oder dass er nicht durchbrennt? VG Dude:o Zitieren
barney Geschrieben 29. Mai 2014 Autor Geschrieben 29. Mai 2014 Ohne Datenblatt kann ich nur wenig dazu sagen. Zitieren
Dude Geschrieben 29. Mai 2014 Geschrieben 29. Mai 2014 4N26 Externe Links nur für Mitglieder sichtbar Zitieren
barney Geschrieben 29. Mai 2014 Autor Geschrieben 29. Mai 2014 Beim ersten drüberschauen würde ich 10mA als Arbeitsstrom einstellen. Zitieren
barney Geschrieben 29. Mai 2014 Autor Geschrieben 29. Mai 2014 Also bei 10mA ist Ic ca. 7mA. Udiode soll ca. 1.5V sein. Also 3.3V-1.5V= 1.8V/10mA 180 Ohm. Das solte passen. Aber nur 7mA am Ausgang des Optokoppler. Da müsste ggf. der 10k Ohm Widerstand angepasst werden. Zitieren
Dude Geschrieben 29. Mai 2014 Geschrieben 29. Mai 2014 Wäre es eine Alternative mit If hoch zu gehen, max. liegt bei 60mA? Zitieren
Dude Geschrieben 29. Mai 2014 Geschrieben 29. Mai 2014 Autsch - die 100mA gelten dann nur für den einen 3,3V Ausgang?! Zitieren
barney Geschrieben 29. Mai 2014 Autor Geschrieben 29. Mai 2014 Pro Ausgang ca. 25mA max, aber 185mA gesamt für den Teensy. Die 100mA gelten für den Spannungsregler im Teensy. Zitieren
Beatbuzzer Geschrieben 29. Mai 2014 Geschrieben 29. Mai 2014 Der 10k Widerstand leitet bei 12V über der Z-Diode 1,2 mA ab. Der 4N26 führt auf jeden Fall >5mA zu. Passt doch. Zitieren
barney Geschrieben 29. Mai 2014 Autor Geschrieben 29. Mai 2014 Bei der Simulation war zu sehen, dass aufgrund des hohen Widerstand zwischen GS das Abschalten eine Weile dauert. Ca. 10ms. Solte reichen. Zitieren
barney Geschrieben 31. Mai 2014 Autor Geschrieben 31. Mai 2014 Hi Dude, eine Sache hatte ich noch vergessen. Die MOSFETs für Licht und Hupe sollten auch bei 3.3V sicher schalten. Dafür gibt es logic level MOSFETs. Die sind dafür geeignet ohne das Optokoppler Geraffel sicher zu schalten. Die Ströme liegen bei erster Sichtung um die 30A bei 55V Typen. Ich liefer genaue Daten am Montag. Zitieren
barney Geschrieben 2. Juni 2014 Autor Geschrieben 2. Juni 2014 IRLR3114ZPbF -> 40V, 20-30A bei 3.3V, geringer Innenwiderstand IRLR2905 -> 55V, 30-40A bei 3.3V hattest du selbst schon ausgesucht. Und immer daran denken: Pv=I^2*R PVerlust= Strom im Quadrat * Widerstand Zitieren
Dude Geschrieben 2. Juni 2014 Geschrieben 2. Juni 2014 Thx - ich mach mich dann mal an das Platinenlayout. Dude Zitieren
barney Geschrieben 3. Juni 2014 Autor Geschrieben 3. Juni 2014 Neue Teensy Lib Version 1.19 ist raus! Es kann jetzt auch 72MHz als Takt gewählt werden, ohne den Teensy zu übertakten. Für die ganz harten sind versteckte overclocking Einstellungen bis nahezu 170MHz möglich. Add slow clock options, 2, 4, 8 & 16 MHz Increase flash overclocking when CPU is overclocked to 168 MHz Externe Links nur für Mitglieder sichtbar Zitieren
barney Geschrieben 5. Juni 2014 Autor Geschrieben 5. Juni 2014 (bearbeitet) Werte Mitbastler, es war lange überfällig, ab heute wird das Programm von den Parametern getrennt! D.h.: Jeder hat sein eigenes * Elektroskate_Custom_Settings.h -> BT vorhanden, Strom und Spannungsmessung erwünscht? u.s.w. * Elektroskate_Custom_Parameters.h -> Hier können die Spannungsmessbereiche oder Überströme, Nunchukverhalten eingestellt werden. * Elektroskate_Changelog -> Was wurde am Programm verändert? * Elektroskate_Connection -> Wo wird was angeschlossen und was macht überhaupt das Programm? Und die Debug Ausgabe wurde von der Datenausgabe getrennt. D.h. Debug über USB und Daten über BT-Modul! Elektroskate_Custom_Settings.h // Debugflag #define DEBUG TRUE // Aktivieren der Debugausgabe DEBUG = TRUE, FALSE // Wie soll gesteuert werden #define DirectDrive FALSE // TRUE -> Direct Drive, FALSE -> Integrations Drive // Sonderfunktionen #define UIMESS TRUE // HW UI-Messung vorhanden (TRUE,FALSE) #define LICHTHUPE TRUE // HW Licht, Hupe vorhanden (TRUE,FALSE) #define TEMPMESS TRUE // HW Temperaturmessung vorhanden (TRUE,FALSE) #define LESOFT TRUE // HW Leistungselektronik langsam hochfahren vorhanden (TRUE,FALSE) Elektroskate_Custom_Parameters.h // Serielle Geschwindigkeit #define BT_BAUDRATE 115200 // Datenrate fuer das Bluetooth Modul, ggf. fuer ein anderes BT-Modul anpassen, Ausgabe über Serielle Schnittstelle 1 #define DEBUG_BAUDRATE 115200 // Datenrate fuer das Debugging in der Arduino IDE per USB //Wertebereich von (Min..Max,SinnvollUntererWert..SinnvollObenrerWert) // Nunchuk - Steuerparameter Sollwertvorgabe und Programmablaufsteuerung #define MinYAchse 27 // Minmalwert y-Achse ganz unten (0..255, 0..30) #define MaxYAchse 255 // Maximalwert y-Achse ganz oben (0..255, 240..255) #define NeutralstellungYAchse 130 // Neutralstellung Y-Achse (0..255, 125..135) #define ObererTotpunkt 145 // Wenn dieser Wert von der Nunchuk Y-Achse ueberschritten wird, wird beschleunigt (Integrationssteuerung) (0..255, 136..145) #define UntererTotpunkt 124 // Wenn dieser Wert von der Nunchuk Y-Achse unterschritten wird, wird die Beschleunigung zurueckgenommen (Integrationssteuerung) (0..255, 115..124) #define PairingLostTrigger 50 // Schwellwert fuer Funkabriss, wird dieser Wert ueberschritten liegt ein Funkabriss vor (0..255, 20..70) #define PairingSuccessTrigger 5 // Schwellwert fuer erfolgreiche Verbindung (0..255, 5..10) // Temperatursensoren #define TempSensorAnzahl 1 // Die Temperatursensoranzahl -1 hier eintragen byte TempAddress[3][8] = {{ 0x28, 0x75, 0x3F, 0x2A, 0x04, 0x00, 0x00, 0x73 } // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden ,{ 0x28, 0x0D, 0xE2, 0x00, 0x04, 0x00, 0x00, 0x93 } // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden ,{ 0x28, 0x0D, 0xE2, 0x00, 0x04, 0x00, 0x00, 0x93 }}; // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden // PWM Motorsteuerung #define PWM_ObererStellWertMotorIgel 1.7 // Wert berechnen fuer Oebere Pulsweite Igel (1.7ms Pulsweite) (0.0..5.0, 1.6..1.8) #define PWM_ObererStellWertMotorHase 2.0 // Wert berechnen fuer Oebere Pulsweite Hase (2.0ms Pulsweite) (0.0..5.0, 1.9..2.1) #define LeerlaufOffset 0 // Offset zum schnelleren Ansprechen des ESC bei inkrementeller Steuerung (0..255, 0..200) #define PWM_LeerlaufStellWertMotor 1.5 // Wert berechnen fuer Leerlauf (1.5ms Pulsweite) (0.0..5.0, 1.4..1.6) #define PWM_UntererStellWertMotor 1.0 // Wert berechnen fuer untersten Wert (1.0ms Pulsweite) (0.0..5.0, 9.9..1.1) // Incrementel Drive Parameter #define BeschleunigungsDaempfung 7 // Je groesser die BeschleunigungsDaempfung, desto langsamer wird Beschleunigung oder Bremse angenommen (ggf. anpassen) (0..255, 0..20) // Spannungs/- und Strommessung #define BattSpgMMax 30 // Maximale messbare Batterienspannung 30V, #define StromMMax 50 // Maximal messbarer Strom in A (ACS756SCA-050B Stromsensor) // Strombegrenzung und Kurzschlusserkennung #define Ishort (uint8_t) 50 // Maximaler Strom, dieser fuehrt zur sofortigen Abschaltung (<= StromMMax) #define Imax (uint8_t) 30 // Grenzwert, ab dem die Strombegrenzung einsetzt #define Strom0A (float) StromMMax // 0A Messwert, wird angezeigt wenn kein Strom fliesst und Strom0A = 0 (muss kalibriert werden) bearbeitet 5. Juni 2014 von barney Zitieren
barney Geschrieben 8. Juni 2014 Autor Geschrieben 8. Juni 2014 (bearbeitet) Also der Teensy 3.1 sollte jetzt vollständig angepasst sein. Alle Funktionalitäten sind getestet. Leider funktioniert die Strombegrenzung Beschleunigungsreduktion nicht so soft, wie ich es gehofft hatte. Da ist noch etwas Arbeit, die gemacht werden muss. Der Grundsätzliche Ansatz scheint zu stimmen, aber die Umsetzung ist Schrott. (Beim Arduino funktionierte diese auch nicht!) Debugging: Wurde massiv verändert und Erweitert: // Debugflag #define DEBUG TRUE // Aktivieren der Debugausgabe (TRUE,FALSE) #define DEBUG_Funktion FALSE // Aktivieren der Debugausgabe Welche Funktionen werden aufgerufen (TRUE,FALSE) #define DEBUG_ISR FALSE // Aktivieren der Debugausgabe Aufruf der ISR Interrupt Service Routinen (TRUE,FALSE) #define DEBUG_Nunchuk FALSE // Aktivieren der Debugausgabe Nunchuk Werte x,y-Achse, Beschleunigung, c,z-Button(TRUE,FALSE) #define DEBUG_Messung FALSE // Aktivieren der Debugausgabe interne Messwerte und Berechnungen (TRUE,FALSE) #define DEBUG_Motorsteller TRUE // Aktivieren der Debugausgabe interne Werte Motorsteller (TRUE,FALSE) Es werden jetzt auch dazu Erklärungen mitgeliefert: Beschleunigung, Neutralstellung, Bremsen. StellWertMotor: 4915 Neutralstellung StellWertMotor: 5480 Beschleunigung StellWertMotor: 3250 Bremsen Diese Werte und Kommentarausgabe hilft beim Einstellen des Motorstellers, bzw. beim Überprüfen des Verhaltens bei Fehlfunktionen. bearbeitet 8. Juni 2014 von barney Zitieren
barney Geschrieben 8. Juni 2014 Autor Geschrieben 8. Juni 2014 Strombegrenzung ist jetzt auch o.k. Zitieren
Empfohlene Beiträge
Tritt dem Gespräch bei
Du kannst jetzt posten und dich später registrieren. Wenn du bereits einen Account hast kannst du dich hier anmelden.