Posts by Gnom

    Wieso der Arduino?
    Du hast einNetzteil, an dem Der Pi hängt (für die Steuerung).

    Du brauchst ebenso Spannung für den Arduino - die könntest du vom gleichen Netzteil holen.

    Wenn das stark genug ist, kannst du auch noch die LEDs damit versorgen.


    Aber die 1,28 A gehen doch weder über den Arduino noch über den Pi (es sei denn, du willst sie aus einem Pin des Pi ziehen - aber da du einen Zero verwenden willst, glaube ich ohnehin nicht, dass der das schaffen kann mit seinen lütten Anschlussbeinchen.


    Ein 2,5 A Netzteil sollte aber für alles reichen.

    Der Zero braucht höchstens ein paar Hundert mA - schließlich hängt da ja nicht viel dran.

    Der Arduino braucht fast gar nichts.

    Und der Rest reicht für die LEDs.


    Mit einem anständigen 5 V / 3 A Netzteil (z. B. Mean Well) bist du auf jeden Fall auf der sicheren Seite.

    Für die Zeilen genügt die Belastbarkeit des ULN nicht. Außerdem ist der ULN2803 ein NPN und du solltest einen PNP verwenden. Es gibt zwar ein PNP-Pendant zum ULN2803 (UDN298X) - aber wegen der zu geringen Strombelastbarkeit genügt der eh nicht.

    Such dir passende PNP-Transistoren, die mit 1,28 A klar kommen.

    Stimmt, die hab ich gar nicht gesehen. Warum nimmst du einzelne Transistoren und nicht Arrays wie den ULN?

    Der 337 ist ein NPN mit 0,8 A - für die Steuerung der Spalten ist der ok. Das ULN Array würde auch gut funktionieren.

    Für die Zeilenansteuerung solltest du aber einen PNP nehmen, weil die Last da nicht vor, sondern hinter dem Transistor hängt. Außerdem kommst du dort auf bis zu 1,28 A (64 LEDs mit je 0,02A) - du solltest also einen etwas stärkeren nehmen.

    Noch was am Rande:
    Wenn ich dein Foto richtig verstehe, steuerst du die LEDs direkt mit dem Schieberegistern an. Bei einer LEDs geht das gerade noch, aber eigentlich sind die Scheibergister nicht mal dafür stark genug. Die können meist nur 70 mA gesamt - bei 8 LEDs eingeschaltet hast du aber 160 mA. Wenn aber deine Schieberegister 64 Spalten ansteuern, dann muss das Schieberegister der zugehörigen Zeile im schlechtesten Fall den Strom von 64 LEDs aufnehmen. Das schafft es auf keinen Fall. Wenn also deine bestellten LEDs da sind und du sie eingelötet hast, wirst du wahrscheinlich eine Enttäuschung erleben.


    Wenn du Glück hast, genügen die Schieberegister für die Spalten. An den Zeilen brauchst du aber auf jeden Fall einen passenden Treiber, das heißt, einen Transistor, der genügend Strom ableiten kann. Bei 64 LEDs mit je 20 mA wären das 1,28 A. Du müsstest also mit dem Schieberegister einen relativ leistungsfägigen PNP-Transistor für jede Zeile steuern.

    Sollten auch die Schieberegsiter für die Spalten zu schwach sein, müsstest du hinter jedes Schieberegister einen ULN2803 (NPN-Array) schalten.

    Ganz einfach mit einer seriellen Verbindung.

    Der Pi berechnet das Muster, das angezeigt werden soll. Vereinfacht mal folgend


    Code
       X    XXXXXX
      XXX   XX   XX
     XX XX  XX  XX
    XX   XX XXXXX
    XXXXXXX XXXXX
    XXXXXXX XX  XX
    XX   XX XX   XX
    XX   XX XXXXXX

    Das ergibt 8 Zeilen zu je 2x8 Bit

    00010000 11111100

    00111000 11000110

    01101100 11001100

    11000110 11111000

    usw.

    Diese 16 Bytes überträgst du an den µC. Der Schickt dann jeweils das Zeilenmuster (10000000 für die erste, 01000000 für die zweite usw...) und die zugehörigen Spaltenmuster an die Schieberegister.

    Für 8 Schieberegister mit je 8 Spalten werden es natürlich entsprechend mehr Bytes (64).

    Wenn ich dich richtig verstehe, geht es dir bei en 1 bzw. 8 ms um das Multiplexing. Also, du steuerst eine ms lang die erste Spalte an, dann eine ms die zweite usw.

    Grundsätzlich ist das kein Problem. Du musst nur völlig anders rangehen als in deinem Codebeispiel.


    Du brauchst 9 Schieberegister, die du in Reiche schaltest. Eines davon steuert den Strom der jeweiligen Zeile an (8 Ausgänge = 8 Zeilen - immer nur eine aktiv), die anderen Schieberegister steuern die 64 Spalten jeweils für diese eine Zeile an. Du musst also 9x8 Bits an die Schieberegister senden, um eine Zeile korrekt anzusteuern. Dann bereitest du die Daten für die nächste Zeile vor, prüfst, ob die ms schon rum ist und sendest dann wieder die 9x8 Bit usw.


    Das Senden könntest du mit einem Timer-Interrupt steuern, damit es gleichmäßig erfolgt.


    Wenn der Pi das nicht hinbekommt, kannst du das leicht mit einem Arduino machen. Die Berechnung der Matrix kann der Pi machen, er übergibt dann nur das aktuelle Muster an den µC und der steuert die Ausgabe. Die Matrix selbst ist ja nur 64 Bytes groß.

    Ich vermute, das Betriebssystem des Pi zieht zu viel Zeit ab und stört damit das Timing deines Programms.

    Auf einem Mikrocontroller müsste das eigentlich tun, was es soll.


    Du kannst ja mal versuchen, dir in einer (Endlos)Schleife die Milliseconds der Systemzeit ausgeben zu lassen. Wenn dort lücken auftreten, sind das Zeiten, in denen dein Programm nicht läuft, weil das Betriebssystem oder andere Programme den Prozessor beanspruchen.


    Wenn du allerdings eine Matrix steuern willst, musst du das ja nicht nur mit einer, sondern mit vielen LEDs machen. Dann bringt dir sleep nicht viel, weil dein gesamtes Programm blockiert ist. Da könntest du besser auf Timer-Interrupts zurückgreifen.


    Innerhalb der Schleife kannst du den Rechenaufwand noch reduzieren, indem du Konstanten verwendest statt Variablen. Und die Multiplikation mit 8 kannst du vor der Schleife einmal machen, statt in jedem Durchlauf erneut. Aber das macht alles keinen riesigen Unterschied.

    Ne, man muss ja nicht immer konstruktiv sein (weißt du ja selber...). Aber vielleicht liest es ja einer von den Siemens-Leuten. Der könnte es sich zu Herzen nehmen.

    Uhhh,

    dazu ein technisch schlecht gedrehtes Video mit ein paar Kaspern, die so gut englisch sprechen wie meine Großmutter (...wat sis mäschin mäks...) und die inhaltlich auch nur oberflächliches Zeug zum Besten geben...

    Solche Texte Liebe ich... (kotz!!!)


    Was ist SIMATIC IOT2020?

    SIMATIC IOT2020 ist die zuverlässige und offene Plattform für die Entwicklung und einfache Umsetzung von innovativen Ideen rund um das Thema IoT. Durch die Offenheit und die vielfältigen Erweiterungsmöglichkeiten lassen sich kreative Anwendungen schnell und kosteneffizient realisieren - und dies auf einer robusten und für den Dauerbetrieb auch bei rauen Umgebungsbedingungen ausgelegten Hardware. Eine breite Community und verfügbare Applikations-beispiele unterstützten den einfachen Einstieg in die Welt der Automatisierung. Damit ist das SIMATIC IOT2020 eine ideale Plattform für Ausbildung und Forschung.


    Hohles Blabla!!! Welche Marketingidioten schreiben so eine Scheiße!


    Was ist Kaffee?
    Kaffee ist eine farbige Flüssigkeit die aus Substanzen gewonnen wird und sich zu jeder Tageszeit beliebig anwenden lässt. Er ist in Behältnissen transportabel und dient vor allem der Nutzbarmachung in interessierten Kreisen. Kaffee hat sich bereits langjährig bewährt und wirkt schnell und zuverlässig.
    (Das gilt für Benzin, E605 und Whisky allerdings genauso.)

    Bei 4K kommst du in Größenordnungen von 10 GByte pro Stunde = 80 GBit/h ~ 22 MBit/S. Theoretisch mit LTE machbar - aber praktisch hab ich da meine Zweifel. Selbst wenn ein entsprechend schnelles LTE-Netzt am beabsichtigten Standort verfügbar ist, ist die reale Datenrate von vielen Faktoren abhängig - Entfernung zum Funkmast, Verschattung, Zahl anderer User im Netz, ...
    Faktisch wirst du im Download selten und im Upload wahrscheinlich nie in der Lage sein, solche Datenraten dauerhaft durchzuhalten. Wenn das in Echtzeit erfolgen soll, wird das eher nichts werden.


    Tut es nicht eine deutlich geringere Framerate/Auflösung für die Echtzeitüberwachung, lokale Speicherung der HD-Daten und ggf. Abruf von erforderlichen Sequenzen?

    Ich finde die Idee mit einer Klappe naheliegender.

    Wenn man den Schlüssel einwirft, landet er auf einem eng begrenzten Zwischenboden, wo auch der Reader ist. nach dem Lesen klappt dieser Boden nach unten und lässt den Schlüssel in einen tiefer liegenden Behälter Fallen. Dort ist er auch sicher gegen herausfischen mit Drahtschlingen oder ähnlichem. Du könntest ihn auch wieder auswerfen, wenn er nicht erkannt wurde oder jemand irgendwas anderes einwirft.

    Zugleich hast du eine zuverlässige Erkennung, dass überhaupt ein Schlüssel eingewofen wurde. Bei BT müsstest du ja ständig alle Schlüssel scannen, um zu sehen, welche da sind oder welcher gerade eingeworfen wurde. Oder die müssten sich selbstständig in kurzen Abständen melden.

    Also, wenn bei Pelletmangel die 230-V-Lampe angeht, kannst du dir parallel dazu (idealerweise von einem Elektriker) eine Steckdose anschließen lassen. An die hängst du ein passendes Netzteil (3,3 V ist glaube ich die normale Betreibsspannung des ESP32) , da dran den ESP. Jetzt musst du "nur noch" ein Programm schreiben, das eben die gewünschte Mail absendet. Wenn die Lampe angeht und somit auch die Steckdose Strom bekommt, startet der ESP und führt das Programm aus. Das wäre doch schon alles.

    Die 230 V kannst du, wie schon oben erwähnt, leicht mit einem kleinen Netzteil abgreifen. Die einfachste Art, das dann auszuwerten, ist ein Optokoppler, dessen Ausgang du mit dem Pi erfasst.
    Wenn du etwas mehr Mühe reinsteckst, kannst du vielleicht auch mit einem Ultraschallsensor den Pelletstand messen und dir jederzeit den aktuellen Stand melden lassen.

    Das sind die Dinge, die Otto Normalverbraucher gar nicht hören will...

    Spitzenverdienst mit 12-14-Stunden-Schichten.... und dann darf die Allgemeinheit dir mit 46 die Frührente finanzieren und deine Krankheitskosten tragen.
    Versteh mich nicht falsch - dein Gesundheitszustand ist bemitleidenswert. Aber Wozu haben wir in Deutschland Arbeitsschutzvorschriften? Und vielleicht sollte jeder auch seine eigenen Grenzen kennen.

    Wenn die Tasten nicht gleichzeitig gedrückt werden müssen, kannst du auch eine Tastenmatrix benutzen, dann genügen dir 10 GPIOs, um 5X5=25 Tasten anzuschließen.

    Mit drei Parallel-In-Schieberegistern kannst du das auch machen und brauchst dann nur 3 oder 4 GPIOs.