Handhabung & Technik Besteht Interesse an einer DIY Zündanlage?

Dieses Thema im Forum "Effekte, Feuerwerkskörper, Technik, Hilfsmittel" wurde erstellt von TelosNox, 4. Januar 2017.

  1. Die Verbindungsproblem im AP Modus kommen wohl davon, dass der ESP Client und AP zugleich sein kann. Wenn er eine Client Verbindung kennt, dann ist es ihm egal, ob man ihn eigentlich nur im AP Modus startet. Er versucht dnan als Client zum bekannten Netzwerk zu verbinden. Ist das Netzwerk nicht da, dann wechselt er ständig den Kanal, um das Netzwerk zu finden. Dadurch wechselt auch im AP ständig der Kanal und das unterbricht dann dauernd die Verbindung.

    Code:
    void initWifiAP() {
      const char* ssid = "mySSID";
      const char* password = "myPassword";
    
    [B]  WiFi.disconnect();[/B] 
      WiFi.mode(WIFI_AP);
      IPAddress ip(192,168,2,128);
      IPAddress gateway(192,168,2,128);
      IPAddress subnet(255,255,255,0);
      WiFi.softAPConfig(ip, gateway, subnet);
      WiFi.softAP(ssid, password);
    }
    
    WiFi.disconnect löst das Problem. Dadurch wird wohl die existierende Client Verbindung gelöscht und der ESP arbeitet nur noch als AP. Die Verbindung ist dann stabil.

    Ich habe eben mal noch ausprobiert mehrere Zünder an einem Kanal zu zünden. Ich hatte 5 Zünder in Reihe dran. 4 haben gezündet, einer nicht. Der Zünder war aber in Ordnung, ich hab ihn danach nochmal angeschlossen und gezündet, das ging.

    Vermutlich schwanken meine Zünder in ihren Eigenschaften einfach zu stark, so dass sie für Reihenschaltung nicht geeignet sind.
    Ich will sowieso nicht mehr als 3 zugleich zünden, da sollte eine Parallleschaltung auch noch gut funktionieren. Ich habe bei Kurzschluss ca. 2Ohm im Stromkreis, also fließen da gemütliche 6A. Die MosFet sind alle für deutlich mehr ausgelegt und der Lastwiderstand packt 17Watt Dauerlast. Da sollten 66Watt für 100ms kein Problem darstellen.

    Nachteil ist klar, ich erkenne keine defekten Zünder oder welche, die nicht angeklemmt sind (solange 1 intakter Zünder am Anschluss hängt, ist ja die Prüfung grün). Da muss man dann halt sorgfältig arbeiten.

    Zuverlässig sollte es dann sein, da ich ja mit Konstantspannung zünde.

    EasyMesh wird vermutlich für mich nicht taugen. Ich brauche einen definierten Master, der den AP macht und alle anderen müssen sich dort anmelden und auch irgendwie eindeutig identifizieren.

    Jetzt bastel ich mal die 1 Modul Variante komplett fertig und dann mal sehen, ob ich noch Lust und Laune habe. Vielleicht probier ich das mit dem Netzwerk dann noch aus.
     
    tommihommi1 gefällt das.
  2. Ich messe an meinen A-Zündern 1Ohm mit 30cm Kabel. Kommt mir bischen viel vor irgendwie...
     
  3. Ach dann passts ja. Ich hatte irgendwas mit 0,6 im Kopf, aber das war ja der Zündstrom.
     
  4. Ist doch völlig normal!? ;D
     
  5. Wie ist denn mein Entwurf rechtlich einzuordnen? Gibt es da fürs zünden von F2 irgendwelche Bestimmungen?

    In der Einführung in die elektrische Zündung steht ein wenig was drin, allerdings bezieht es sich auf F4, Theater und Sprengtechnik. Von F2 ist da nix zu lesen.

    Gehe ich recht in der Annahme, dass eine Anlage zum zünden von F2 keine Bestimmungen einhalten muss?
    Was wäre im Falle eines Unfalls? Wird dann auch am Stand der Technik bemessen?

    Meine Anlage hat ja eine doppelte Absicherung und einen Prüfstrom von <10mA (ca. 1,2). Eine Auslösung durch einen unbefugten ist nicht möglich, da es einen elektronischen Schlüssel gibt (WLAN WPA2). Einen Schlüsselschalter sollte ich somit nicht benötigen.
    Was passieren kann, wenn Bauteile kaputt gehen, ist auch klar:
    Hauptzündspannung kann ungewollt einschalten (falls der MosFet durchgeht).
    Kanalzündspannung kann ungewollt einschalten (falls der MosFet durchgeht).
    Zündschalter kann sich festschweissen (dann kann man nicht mehr ausschalten).
    Wie sich der ESP potentiell verhalten kann: Keine Ahnung. Also ob er unkontrolliert auf einmal Kanäle einschaltet.
    Was bekannt ist: Kanal 5-8 würden bei bereits scharfer Anlage bei einem Reset potentiell zünden. Ich hab bisher nicht ausprobiert, ob es wirklich für einen Zünder reichen würde. Das mache ich vielleicht noch.

    Da ich sowohl mechanische als auch elektrische Sicherung habe, sollte doch die Anlage an sich sicher genug sein. Der bekannte Fehlerfall kann nur eintreten, wenn ich aus sicherer Entfernung über Funk scharf geschalten habe.

    Sollte die elektrische Zündschaltung durchgehen, während man noch an der Anlage steht, so kann man das direkt an der LED sehen. Eine defekte LED würde man auch sofort erkennen, weil sie immer schwach leuchtet.
    Wenn ein Kanal durchgeht (Anlage nicht Scharf), dann sieht man das ebenfalls, denn dann geht die LED ganz aus (sofern Durchgang vorhanden ist).

    Ist die Anlage somit sicher genug oder ist irgendwas daran grob fahrlässig (sofern alles richtig verlötet ist, das ist natürlich Voraussetzung).
     
  6. (Grob) fahrlässig wäre es imho, die unsicheren Kanäle zu nutzen. Egal wie hoch der Strom ist der da beim Einschalten durchgeht.
    Da du alles relativ einfach gehalten hast, gibt es auch nicht wirklich viel was schief gehen kann außer dem bereits benannten. Von daher sollte das eigentlich safe sein. Aber frag da lieber mal die Spezis hier (T.o.1 usw.), die haben wirklich Ahnung [emoji16]

    ____________________________________

    Mit Rauchzeichen aus Schwarzpulver gemorst.
     
  7. Das mit den "unsicheren" Kanälen hab ich grad mal ausprobiert.

    Zünder dran, manuellen Zündschalter auf ein, Anlage an:
    Nix passiert.

    Anlage auf Scharf und dann Reset:
    Nix passiert.

    Zur Kontrolle LED mit dran und nochmal:
    Nix passiert, LED leuchtet nicht.

    Zur Kontrolle Zünder raus und nur LED und nochmal:
    LED blitzt kurz auf.


    Die Energie, die da ganz kurz fließt, reicht wohl nicht für eine Zündung aus (zumindest nicht bei meinen Zündern).


    Anderes Thema:
    Wie würde man sich denn das UI für einen Betrieb mit mehreren Modulen vorstellen?
    Nehmen wir an ich habe 3 Module A, B und C. Jedes hat die 8 Kanäle. Somit stehen mir 24 Kanäle zur Verfügung.

    Variante1:
    Will man jetzt komplette Transparenz der Zündanlage, so dass sie sich einfach wie eine mit 24 Kanälen verhält? Das UI zeigt dann einfach direkt 24 Kanäle am Stück. Die Module brauchen dann eine feste bekannte Reihenfolge, so dass man die passenden Terminals finden kann. Der Master sorgt dafür, dass die Module immer synchron sind. Das heißt "scharf schalten", schaltet bei allen scharf, "prüfen" schaltet bei allen auf die Prüfung.
    Vorteil: Die Module kümmern sich selbst darum, dass sie alle im gleichen Status sind. Wenn ich feuerbereit bin, dann automatisch auf allen Modulen. Kanäle sind alle schnell erreichbar.
    Nachteil: Mehr Aufwand in der App, Buttons werden arg klein, wenn man viele Kanäle hat oder man muss scrollen. Kanäle zuordnen wird schwieriger. Welche Spannung zeigt man an? Was ist mit Verbindungsunterbrechung? Wie zeigt man die an?

    Variante2:
    Oder will man die Module ganz separat kennen und steuern? Das UI zeigt dann immer nur das aktuelle Modul an und man kann zwischen den Modulen wechseln (blättern). Jedes Modul lässt sich komplett getrennt bedienen, also einzeln prüfen, einzeln scharf schalten.
    Vorteil: App wird relativ einfach, es muss nur die Modulkennung geswitched werden, der Rest ist wie im Einzelmodus. Es bleibt alles übersichtlich und groß.
    Nachteil: Man muss jedes Modul einzeln verwalten (scharf schalten etc.). Kanäle auf verschiedenen Modulen gleichzeitig feuern ist nicht möglich.

    Variante3:
    Wie Variante1, allerdings werden jetzt nicht 24 Kanäle angezeigt, sondern 3x8 mit der jeweiligen Kennung des Moduls. Es entstehen also 3 Spalten mit 8 Buttons untereinander. Für Scharfschaltung und Prüfung verhält sich die Anlage weiterhin wie eine einzelne.
    Vorteil: Kanäle lassen sich eindeutlich zuordnen und auch gleichzeitig auf verschiedenen Modulen schießen.
    Nachteil: Trotzdem wird alles klein, weil zu viel auf einmal auf dem Screen ist. Bei vielen Modulen braucht man dann eigentlich ein Tablet im querformat, statt ein Handy im hochformat.

    Variante4:
    Wie Variante2, allerdings mit einem weiteren UI für eine freie Belegung. Hier kann man frei Kanäle hinzufügen und einem Modul + Kanal zuordnen. Man könnte auch mehrere Zuordnen.
    Damit wird ein Nachteil von Variante2 behoben. Ich kann dann den ersten Button so belegen, dass er von A, B und C jeweils Kanal 1 schießt. Zweiter Button schießt von A dann Kanal 2 und der dritte schießt dann Kanal 2 von A und B.
    Wenn man nun noch mehrere solcher Screens zulässt, auf denen man frei konfiguriert, kann man sich quasi einzelnde Sequenzen zusammenbasteln und die dann nacheinander durchgehen.

    Wenn man mehrere Abschusspositionen hat, dann braucht man ja genau sowas. Quasi den gleichen Kanal an verschiedenen Standorten. Allerdings bezweifle ich, dass ein Silvesterzündler sowas braucht, das wäre dann schon eher Richtung Profibereich.


    Was ich hier noch als potentielles Problem sehe ist die Antwortzeit, wenn man Master/Slave macht. Der Master kann seinen Request ja nicht direkt beantworten, sondern leitet erstmal an den passenden Slave weiter, wartet auf dessen Antwort und antwortet dann wiederum dem UI. Ich denke so ein Fall dürfte noch funktionieren.
    Aber es findet ja auch die zyklische Abfrage statt. Wenn jetzt der Master 4-5 Slaves nacheinander abfragen muss, bevor er antworten kann, dann gibt es vieleicht timeouts.
    Vielleicht ist das auch gar kein Problem, weil so ein Request nur wenige Millisekunden braucht. Da hab ich keine Erfahrungswerte dazu (müsste ich mal messen).

    Lieber wäre mir eigentlich die Variante mit dem Tethering, so dass die Module alle direkt als Clients arbeiten. Da macht aber Android ja irgendwie nicht mit. Gehen muss es irgendwie, ich hab schon Videos gesehen, wo jemand den NodeMcu per Tethering ans Handy bringt und dann vom Handy aus steuert. Allerdings nirgends eine Info dazu, wie das geht.
    Vielleicht hängt es aber auch mit der Android Version zusammen und bei manchen Versionen gehts und bei manchen wieder nicht (mehr).

    Früher konnte ich z.B. auch im Handy nachsehen, wer sich verbunden hat. Mit Android 6 finde ich die Option nirgends mehr.
     
  8. Fragen über Fragen...

    UI Layout. 1 Spaltig oder 2 Spaltig? Wenn 2 Spaltig, dann Vertikal oder Horizontal?
    Bei dem 1 Spaltigen ist es mit dem Scharf Button doof, weil er sich nicht mehr deutlich von den Kanälen abgrenzt. Dann muss man den anders realisieren.

    1Row_Vertical.PNG

    2Row_Horizontal.PNG

    2Row_Vertical.PNG
     
  9. 2-spaltig horizontal :)

    ____________________________________

    Mit Rauchzeichen aus Schwarzpulver gemorst.
     
  10. So hatte ich es intuitiv auch angefangen und auf fertigen Anlagen scheint das auch so gemacht zu sein.
     
  11. Beim 2-spaltigen Layout sind die Buttons vom Seitenverhältnis her vermutlich auch am besten zu bedienen
     
  12. So sieht die App aktuell aus. Ich zeige jetzt zusätzlich auch die Antwortzeit der Statusprüfung an. Der angezeigte Wert ist der, aus dem Emulator. Da geht das Signal vom PC über den Router zum NodeMcu. Das kostet einiges an Zeit.
    Wenn ich die App im Handy hochlade und direkt mit dem NodeMcu als AP verbinde, habe ich im Schnitt etwa 25ms Antwortzeit. Demnach liegt die Reaktionszeit beim Auslösen eines Kanals irgendwo unter 15ms, ich denke das ist schnell genug.

    Ich schau jetzt mal, dass ich einen zweiten NodeMcu so hinbekomme, dass er sich als Client am AP anmeldet und dieser dann die Statusanfrage weiterverteilt. Mir geht's erstmal nur um die Antwortzeit, die dadurch entsteht. Wenn die vertretbar bleibt, dann macht es Sinn mit Master/Slave.

    UI_offline.PNG

    UI_online.PNG
     
  13. Also ich fang mal oben an:
    Zünder in Reihenschaltung ist schon der genau richtige Weg. Wenn da einer nicht auslöst, wars zu wenig Strom. Ggf. Begrenzungswiderling etwas verkleinern. Da es deine Anlage ist kannst du ja beliebig festlegen wieviele Zünder sie packt. Wenn du das auf 3 oder 4 pro Kanal begrenzt hindert dich ja niemand zwei Kanäle direkt hintereinander auszulösen. Im Normalfall sollte der Abstand so gering sein dass es kaum zu merklichen Verzögerungen kommt und Musiksynchron wirst du damit eh nicht schießen.


    Ich einer der Anlagen zu SprengG und SprengVO stehen die elektrischen Voraussetzungen für Zünder und zugelassene Zündmaschinen. Das bezieht sich zwar in erster Linie auf Sprengtätigkeiten, aber die Werte sind für BrückenANzünder identisch.
    Da stehen auch so Sachen wie die Sicherung gegen unbefugte Nutzung meine ich.

    IANAL: Wenn man sich danach richtet, sollte man einigermaßen auf der sicheren Seite sein. Zumindest kann einem keiner vorwerfen sich nicht am Stand der Technik orientiert zu haben.

    Ein absolutes NoGo sind für mich aber deine "unsicheren" Kanäle. Du hast keinen Einfluss darauf wann eine Reset-Condition auftritt. Deine Anlage muss damit in jedem Fall klarkommen ohne Kanäle ungewollt zu feuern.
    Wär irgendwie blöd wenn ein Bombenrohrfächer genau dann losgeht wenn du da neben lang trampelst, gell?
    Wenn hier dein Zentral-Aus greift, dann ist das Aufblitzen der LED nur der Prüfstrom der fließt während deine Ports initialisieren. Das wäre dann von der Hardware her uncool aber vermutlich nicht so einfach zu ändern. Der einzige Weg wäre die Gates der Kanäle niederohmig auf Masse zu ziehen bis zu einer aktiven Freischaltung. Ziemlicher Aufwand.
    Wenn dein Zündspannungs-MosFET auch wackelt, dann muss da was passieren.



    Vertu dich nicht mit mehreren Abschusspositionen. Das ist beim Silvesterzündeln schon durchaus möglich, wenn du allein eine Front- und eine Rear-Position hast. Z.b. weil Vulkane und Bodenfeuerwerk in 50m Entfernung untergehen. Bombenrohre und Batterien wollen aber Abstand damit man keine Genickstarre bekommt.

    Wenn du also mehrere Boxen ansteuerst, dann wäre der gängige und übliche Weg die Boxen und die Kanäle pro Box separat zu adressieren. Wären dann z.b. 1.1 bis 3.8 oder A1-C8.
    Dazu musst du die Boxen natürlich wieder unterscheiden können, also eine feste oder einstellbare Adresse hinterlegen. Wobei es ja reicht wenn man die per Software ändern kann und im EEPROM/Flash ablegen. Zum programmieren darf dann halt nur ein Modul greifbar sein.
    Und wenn man es auf die Spitze treibt, könntest du die Anlagen auch als Repeater auslegen. Dann wären wir wieder beim Mesh.
     
  14. In dem Reset-Szenario leuchtet die LED nicht nur schwach, die blitzt hell auf. Das heißt da liegt im ersten Moment nicht nur Prüfstrom an, sondern Zündung ist generell da.
    Ein Zünder geht aber trotzdem nicht hoch.

    Damit da überhaupt was passieren kann, müsste Zündschalter an sein + elektrische Sicherung muss raus sein (also scharf) + es muss dann ein Reset passieren + der Zünder muss empfindlich genug sein.

    Wenn ich den mechanischen Zündschalter einschalte, dann entferne ich mich. Da turne ich nicht mehr an Batterien rum.
    Aber ja, das ist ein Umstand, auf den man hier selber nochmal achten muss.
    Wer ganz safe gehen will, nutzt nur 5 Kanäle.

    Ich hab mal google gefragt. Scheinbar gibt es keine Möglichkeit, dieses Verhalten zu ändern. Echt schade, wenn man nur 5 Kanäle wirklich nutzbar machen kann.
    Eine Invertierung wäre noch eine Möglichkeit. Man hängt das Gate des N-Channel per PullUp direkt auf VCC vom NodeMcu und zieht das Gate dann mit einem 2. N-Channel auf Masse. Der 2. N-Channel kommt dann an den GPIO.
    Wenn der GPIO High ist, dann schaltet der erste N-Channel durch und zieht somit das Gate auf Masse. Geht der GPIO auf Low, so sperrt der erste N-Channel und das Gate wird HIGH und somit schaltet der Treiber durch.

    Müsste so doch funktionieren und dann die GPIO nutzbar machen.
    Ich hab mal eine solche Schaltung schnell hingeschmiert und zusätzlich an D4 angeschlossen (alte Schaltung hängt noch dran, ist klar, dass das so insgesamt Käse ist).
    Funktioniert das oder Denkfehler?

    Invertierung.jpg
     
  15. Naja, funktionieren würde das schon - ändert aber nix am Problem wenn die Pins wackeln. Denn dann nehmen sie ja beide Zustände an, was sie nicht sollen.

    Mir fiele ein 74xx Buffer mit Enable-Eingang ein. Der schiebt die Signale vom IC dann einfach nur durch - vorausgesetzt der Enable ist high. Bräuchte aber wieder einen eigenen Port, denn wenn du den Enable mit an den Ausgang für die Zündfreigabe hängst kannst du keinen Durchgangstest mehr machen.

    Alternativ könnte man auch ein Latch vergewaltigen (Quasi ein Puffer der mit einem Impuls die Eingangszustände an den Ausgang übernimmt und sie dort so belässt, egal was der Eingang macht.) oder das in ein Schieberegister mit Output Enable rein takten. Letzteres wurde ja schonmal vorgeschlagen.
    Die kannst du auch in Reihe schalten und so deine Kanalanzahl unproblematisch erhöhen.

    Du müsstest nur drauf achten dass du Low Voltage TTL-Chips nimmst, damit die 3,3V Kompatibel sind. Die 3,3V zum Betrieb kannste aus dem NodeMCU-Board entnehmen. In CMOS-Logik brauchen die auch nicht all zu viel Strom.

    Nachtrag:
    Ich hab gerade nochmal nachgesehen. Ein 74HC595 sollte dafür gehen.
     
  16. Du hast Recht, zumindest GPIO0 wackelt zu Beginn.
    https://zoetrope.io/tech-blog/esp8266-bootloader-modes-and-gpio-state-startup
    Hier schreibt einer im Kommentar, dass er einen NPN Transistor (entspricht ja N-Channel) am GPIO hängen hat und einfach dieses Gezappel mit einem 470myF frisst.
    Ich kann das am Steckbrett mal ausprobieren.
    Man muss dann berücksichtigen, dass der MosFet langsamer schaltet. Wieviel es ausmacht: Keine Ahnung, die Formelschubserei ist schon lange her und zum googeln bin ich grad zu faul.

    Fraglich ist allerdings, ob er dann noch richtig bootet. Denn der Eingang muss ja HIGH messen, damit er weiß, dass er booten soll.

    Das mit dem "enable" hatte ich auch schon überlegt. Allerdings war mein Gedanke einfach alle Pins auf Masse zu ziehen. Funktioniert allerdings nicht, denn dann bootet er sicher nicht mehr. Da ist deine Variante passender.
     
  17. Vergiss den Elko am Gate wenn dir deine µC Ausgänge lieb sind. Du hast keine Strombegrenzung drin. Der Elko würde ziehen bzw. geben was die treiberstufe leiten kann. Vermutlich würde die das nicht oft mit machen.
    Davon ab würdest du dein Signal derartig verschleifen dass die Treiber lange im linearen Bereich sind und dann werden sie warm. Auch das willst du nicht.

    Das Schieberegister oder Buffer wäre hier die sauberere Option; ist ehrlich gesagt aber auch einzig und allein dem exzentrischen Verhalten des Chips geschuldet.
    Übrigens kannst du Schieberegister wunderbar per SPI füttern. MOSI an den Eingang, MISO interessiert keinen. Dein Bitmuster da drauf ausgeben Und dann einfach mit einem Pin der nicht rumwackelt mit dem Output Enable latchen. Zum löschen schiebst du einfach Nullen rein oder benutzt einen weiteren Pin als Reset.


    Ich überlege gerade schon ob ich nicht an meine Boxen auch noch ein paar Kanäle so dran stricken soll. 3 I/Os hab ich noch ;-)
     
  18. Ich hab das mit Elko eben ausprobiert.
    4,7k zwischen GPIO und Gate. Gate zu Masse mit 47k. Gate zu Masse über 47myF.

    Damit werden D3 und D4 100% Safe, D0 zuckt noch kurz. Der bräucht noch größere Kondensatoren.

    Das Signal wird verschliffen, das ist klar. Ob es allerdings den doch großzügig dimensionierten MosFet schaden würde? Immerhin könnte ich auf die Art alle 3 Kanäle "retten".

    Ein weiterer Test zeigt: Auch D9 und D10 (RX, TX) wären prinzipiell nutzbar. Allerdings sind auch die beim Booten auf HIGH.

    Mit Schieberegister hab ich bisher keine Erfahrung. So wie ich das sehe, brauche ich 3 Pins, um dann 8 Ausgänge schalten zu können. Nur der storePin muss wackelfrei sein, die andern wären egal.
    Store auf LOW, dann mit Data und Shift die Bits reinkloppen und dann Store auf HIGH.
    Solange Store sicher beim Reset auf LOW ist, sollte das Register keine dummen Sachen verursachen können.
    Bei einem ungewollten Reset bleibt das Schieberegister einfach im vorherigen Zustand. Es passiert also maximal, dass ein bereits aktiver Kanal noch an bleibt und erstmal nicht aus geht (bis der Reset durch ist und das Register wieder zurückgesetzt wird). Aber es kann nicht passieren, dass ein Kanal dadurch plötzlich feuert.

    Vorteil an der Variante wäre, dass der Schaltplan wieder verständlicher wird, weil man keine wilden Pintauschereien mehr hat. Für mein Platinenlayout wäre dieser Umbau allerdings total ätzend. Da schon alles angeschlossen ist, bekomme ich die Platine nur noch ein Stückchen aus dem Gehäuse raus. Da lötet es sich schwierig. Und wieder alle Ports abmachen und neu dranmachen hab ich eigentlich keinen Bock.

    Kommt erschwerend hinzu, dass das Register auch erstmal gekauft sein will.
    Bevor ich jetzt wieder total überzogene Preise beim lokalen Dealer bezahle, denke ich ernsthaft drüber nach, ob ich die ganze Kiste nicht einfach direkt nochmal aufbaue. Dann habe ich auch eine praktische Anwendung für Master/Slave und kann das Layout nochmal sinnvoller machen.

    Liegen die Pins des Registers eigentlich auf Masse, wenn sie auf 0 sind? Dann könnte man sich die Pulldowns wahrscheinlich sparen. Widerstand am Gate braucht man vermutlich auch nicht (das Register schafft noch mehr Strom, als der NodeMcu - 35mA statt 12mA). Wenn man auf Nummer Sicher gehen will, kann man auch da gerne 100Ohm verbauen (wären bei Kurzschluss dann 33mA). Man braucht ja sowieso irgendwas, um die Pins zu den MosFet zu verbinden und da kann man dann auch einfach nen Widerstand nehmen.

    Die Löterei wird dann wahrscheinlich auch einfacher, weil man alle Pins in einer Reihe hat (nur Q0 muss man mit einem zusätzlichen Leiter rüberholen).

    Irgendwie hat das Charme. Doof ist nur, dass morgen mein letzter Urlaubstag ist, dann geht's wieder zur Arbeit. Ich hab dann also nicht mehr so viel Zeit für das Projekt.

    Einerseits wäre ich froh, wenn ich mit der Hardware endlich fertig bin. Andererseits würde ich es aber schon gerne richtig machen...
     
  19. Das mit dem Schieberegister hatte ich ja oben Thread schon erwähnt (nicht ohne Grund), hier ein Link dorthin:
    http://www.feuerwerk-forum.de/showpost.php?p=843126&postcount=103

    Der OutputEnable, mit welchem man global alle Ausgänge auf hochohmig schalten kann muss auf einem stabilen Pegel liegen.
    Output Enable könnte man z.B. zusammen mit der Zündspannung schalten. Somit bräuchte man nur EINEN Pin welcher im Reset Fall stabil ist.

    Warum gerade "OutputEnable", darum:
    Hier ein Auszug aus der Verlinkung welche ich im früheren Post gemacht hatte:

    Die Ausgänge des '595 führen beim Einschalten undefinierte, also zufällige Pegel! Und der Eingang ¬SCL löscht nur die Schieberegister (= unnütz, um mit ¬RESET zu verbinden). Sind deshalb definierte Pegel beim Einschalten unerlässlich, muss man ¬OE beschalten.

    Nach dem Powerup können im Schieberegister Bits also als 0 oder 1 vorhanden sein, einziger zuverlässiger Zustand ist es also alle Pins am Ausgang auf Hochohmig zu halten (mit dem OutputEnable) die stabilen Zuständen müssen dann in diesem Fall mit Pulldowns an den Ausgängen (Fet Gates) hergestellt sein.
    Erst wenn das Progamm dann aktiv wird, schiebt man in das Register erstmals definierte Werte (z.B. lauter 0) und schaltet die in das Ausgangsregister durch.
    Beim Zünden kann dann OE (OutputEnable) wenn über die Züsnspannung mit geschlatet die ganze Zeit aktiv sein, da dann die Ausgaberegister ja direkt an den Pins erscheinen. Dort zählt zum zünden dann nur noch das Auslösen des Übertrags vom Schiebe in das Ausgangsregister des IC's.



    Sehr wichtig:
    Wenn du einen Logikbaustein verwendest (speziell einen mit Registern wie ein Schieberegister) dann ist es sehr wichtig Abblockmassnahmen an den Versorgungspins vorzunehmen, in diesem Fall wäre das ein 100nF Keramik Kondensator möglichst direkt zwischen GND und Versorgungspin am Chip selbst.
    Bleibt dieser weg, kann es durch äussere Einflüsse schon mal passieren, daß ein Bit in den Registern einfach mal so seinen Zustand ändert.

    Ich schreib das nur damit so sowas gleich mitbestellen könntest.

    Grüße,
    Walter
     
  20. Tja, so ist das mit dem Anspruch an sich selbst...

    Und der Labmaster weiß auch wovon er da spricht ;-)
    Aber: Wenn man Output Enable mit an den Pin für die Zündspannung hängt, funktioniert die Durchgangsprüfung nicht mehr. Weiterhin ist OutputEnable invertiert.
    Ich würde noch die Strombegrenzungswiderstände (Angstwiderstände) vorsehen. Mit den 100 Ohm passt das schon.
    Generell passiert da ja nix, egal welchen Status die Ausgangspins haben, solang deine Zündspannung inaktiv ist.

    Blockkondensatoren sollte generell jeder IC bekommen, normalerweise möglichst nah an der Versorgung, ggf. auch Mehrere. Dein Controller hat die notwendige Beschaltung halt schon auf dem Board.

    An Q7S kannst du übrigens weitere der ICs kaskadieren. Den Ausgang legst du auf den nächsten Eingang. Clock und Enable-Leitungen werden parallel geschaltet. Damit kannst du deine Kanäle quasi beliebig erweitern. Einfach weitere Bits rein schubsen, die werden dann durchgereicht.
     
  21. Das Register wollte ich erstmal vermeiden, weil jedes unterschiedliche Bauteil die Komplexität erhöht. Es sollte ja eigentlich einfach zum nachbauen sein.

    Was mich an der Sache mittlerweile reizt ist, dass man mit 2 Registern jetzt ganz gemütlich auf 16 Kanäle kommen kann (ohne, dass man Register verschachteln müsste). Das ist mit den ganz normalen Pins des NodeMcu zu realisieren und wäre auch sicher. Da ich insgesamt 8 Pins zur Verfügung habe, wobei 4 100% Sicher sind, sollte das klappen.
    Den OE über die elektrische Zündung zu schalten (gleicher Pin) ist prinzipiell ne geile Idee. Damit entsteht automatisch ein weiterer Sicherungsmechanismus. Allerdings greift der ja auch dann, wenn ich den Durchgang prüfen will. Somit geht das leider nicht.
    Es wäre ja aber locker ein anderer Pin übrig, um OE zentral zu schalten. Also einen zentralen Freigabe Pin. Ich denke aber, das macht es in der Software dann unnötig kompliziert. Denn dann muss ich immer prüfen, ob noch irgend ein Kanal gerade aktiv ist, damit ich weiß, wann ich den OE schalten darf.
    Weiter muss OE ja auf HIGH sein, damit er sperrt. Will ich damit also beim Boot absichern, dann brauche ich da einen Pin, der initial HIGH ist. Ich bin mir nicht sicher, aber ich glaube D0 (User Pin) könnte dafür in Frage kommen. Die anderen Pins zappeln meines Wissens.

    Bestimmt kann man auch irgendwie messen, ob das Register angeschlossen ist oder nicht. So könnte man die Software so realisieren, dass sie selbst erkennt, ob nur 1 Register angeschlossen ist (8 Kanal) oder 2 Register (16 Kanal).
    Dann kann man sich aussuchen, ob man das Modul mit 8 oder 16 aufbaut (je nach Geldbeutel und Bedarf).

    Du sagst die Outputs werden bei LOW einfach hochohmig? Ergo brauche ich die Pulldowns am Gate weiterhin.

    Und am Register brauche ich 100nF als Puffer zwischen VCC und GND, damit ein Zappeln in der Versorgung keine Bits kippen lässt? Geht klar.
    Strom begrenzen brauche ich da aber nicht oder? 100nF sollten jetzt nicht dazu führen, dass die 3,3V Schiene abraucht.

    Mein fertig gelötetes Modul umbauen wäre dann schon ein wenig schwieriger. Ich tendiere aber eh dazu, die ganze Kiste jetzt nochmal mit 16 Kanälen neu aufzubauen. Die paar € tun mir glücklicherweise nicht weh.

    Also nochmal an KiCad dran...
     
  22. @deneriel
    Wenn ich dich richtig verstehe, dann puffert der NodeMcu schon, also brauche ich keinen extra Kondensator?

    Wenn ich mir die Pulldowns sparen kann, dann würde ich den OE fest auf Masse ziehen. Der einzige Unterschied ist, dass mit beschaltenem OE im Reset Fall das Register sofort alles ausschalten würde. So schaltet erst alles ab, wenn das Register wieder initiall befüllt ist (also nach ca. 1sec). Im schlimmsten Fall bleibt also ein Ausgang mal etwas länger an (falls er gerade beim Zünden resettet). Sollte also kein Problem darstellen.

    Das wichtige ist ja nur, dass durch einen Reset nicht plötzlich irgendwas einschaltet und das ist sichergestellt, wenn Store auf einem sicheren LOW Pin hängt (den würde ich auch mit einem Pulldown versehen, um einen Float abzusichern).
    Die anderen beiden Kanäle könnte man direkt anschließen, da sollte Zappeln egal sein (dann werden halt beim Boot ein paar Bits reingeschrieben, die werden ja anschließend im Init sofort wieder rausgeschoben und erst danach kommt ein Store).
     
  23. Abblockkondensatoren sollte man jedem Chip verpassen. Das NodeMCU Board hat die in der Stromversorgung für den ESP8266 halt schon drin.
    Bei ICs die du selbst verbaust, musst du dich auch selbst drum kümmern.
    100nF keramisch haben sich als Faustregel halt bewährt. Bei langen Zuleitungen und viel Strom braucht man vielleicht auch mal mehr. Bei sehr schnellen Schaltflanken auch noch weniger.

    Die Ausgänge vom Schieberegister sind TriState-fähig.
    Wenn !OE aktiv ist (also low) werden sie entsprechend den Registerinhalten aktiv auf High oder Low gezogen.
    Ist !OE inaktiv, sind die Pins praktisch floating. Hier musst du dich bei Bedarf (hast du) selbst um einen definierten Zustand kümmern.


    Um festzustellen wieviele Register da dran hängen kannst du den Ausgang des letzten Registers ja wieder auf einen IO legen und zurücklesen wie viele Regustertakte ein Wert braucht bis er ankommt. Also erstmal initialisieren und dann ein einzelnes Bit durch takten.


    Man müsste mal im Datenblatt schmökern wie man diskret zu einem sauberen definierten Zustand beim Einschalten kommt...
     
  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