Posts by WillyR_aus_C

    Guten Tag,


    ich habe absolut keine Ahnung was du mit dieser Aussage bezweckst.

    Dein Code falls er in der Formatierung richtig geschrieben ist, nicht mit dem noch einmal zusätzlich eingerückten else dann schaltet die LED mal kurz für den Moment wo eine Tasterbetätigung festgestellt wird auf ON, und geht sofort wieder aus, wenn der Taster losgelassen wird. Aber auch nur dann, wenn der Pegel am Eingang von LOW auf HIGH geht.
    Zur Formatierung im Python Code. Eine ELSE hat immer die gleiche Einrückung wie das zugeordnete IF.

    Hier noch einmal die Erläuterung zu den Registerabfragen:

    Wenn du Taster an einen Eingang des PCF8574 anschließt gibt es zwei Möglichkeiten
    1) Mit einem Pullup wird der Pegel bei geöffneten Taster auf HIGH gehalten. Damit ist die Abfrage im ungeschalteten Zustand des Tasters der mit GND verbunden ist, immer HIGH oder 1 solange keine Tasterbetätigung stattfindet.
    2) Mit einem Pulldown wird der Pegel bei geöffnten Taster auf LOW gehalten. Damit ist die Abfrage des Statusregisters im ungeschalteten Zustand immer 0 , und wechselt auf HIGH bzw. 1 wenn der Taster dann mit der Vc- Pin des PCF8574 verbunden ist.
    Jedoch regiert der PIN13 INT nur wenn der Pegel an einem Eingang auf HIGH wechselt.
    Daher auch die Frage, was soll bei Tasterbetätigung passieren ? Soll die LED nur solange leuchten, wie der Taster gedrückt wird, oder soll die dazugehörige LED angehen, und an bleiben bis zur erneuten Tasterbetätigung ? Dann musst du noch beachten, dass Taster prellen.


    Jetzt musst du auf deine Spannungsversorgung achten.

    Da du keine Angaben gemacht hast wie der PCF8574 über den PIN16 versorgt wird, kann ich hier nur raten. Daher spielen die Größen der Widerstände sowohl Vorwiderstände der LEDs wie auch der Pullup Widerstände ein gewisse Rolle. Denn der Gesamtstrom der durch den PCF8574 fließt darf keinesfalls 80mA überschreiten. Jetzt kommt aber auch noch das Problem hinzu, weil du keinen Schaltplan veröffentlicht hast, woher bekommt der PCF seine Versorgungsspannung ? Ich hoffe nicht das alle drei PCF8574 am GPIO - Pin 36 = Vout 3,3 V des PICO hängen.

    Daher mal bitte den aktuellen Schaltplan beifügen. Auch welche Komponente woher mit welcher Spannung versorgt werden, und dein bisheriger, vollständiger Programmcode.

    Guten Abend,

    Sorry, falscher Index. So passt es:

    Danke. Tippfehler können doch mal passieren, solange sie bemerkt werden ist doch die Welt in Ordnung. Ich werde mal diese Nacht wieder Werte sammeln lassen, und melde mich bei Rückfragen noch einmal.

    Danke erst einmal für die tolle Unterstützung.

    Guten Abend,


    Danke @Tell für dein Codebeispiel.


    Leider habe ich keine Ahnung wie ich das Einordnen soll.
    Du verwendest hier "Willyconst".


    Deswegen habe ich mal eine Ausgabe erstellt, die Wertebereinigt um die Extrema wie dargestellt aussieht.
    Wo würde jetzt WILLLYCONST liegen ?

    Danke im Voraus

    Guten Abend,


    ich weiß echt nicht was du treibst !
    Wenn du den Port = Pin mit einem Pullup auf High ziehst, aber mit dem Taster ihn gegen GND ziehst, dann muss das Ergebnis der Anfrage dem logischen Pegel entsprechen.
    Also wäre die Abfrage falls du sonst keinen Beschaltungsfehler hast:

    Python
    while True:
        if pcf2.pin(0) == 0:
            pcf2.pin(7, 1)
        else:
            pcf2.pin(7, 0)

    Das Problem ist aber, dass diese Bibliothek keine Auswertung über PIN13 des IC unterstützt.
    Damit könntest du über einen zusätzlichen Pin welcher mit PIN13 des PCF8574 verbunden ist feststellen ob geschaltet wurde. In dem Moment wo eine Tasterbetätigung festgestellt wird, schaltet dieser Ausgang kurzzeitig auf LOW, das könnte man über einen Interrupt feststellen und in die Abfrage-Routine springen. Denn ohne diese Nutzung von PIN13 darf diese PIN Abfrage Routine hier diese WHILE Endlosschleife keine Verweilzeit in Form eines Sleep enthalten.

    Python
    from machine import Pin
    
    def pin_read():
        '''
        hier der Abfragecode der INPUT Eingänge mit nur einem Durchlauf 
        ohne while inkl. der LED Schaltfunktion
        '''
    
    inter = Pin(3, Pin.IN) # verbunden mit PIN13 des PCF8574
    inter.irq(trigger = Pin.IRQ_FALLING, handler=pin_read)

    Guten Abend,

    Warum gibst du in Zeile 5 und 6 jeweils noch machine mit an, wenn du ohnehin Pin importiert hast ?
    Wenn du diese pcf8574.py im Original gelassen hättest, hast du wieder einen Aufruffehler , weil dann müsstest du wie aufgezeigt address = 0x21 schreiben, und nicht nur 0x21.

    Was hat jetzt das Display mit der Adresse der Schaltenden PCF8574 zu tun ?
    Wenn du den i²C Bus wie in Zeile 8 Initiiert hast, was mit 100_000 auch widersinnig ist, denn der PCF8574 schafft die 400_000 oder 400 kHz, oder du verwendest Leistungslängen die ein Taktratenreduzierung notwendig machen, dann füge mal in deinem Programm ein:


    addesses = i2c.scan()
    Hier müsstet du jetzt in dieser Variablen addresses drei gefundene I²C Slaves angezeigt bekommen. Andernfalls hast du die Belegung / Beschaltung der PINs A0-A2 an den PCF8574 selber falsch ausgeführt.
    Und der dritte PCF8574 für den I²c Displayadapter hat gar nichts mit dieser PCF8574.PY zu tun, denn der Aufruf dieses PCF8574 erfolgt über eine ganz andere Bibliothek, wohl dieser beiden zur LCD Ansteuerung https://peppe8o.com/download/micropython/LCD/lcd_api.py und https://peppe8o.com/download/micropython/LCD/i2c_lcd.py

    Guten Abend,

    das beantwortet die Frage nicht nach der Datenstruktur von deinem ominösen "table"... ist das eine Liste, ein 1-dimensionaler Numpy Array, ein Array aus dem Python "array", ...?

    Es ist eine Liste die in der Hauptroutine mit .append(<Float>) gefüttert wird. Ja es ist nur eine Reihe, oder wie du wahrscheinlich mit 1-Dimensional meinst.

    Zweite Frage: kommen Minima und Maxima genau 1x vor oder können die auch mehrfach vorkommen? Also z.B. [1, 2, 3, 4] vs. [1, 2, 1, 3, 4]? Wenn mehrfach: sollen alle Vorkommen von Minima und Maxima entfernt werden?

    Das kann ich dir leider jetzt noch nicht eindeutig sagen, ob es möglich sein könnte, daß diese Extrema mehrfach auftreten können. Wenn dann sollten jedoch alle entfernt werden.

    Definiere "annährend gleich"... und wie viele Werte müssen nicht "annährend gleich" sein, damit es einen Trend noch oben (oder unten gibt). Was ist, wenn X Elemente ein positiven Trend haben _und_ Y Elemente einen negativen?

    Ein IMHO simple Implementierung wäre, eine Trendlinie / Ausgleichsgrade durch alle Punkte zu legen und dann die Steigung der Geraden zu bestimmen. Ob das für dich ausreicht muss du entscheiden. Wenn die Werte stark schwanken bekommst du ziemlich sicher einen schlechten R Quadrat Wert. Je niedriger R Quadrat ist, desto ungenauer ist der Trend.

    Ja, wie soll ich das jetzt am einfachsten beschreiben ? Aber ich versuche es mal so, um eine Versinnbildlichung zu erreichen.
    Nehmen wir an, diese Tabelle / Liste ist die Fortschreibung der aktuellen Tagestemperatur. Diese Auswertung erfolgt nun nach gewissen festen immer wiederkehrenden Zeitabständen. Also wenn die Aufzeichnung Mitternacht beginnen würde wäre es "Arschkalt", dann gegen 8 Uhr geht die Sonne auf, also haben wir ein tendenziellen Anstieg der Temperatur. Mittag schneit es dann, die Temperaturen sinken wieder also haben wir wieder einen Abwärtstrend. Nachmittags kommt nochmal die Sonne raus, und die Temperaturen steigen wieder. Aber am Ende der Aufzeichnung, wäre einfach nur der erste mit dem letzten Wert zu vergleichen um einen Gesamttrend / Temperaturentwicklung darstellen zu können, oder eine entsprechende Aussage zu treffen. Falls es dir weiter helfen würde, ich kann den Punkt genau bestimmen, wann eine Aufzeichnung beginnt und endet, und dann die nächste Aufzeichnung beginnt. Die Temperatur ist jetzt nur als Beispiel genannt. Genaugenommen es sind Prozesszeiten in Millisekunden.

    Guten Abend,

    Den Mittelwert habe mal drinnen gelassen, damit Du einen Vergleich hast zum Durchschnitt.


    Zum Trend habe ich gerade keine Idee, wie man das umsetzen könnte..

    Wenn ich das jetzt anhand der Rückgabewerte richtig sehe, oder verstehe, dann ist dieses statistische Mittel sowas wie wieder ein Durchschnittswert des Bereiches in dem die meisten Werte anzutreffen sind ? Ich habe mir mal die ganzen Werte in ein Tabelle geladen und mit Excel grafisch angesehen, dann ist dieser median() Wert so etwas wie wo ungefähr die meisten Werte aus table in der Nähe sind. So würde ich das jetzt interpretieren, obwohl mir dafür die mathematischen Kenntnisse fehlen. Ich habe auch schon mit den ganzen anderen Funktionen herumgespielt, die mit in der Anleitung aufgeführt waren. Jedoch einen Trendverlauf steigend, gleichbleibend oder fallend habe ich dabei nicht heraus bekommen.
    Danke für diese ersten Lösungsschritte und deine Unterstützung

    Guten Tag,

    dann verrate doch erstmal, welche Datenstruktur `table` hat. Ohne die Info ist keine sinnvolle Hilfe möglich.

    Entschuldigt bitte dieses Säumnis. Es sind positive Nachkommazahlen ( Float-Point ) im Bereich 10 bis ca 48.000. Table hat selber eine sehr unterschiedliche, laufzeitanhängige Länge / Umfang von minimum 500 Werten bis ca. 250.000 Einträgen.

    Guten Tag,


    in der Datei ist kein Fehler drin. Die Adresse ist dort mit 0x20 abgegeben, und muss damit nicht genannt werden, wenn es sich im einen PCF8574 ( kein PCF8574A ) mit der Hardware Pinkonfiguration A0 = LOW, A1 = LOW, A2 = LOW ist. Andernfalls muss man bei der Initiierung den Parameter "address" mit der über die PIN Beschaltung A0 bis A2 voreingestellten Adresse vornehmen. Zum Beispiel:
    address = 0x22

    Aber wie hast du den I²C Bus initiiert ? Denn auch diesen musst du bei der Objektinitiierung angeben. Das ist der i2c der als erstes vor der Adresse angeben werden muss.


    Dann wäre dir Frage auf welchem µController dieses µPython Programm laufen soll ?

    So würde das Ganze für ein RasPi PICO aussehen.

    Guten Tag,


    Ich gehe mal von einer Liste aus. Du willst also nicht den Durchschnitt

    Im Prinzip hast du mit dieser Angabe sum(table) / len(table)  vollkommen recht. Nur sollten zuvor die Extrema Minimalwert, und Maximalwert zuvor aus der table irgendwie entfernt werden, und im Anschluss die Berechnung genauso durchgeführt werden.
    Das ich mit table.count(min(table)) bzw. table.count(max(table)) die Anzahl der beiden Extremstellen feststellen , soweit bin ich schon. Nur wie bekomme ich diese aus table gelöscht um die Durchschnittsberechnung durchzuführen ?

    Ja der Trend ist hat der Verlauf, wenn man das grafisch darstellen würde, dass man sagen könnte die Werte sind nun vermehrt steigend, oder abfallend, oder sie halten sich ungefähr alle im Bereich des mathematischen Durchschnittswertes auf.


    Danke

    Guten Tag,

    wieder einmal hängt es bei mir mit dem WIE ;)

    Ich benötige eine Funktion, die welche mit der Rückgabe eine statistische Auswertung macht.

    Python
    def statistic(table):

    Jetzt möchte zu einem:

    - den Minimal- und Maximalwert von table als Tuple zurückgeben. Soweit kein Problem.

    Python
    return (min(table, max(table)), durchschnitt, trend)

    - den Durchschnittswerte ohne die beiden Extrema MIN und MAX

    -> hier habe ich absolut keine Idee für einen Lösungsansatz


    - und als letztes einen Trendbewertung der Einzelwerte aus table, mit dem Rückgabeergebnis "0" für alle Einzelwerte von table sind annähernd gleich, "1" für einen Aufwärtstrend und "-1" für einen Abwärtstrend.

    Danke :danke_ATDE: für eure Unterstützung

    Guten Tag,



    Sowohl diese Aufsteck-Spitzen aus dem Amazon-Messzubehör Set passen problemlos in ein solches Steckboard, wie es auch fertige Adapter für HÜ Messspitzen gibt, die auf alle Messspitzen mit einem Nennmaß von 2 mm ( Hirschmann ) passen.
    Außer den Einbaubuchsen, um solche Messspitzen direkt an einem Gehäuse andocken zu können, gibt aus Buchsen zum Verlöten, wo man sich dann selber etwas dranlöten könnte, und auch kleine Meßklemmen ( isoliert ) die man direkt auf die üblichen Messspitzen aufstecken kann.

    Das System wird von der Firma Hirschmann als 2mm Bananenstecker /-Buchsen System verkauft. Die Kosten sind sehr überschaubar.

    Guten Abend,


    ich habe mich nun wieder einmal um so mehr mit den einzelnen Punkten beschäftigen können.
    Dazu vielen Dank an Andreas und llutz, obwohl ich deine Unterstellung nicht so ganz teilen kann.

    Wie Andreas schon so richtig festgestellt hat, sind die beiden Farben Silber und Gold mit keinem System, egal ob TFT Display , WS-NEOPIXEL wie auch mit einer RGB-LED darstellbar.
    Für ein "angedachtes System" was auch aus der Ferne ( Klassenraumgröße ) gesehen werden soll ist die Display-Variante gleich mal hinfällig geworden. Viel zu klein, und nur wirklich erkennbar wenn man höchstens 1 1/2 Meter entfernt steht. Jetzt ist mir noch ein Waveshare 11,9" Widescreen in die Hände gefallen. Für die reine Messwertanzeige vollkommen okay. Jedoch dann das Problem, weil dieses Display nur einen HDMI Anschluss hat, wie steuert man dieses an, wenn man gerade kein großes RasPi dafür übrig oder zur Verfügung hat ?

    Neopixel wie auch RGB LEDs könnte man fast sagen vergiss es, wenn es um sehr dunkle Farbtöne geht, besonders Braun und Schwarz. Jedoch wenn man einen Matten Schirm hätte, der die nicht für die Farbringe genutzten Flächen ganz leicht oder schwach Hintergrund beleuchtet. Ist zwar eine tüchtige mechanische Bastelei, aber zumindest eine Lösung. NeoPixel hier das Problem der Stromversorgung die man bei dieser Menge auf die Größe bezogen einsetzen müsste. In Sachen GPIO reduzierter Ansteuerbarkeit natürlich ungeschlagen.
    Jedoch auch bei den RGB LEDs würde ich das trotz der Einwände von Andreas nicht als das "große" Problem sehen, wenn man auf einen LED-Treiber wie den I2C ansteuerbaren PCA9685 setzt. Mit zwei solchen Chips lassen sich immerhin 10 RGB LEDs mit ausreichend PWM Kanälen ansteuern, und könnte gleichzeitig auch noch die Hintergrundbeleuchtung dimmen.

    Zudem wäre diese Variante wie auch die NeoPixel Version von einem µController zu bewältigen, ohne das man auf ein großes RasPI zurückgreifen müsst. Dabei aber wieder die Frage, wie stellt man das Meßergebnis in einer Größe dar, damit dieses auch aus 2 bis 3 oder mehr Metern Entfernung noch lesbar ist ?

    Jetzt noch der Punkt, wie messe ich den Widerstand möglichst genau ein, und wie gehe ich mit den Toleranzklassen um. Dazu habe ich mir mal eine Tabelle angefertigt, in der die möglichen Überschneidungen schon bei 5 % Toleranz, erst recht bei den 10% offensichtlich werden.

    Noch ein Wort an Andreas: Deine Vorstellungen, dass müsste die heutige Generation selber hinbekommen - vergiss es. Die bekommen noch nicht einmal eine Verdrahtung mit einem Spannungsteiler zur U/I Kennlinienerfassung für eine einfache Diode trotz vorliegenden Schaltbildes hin, ohne einen Kurzschluss zu machen. Es geht auch nicht um den besten Mentor, oder sonstiges, es geht einfach, weil ich über eine Bekannte und Mitglied des Elternrates angesprochen wurde, zwischen den Fronten. Die Unterrichtsausfälle besonders in den naturwissenschaftlichen Fächern in den vergangenen C-Jahren zeigen nun ihre Folgen. Wenn in der 9.Klasse an einem Gymnasium die Schüler noch nicht einmal wissen, wie man in einem einfachen Stromkreis mit einem Schalter, einem Widerstand und einer Glühbirne ( Reihenschaltung ) die Spannung und den Strom misst ...
    Da geht es sicherlich nicht um Mentoren oder Bestnoten, da geht es einfach um die kleinen Dinge.

    Wenn wie über den Elternrat zu erfahren von der Schule finanzielle Mittel bereit gestellt werden sollen, muss das so aufgebaut / aufgezogen werden, dass dieses "Projekt" auch noch für nachfolgende Generationen unterrichtsbegleitend genutzt werden kann.

    Guten Tag,


    Danke llutz.

    Leider so muss ich sagen, fehlt dazu auch der entsprechende vollständige Schaltplan.
    Also habe ich mir nun diesen Code herunter geladen hatte und diesen für ein Arduino Uno3 mit der Arduino IDE übersetzen lasse wollte, stoße ich schon an die Grenzen der verfügbaren Bibliotheken.
    Nachdem ich Stück für Stück jede Bibliothek für den ADS1015 ADC Installiert, probiert und wieder deinstalliert habe, scheitert das Projekt obwohl der Code laut dieser Webseite erst im Mai dieses Jahres veröffentlicht wurde rein an der Programmumsetzung. Diese Adafruit_ADS1015 Bibliothek die dort verwendet wird, gibt es so nicht. Der Vorgang scheitert immer wieder schon an dem Punkt, dass der Import aus Zeile 5 des Programmcode zum Abbruch führt.

    Es bringt mich so kein Stück weiter. Die Grundidee zur Umsetzung der Widerstandsmessung ist vom theoretischen Teil soweit ok, mehr aber auch nicht.

    Guten Abend,

    I²C ist zwar im Prinzip eine einfache Lösung. Nur musst du so wie es Dennis89 schon aufgezeigt hat, unter der Maßgabe das die Hintergrundbeleuchtung nur mit 5,0 V funktioniert dieses Modul mit 5 Volt betreiben und auch einen, bzw. den schon genannten, und von ihm auch aufgezeigten LevelShifter verwenden. Nur bei LCD Displays die vollständig 3,3 V Kompatibel sind, kannst du auf besagten LS verzichten.
    Noch etwas zum PICO. Die Vc 5,0 V für das LCD kannst du nicht unbedingt aus oder über den USB eingespeist nach außen durchschleusen, denn je nach Displaygröße verbraucht ein solches Display mit Hintergrundbeleuchtung bis zu 220 mA !!! Das schafft das PICO standalone nicht, wenn es über den USB versorgt wird !!
    Hier müsstest du jetzt wieder abhängig vom Display das PICO über den PIN40 mit 5,0 V speisen.

    Guten Tag,


    ich bin letzte Woche von einer Schülergemeinschaft angesprochen worden. Es geht um das leidliche Thema "Widerstände" im Physikunterricht.

    Im Prinzip geht es um die Erweiterung eines Ohm-Meters.
    Momentan bin ich auf der Suche nach einigen Umsetzungsideen.
    Dieses "High-Tech" Ohm-Meter soll einen Widerstand messen können, diesen ermittelten Wert auf einem Display anzeigen können, und zudem die Widerstandsfarbcodierung mittels RGB LEDs ( oder ähnlichem ) anzeigen.

    Jetzt habe ich mich schon einmal zumindest in der theoretischen Betrachtung mit den Widerstands-E-Reihen beschäftigt, und bin zum Ergebnis gekommen, dass es je nach Meßwert verschiedene Lösungen bezüglich des Farb-Codes auf Grund der Toleranzklassen geben könnte.

    Wie würdet ihr zum ersten einen Widerstand mit einem Controller-Board gleich welcher Ausführung jetzt umsetzen ? Ob es jetzt ein großes PI, ein Pi Pico oder ein Pi Pico W oder gar eine ESP Board wird ist bis jetzt noch vollkommen ungeklärt, und wäre mir auch im Prinzip egal.
    Welche Art von Display würdet ihr verwenden wollen, da erst einmal nur der Widerstandswert angezeigt werden soll ? Ein Mini TFT Color-Display wäre ggf auch denkbar.


    Würdet ihr einen Vorwahlschalter für die Toleranzklasse verwenden, um anhand des Meßwertes den Farbcode richtig darzustellen, oder würdet ihr hier lieber anhand der gespeicherten E-Reihen und den möglichen Toleranzfeldern mehrere dieser Farbcodes als Array Wert mathematisch bestimmen, um diese dann falls es mehrere Möglichkeiten gibt, diese dann als Abfolge mit Verweilzeit, oder dann via Taster zum Umschalten darstellen ?


    Wie steuert man am besten, einfachsten und vor allem mit so wenig wie möglich GPIO-Pins zu belegen eine solche Anzeige an ? Immerhin werden fünf dieser RGB Anzeigen / LEDs benötigt.


    Wie bestimmt man am besten die Helligkeitswerte zur Farbmischung ( g.g.f. für PWM ) für diese RGB Anzeigeeinheiten ?


    Zum Schluß noch die Frage der Stromversorgung. Akku- oder Batteriebetrieb ? Auto-Power-Off oder einen richtigen Hauptschalter verwenden ? Welche Einspeisespannung ?


    Welche Programmiersprache würdet ihr nutzen, wenn man wie ich bisher nur oder hauptsächlich in µPython programmiert habt ?


    Fragen über Fragen ;) Ich bin jetzt erst einmal in der Planungsphase, und somit für jede Idee, Hinweis und Vorschlag dankbar.


    :danke_ATDE: