Posts by Jonny98731

    Hi,

    ich möchte beim Einschalten meines RPis immer einen "1" Wert haben.

    Deshalb möchte ich gerne einen Pullup-Widerstand einbauen, der dann im Programm mithilfe eines GPIO Pins auf 0 gezogen werden kann.


    Dazu habe ich mir gedacht, ich verwende einen Transistor den ich noch rumliegen habe: "2n2222a331". Das ist ein NPN Transistor.

    Meine Elektronikkenntnisse aus der Schule sind sehr verschwommen.


    Mein Gedanke war, dass der Transistor auf GND durchschaltet, sodass der Strom nicht mehr über die LED läuft. Hier ein Schema:


    Ich mach es kurz: Das funktioniert super. Zumindest für ein paar Sekunden. Dann wird der Transistor sehr heiß bzw. raucht in weiterer Folge einfach ab.

    Ich kann mir theoretisch auch denken warum: Ich schließe den Kollektor und Emitter kurz. Dadurch habe ich eine sehr hohe Leistung am Transistor die er einfach nicht aushält. Wenn ich beim roten Kabel einen Widerstand zwischen packe funktioniert das ganze aber leider nicht mehr. Welchen Widerstand empfehlt ihr mir darüber hinaus für die Basis? Ich werde aus diesen Elektronik-Datenblättern nicht wirklich schlau.


    Gibt es dafür eine einfache, kompakte Lösung? Am Ende will ich übrigens nicht eine LED steuern sondern den OE Eingang eines Schieberegisters, damit beim Einschalten des RPis das Schieberegister nicht verrückt spielt.

    Hallo liebe Forenmitglieder,


    Sorry für den Titel, ich weiß nicht genau wie ich mein Problem in einem Satz sonst zusammenfassen soll.


    Kurz zum Projekt: Ich habe 16 Schalter mit denen ich über 2 Schieberegister 16 LED bei Tastendruck individuell ein und ausschalten möchte.

    Bisher hab ich zum Ausprobieren nur 3 Schalter angeschlossen.


    Ich habe eine Menge Funktionen und Schleifen, die jeweils auf eine bestimmte Variable angewandt werden.

    Z.B. muss ich folgende Funktion (Taster1) für alle anderen Taster umkopieren und die Indizes auf 2,3,4,5 usw. ändern, was insgesamt bei 16 Tastern sehr lang und unübersichtlich wird.


    Ein anderes gutes Beispiel ist dieses hier:

    Die if - Bedingung wird hier durch die ganzen "or"'s sehr sehr lang. Auch alle alle ti und tasterix werden eine lange Liste abgeben.


    Nachfolgend der gesamte bisherige Code. Dort lässt sich an einigen Stellen mein Problem finden.

    Der Teil mit den Schieberegistern usw. ist jetzt nicht weiter für meine Fragestellung wichtig und darf ignoriert werden.

    Mich interessiert nur, ob es einen Weg gibt, mit einer Art Schleife alle (obiges Beispiel) 16 t-Variablen mithilfe eines arrays oder so in einer einzelnen Schleife durchzählen zu lassen und auszuwerten.


    Wenn die Aufgabenstellung und das Problem unklar ist, gerne fragen, womöglich hab ichs ein bisschen verkorkst formuliert...:conf:

    Ich hoffe jemand hat eine Idee.:danke_ATDE:

    Hi liebes Forum!:shy:


    Ich möchte mit Schieberegistern (SN74HC595N) die Ausgänge meines PIs erweitern. Soweit so gut. Das Programm habe ich geschrieben und ich denke ich habe die Funktionsweise des SN74HC595N verstanden.

    Nun habe ich aber das Problem, dass wenn ich den RPi3 anstecke, die LEDs sofort zufällig zu leuchten beginnen, ohne dass überhaupt schon irgendetwas gestartet ist. Das komische dabei ist, dass es sehr sporadisch ist, welche der 8 angeschlossenen LEDs leuchten. Manchmal alle, manchmal 3 oder vier, manchmal gar keine. Die Anzahl und Position ist also komplett zufällig...


    Das Schieberegister selbst ist nicht defekt, ich habe mehrere zuhause und daran liegt es leider nicht...:denker:


    Ich als Laie schließe daraus, dass die GPIOs, an die ich das Schieberegister angeschlossen habe beim Starten Strom abgeben bzw beim starten nicht fix auf 1 oder 0 definiert sind??

    Ich finde nur komisch, dass ich auf anderen Seiten, auf denen der Anschluss eines Schieberegisters beschrieben ist, dieses Problem nie angesprochen wurde. Habe nur ich das, oder habt ihr damit auch schon mal Erfahrung gemacht?:daumendreh2:


    Ich dachte zuerst es liegt daran, dass manche GPIOs spezielle Funktionen haben und beim Booten Signale abgeben (I2C oder so??) - kann mir das jemand bestätigen? Naja, dann habe ich es mit Pins belegt, die keine Funktion haben und das Problem besteht weiterhin...


    Mein Ziel ist es, dass beim einstecken einfach alles aus bleibt.


    Ich habe hier: https://wiki.ubuntuusers.de/rc.local/ gesehen, dass man beim Booten Programme, Scripte, Befehle etc. automatisch starten kann. Ist es aus eurer Sicht möglich, da ein Python Script öffen zu lassen, welches [0,0,0,0,0,0,0,0] in den Ausgang des Registers schreibt? Denn wenn das Betriebssystem einmal gestartet ist, dann kann ich im jetzigen Zustand ganz normal manuell das Schieberegister steuern. Und vor allem: Wann wird das Programm dann genau ausgeführt? wirklich ganz am Anfang? Außerdem: Wie sauber wäre so eine Lösung?


    Noch eine Frage abseits des Schieberegisters: Welche GPIOs lassen sich für EINGABEN (von Tastern über Pullup-Widerstände) effektiv nutzen? Ich habe gelesen, dass man manche Pins am besten gleich links liegen lässt. Ich brauche so ca 20 PINs für Eingaben und eben die 3 für das Schieberegister... Geht sich das aus un wie viel Reserve habe ich da noch?

    Müssen dazu manche PINs umkonfiguriert werden?


    GLG und danke im Vorhinein!:gk1:


    Aja: Meine Schaltung Schaut genau so aus, nur mit den PINs 5,6,26 - wie gesag, mit 4,5,6 hab ichs auch bereits probiert ;)

    Betriebssystem Raspian GNU/Linux 9

    Linux Kernel 4.19.66-v7+

    Release Datum 2017-11-29


    [Blocked Image: https://www.sunfounder.com/med…ing_LEDs_by_74HC595/1.png]

    Code Programm: (eigenltich unerheblich)

    Hallo liebe Leute!:helpnew: (RPi3b+)


    Ich will ein Projekt verwirklichen, für das ich recht viele GPIO Pins brauche (für Schalter und für Ausgänge, die zu Relais führen).


    Vielleicht kurz als Hintergrundinformation: Ich möchte mit dem Pi 15 verschiedene Lampen und LEDs steuern, die unterschiedliche Spannungsquellen benötigen - daher die Relais. Für jede Lampe brauche ich einen Taster und für zusätzliche Funktionen brauche ich einen weiteren Taster und einen Schalter.


    Das heißt in Summe: 15 GPIOs für Taster + 15 GPIOS für Relais + 2 zusätzl. GPIOS = 32 GPIOs in Summe benötigt...

    Da die GPIO Pins knapp sind, könnte ich auf zwei Lampen verzichten und somit würden 4 GPIO frei werden. - Diese zwei Lampen sind schon absolute Schmerzgrenze. Mir wäre lieber, nicht darauf zu verzichten!!!


    Aber ich brauche immer noch 28 Pins.

    Verfügbar sind 28 - vorausgesetzt man rechnet ID_SD und ID_SC (Pin 27 und 28) mit ein.


    Das führt mich zur eigentlichen Frage: Kann man diese Pins ganz normal als GPIO Pins verwenden? Ich habe bereits ein wenig recherchiert und in Foren gestöbert aber bin nicht wirklich überzeugt worden:



    LINK1: https://raspberrypi.stackexcha…pio-1-for-general-purpose

    Hier wird behauptet, dass es funktioniert und dass es anscheinend auch überprüft wurde (siehe Kommentare)


    • Pins 27/28 are configured as Input after boot. I have seen instructions for setting them as I²C (but have not tested this). They are certainly NOT configured as I²C in normal use, so I see no evidence they cannot be used as normal. – Milliways Sep 12 '16 at 11:48


    LINK2: https://www.hifiberry.com/buil…sage-of-hifiberry-boards/

    Hier allerdings steht:

    • Pin 27 and 28 are always reserved for an ID EEPROM on the Raspberry Pi. Independently which card you use, these pins are always reservedand should never be used to connect external components.


    Was meint ihr? Kann ich es machen bzw. worauf muss ich achten und welche Einschränkungen bzw. auch Gefahren bestehen?


    Abschließend noch ein paar andere Fragen:

    • Kann ich die restlichen GPIO Pins (außer Pin 27 und 28) [auch] ohne Bedenken verwenden?
    • Was, wenn 27 und 28 nicht verwendbar sind? Wie lassen sich Pins (besonders für einen Einsteiger) besonders leicht erweitern?

    Klar ist natürlich, dass ich die Variante präferiere, die am einfachsten ist. D.h. 27 und 28 zu verwenden.


    Danke schon mal im Vorhinein!:danke_ATDE::daumendreh2: