AVR interner Pull-Up Widerstand

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi Leute,

    da ich im Moment dabei bin ein Projekt von mir zu realisieren, das auf den Projekten von Nathan Chantrell bzw. meigrafd beruht, bin ich jetzt auf etwas gestoßen was ich nicht ganz nachvollziehen kann. Ich versuche gerade so einen Reed-Switch über den ATTiny auszulesen. Im Datenblatt des ATTiny84 steht, dass einige Pins jeweils mit Pull-Up Widerständen bestückt sind. Diese kann man aktivieren, indem man den entsprechenden Pin erstmal mit pinMode auf INPUT setzt und dann per digitalWrite auf HIGH (oder sich das spart und gleich bei pinMode INPUT_PULLUP angibt).

    Soweit ich das Prinzip des Pull-Ups verstanden habe, ist es ja so, dass falls der Button (in dem Fall der Reed-Switch) "offen" ist, zieht der Pull-Up Widerstand den Pin auf HIGH. Drücke ich den Button, bzw. sind die beiden Stücke des Switches beisammen, habe ich einen Kontakt und der Pin liegt auf GND, also man liest LOW. Sprich, ist der Switch geschlossen, gibts ein LOW, wird der Switch geöffnet gibts ein HIGH.

    Soweit funktioniert das bei mir ja auch. Meine Frage ist allerdings, wieso wird in den Sketches von Nathan Chantrell, meigrafd und ps915 genau vom Gegenteil ausgegangen? :huh:

    Code
    if (switchState == LOW) {              // Door/window is open
         tinytx.switchState = 1;            // 1 indicates open
     }
     else {                                 // Door/window is closed
         tinytx.switchState = 0;            // 0 indicates closed
     }

    Hier steht bei LOW -> Window ist open, aber eigentlich müsste der Pull-Up Widerstand bei geöffnetem Fenster, also sprich kein Kontakt, den Pin auf HIGH ziehen, oder nicht? :helpnew:

    Was übersehe ich hier?

    :danke_ATDE:

    Nur durch Zeit vermag die Frucht zu reifen.......oder zu verfaulen!

  • Hi,

    welche meinst du? Bei den Reed-Switches die ich habe ist es so, dass wenn die beiden Teile zusammen sind, ist der Kontakt geschlossen, entferne ich den Magneten ist die Verbindung getrennt (hab das auch per LED getestet).

    Ich würde halt gerne verstehen, wieso das bei den anderen anders ist? Haben die andere Reed-Switches? :s

    Nur durch Zeit vermag die Frucht zu reifen.......oder zu verfaulen!

  • Also für mich liest sich der letzte Satz so wie ich es verstanden und auch umgesetzt habe. Im "betätigten Fall", interpretiere ich als Button gedrückt, also Verbindung hergestellt, bekommt man ein FALSE, das ich mal als LOW auffasse. Ist genau das was ich ja auch annehme.

    Meine Frage ist aber wieso das bei den anderen umgekehrt ist? :denker:

    Nur durch Zeit vermag die Frucht zu reifen.......oder zu verfaulen!

  • Hi,
    also ich hab' jetzt nur mal bei Nathan Chantrell reingeschaut:

    Code
    ...
    // TinyTX - An ATtiny84 and RFM12B Wireless Sensor Node
    // By Nathan Chantrell. For hardware design see http://nathan.chantrell.net/tinytx
    //
    // Detect a normally closed reed switch opening and closing with pin change interrupt to wake from sleep.
    //
    // Licenced under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) licence:
    ...


    der verwendet lt. Kommentar eben einen Öffner ... sprich der ist imho mit Magnet in der Nähe OPEN (=HIGH) und der Kontakt schliesst sich, wenn der Magnet entfernt wird (=LOW, normally closed).
    Das würde doch passen ...

    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!