Ich bastle die Tage an der Elektronik für meinen Laminator (AKA Toner-Transfer-Quetsche) und verwende dabei Pin 13 (der mit der Onboard-LED) als Eingang. Leider funktioniert das nicht so, wie ich mir das gedacht habe. Sobald Pin 13 mit
pinMode(switchPin, INPUT_PULLUP);
initialisiert wird, leuchtet die LED ziemlich schwach und digitalRead() ergibt 0, was sich nicht ändert – egal, in welcher Stellung sich der Schalter befindet (wie auch ...).
Ist es generell eine blöde Idee, Pin 13 als digitalen Eingang zu verwenden? Kann ich das Verhalten so ändern, dass es wie gewünscht ist, ohne die LED vom Board zu fräsen?
Hmmm, eigentlich sollte es keine blöde Idee sein, Pin 13 als digitalen Eingang zu nutzen. Warum auch? Habs gerade am UNO R3 ausprobiert... und es klappt, egal ob mit oder ohne Pullup. Da muss noch was anderes faul sein. War bei mir gerade zuerst auch, weil ich noch eine blaue LED mit 680 Ohm dran hängen hatte. Nachdem ich die LED abgezogen hatte lief alles optimal.
Bei einem UNO ist Pin13 als Eingang recht hochohmig. (Da ist ein OP zwischen)
Bei den einfacheren Boards, z.B. Pro Mini, tuts das nicht so einfach, also ablöten.
ich denke ich muß hier eingreifen. Da ist kein OPV "dazwischen". Der OPV für die LED hängt nur parallel dran als Spannungsfolger. Ist im Schaltplan zum Uno nur bekloppt dargestellt. Im Schaltplan vom Mega ist das besser ersichtlich. Wenn nun der Pullup aktiv ist, dann muß die LED leuchten. Ist normal wenn High am Pin anliegt wegen dem OPV.
Der OPV mit LED hat demnach nichts mit dem Problem zu tun. Außer die Chinesen haben Mist gemacht. Denke ich aber weniger. Hast du Hardware SPI in Benutzung? Pin 13 ist nämlich der Clock vom SPI.
Wenn deine LED 13 nur halb leuchtet mit aktivierten Pullup und sonst wirklich nichts dran hängt, dann ist was anderes faul. Dann hilft es aber nicht die LED zu trennen.
Doc_Arduino:
Dann hilft es aber nicht die LED zu trennen.
Was auch immer der Grund für das seltsame Verhalten ist, ich löse das Problem, indem ich einen anderen Pin benutze (ich habe wie üblich noch einen Haufen unbenutzte Pins).
Da ist kein OPV "dazwischen". Der OPV für die LED hängt nur parallel dran als Spannungsfolger
Doch!
Zwischen Pin 13 und der LED hängt der OP.
Und das ist beim Nano und Mini eben nicht der Fall.
Darum ist die Angelegenheit beim UNO erheblich hochohmiger.
Ist eigentlich auch kein Problem, selbst wenn man ihn als Eingang nutzen will. Das Eingangssignal muss nur genügend niederohmig sein, da es die LED mit treiben muss. So ca 4mA müssen da schon kommen...
Zwischen Pin 13 und der LED hängt der OP.
Und das ist beim Nano und Mini eben nicht der Fall.
Darum ist die Angelegenheit beim UNO erheblich hochohmiger.
Ist eigentlich auch kein Problem, selbst wenn man ihn als Eingang nutzen will. Das Eingangssignal muss nur genügend niederohmig sein, da es die LED mit treiben muss. So ca 4mA müssen da schon kommen...
Der Operationsverstärker ist beim UNO und MEGA2560 zwischen Pin und LED und nicht wie Dein Beitrag interpretierbar ist zwischen Pin der Arduino und Füßchen des Atmega328.
Beim Arduino 2009 und vielen anderen Modellen ist am Pin 13 eine LED und ein Widerstand direkt angeschlossen und diese gibt bei unbeschaltenen oder hochohmig beschalteten Pin 13 einen bestimmten Pegel vor. Dadurch kann ein Pin 13 als Eingang unter Umständen nicht funktionieren.
Grüße Uwe
uwefed:
Der Operationsverstärker ist beim UNO und MEGA2560 zwischen Pin und LED und nicht wie Dein Beitrag interpretierbar ist zwischen Pin der Arduino und Füßchen des Atmega328.
Beim Arduino 2009 und vielen anderen Modellen ist am Pin 13 eine LED und ein Widerstand direkt angeschlossen und diese gibt bei unbeschaltenen oder hochohmig beschalteten Pin 13 einen bestimmten Pegel vor. Dadurch kann ein Pin 13 als Eingang unter Umständen nicht funktionieren.
Ungefähr das dachte ich, als ich mir das im Schaltplan angesehen habe. „Dazwischen“ ist etwas Anderes.
Tut mir leid, dass/wenn ich mich ungenau ausgedrückt habe.
Ich meinte zwischen LED und Pin!
Das koppelt die LED ab, bzw. die LED belastet nicht mehr den Eingang des AVR
wenn combie sich nur unglücklich ausgedrückt bin ich vollkommen bei ihm. Laut Schaltplan vom Uno und Mega ist es dem µC "Pin 13" vollkommen egal ob er Eingang oder Ausgang ist. Die LED leuchtet immer bei High Pegel und ist aus bei Low Pegel. Welcher Pegel wie herum anliegt spielt keine Rolle. Eben weil sie durch den OPV als Spannungsfolger abgekoppelt ist. Nun brachte Uwe Licht ins Dunkel. Wenn billige Nachbauten sich den OPV sparen ist das natürlich ärgerlich.
Wenn das dadurch mit dem internen Pullup nicht sauber funktioniert, kannste den Pin 13 Eingang immer noch normal verwenden. Das muß funktionieren. Die LED mit ihren Vorwiderstand hängt damit als normaler Verbraucher dran und ist damit auch gleichzeitig dein externer Pulldown.
wenn ich jetzt frech wäre, würde ich sagen wollen, guckst in den Schaltplan vom Uno/Mega, suchst nach der Bezeichnung und damit nach dem Datenblatt, dann haste die Maße ... würde ich aber nie sagen, nur laut denken.
Platzproblem ist natürlich ein Grund das wegzulassen.
Beim UNO und Mega2560 wird eine Hälfte des Doppeloperationsverstärkers, der auch die Umschaltng von VUSB zu VIN regelt verwendet. Der ist ca 5x7mm groß, Beinchen mitgerechnet
Wenn man einen einzel OpAmp in SMD verwendet dann gibt es Modelle in SMD mit 5 Beinchen die geschätzt 2-5mm^2 Platinenfläche brauchen.
Also meiner Meinung ist das kein Flächenproblem sondern ein Kostenproblem.
ElEspanol:
Ist denn bei den kleinen Original Arduino, die ja teuer genug sind einen fairen Preis haben, ein OP drauf?
Schaltpläne findet man hier auf der Seite....
Musste halt im Einzelfall prüfen.
Und nein, die kleinen haben den OPV nicht.
Die großen, wie Mega, UNO usw ja.
In dem Punkt spielen die Chinesen mit und kopieren die original Pläne weitestgehend.
Ist also eher keine Frage des Preises.
Zumindest jetzt nicht mehr.
Vielleicht bei der Entwicklung der Pläne.
Es ist auch eine Frage des Stromverbrauchs.
Für ein Batteriebetriebes Ding, wird man wohl gerne auf den OPV verzichten wollen.
Auch ist Pin13 oft dem SPI vorbehalten.
Ich halte ihn dafür, und fürs Debugblinken frei.
Die INPUT Rolle darf er bei mir eher nicht spielen.
combie:
Auch ist Pin13 oft dem SPI vorbehalten.
Ich halte ihn dafür, und fürs Debugblinken frei.
Die INPUT Rolle darf er bei mir eher nicht spielen.
Das sind ja mal interessante Aspekte. Ich werde Pin 13 dann wohl so behandeln, wie schon ein paar andere. Ich gucke zum Beispiel, D2 und D3 möglichst lange frei zu halten. damit externe Interrupts möglich bleiben. Man weiß ja nie ...