Hallo,
Für einen kleinen Sender mit einem RFM12B-Modul nutze ich einen ATtiny84.
Nun möchte ich an die 3 freien Pins (PA2..4) noch 3 DIP-Schalter anschließen, um bis zu 8 dieser Sender unterscheiden zu können, ohne die Firmware ändern zu müssen (ist bisher fest codiert).
Frage: Sollte ich die internen Pull-Ups verwenden oder lieber externe Widerstände verwenden? Die Frage hat den Hintergrund nach möglichst geringen Stromverbrauch, da der Sender batteriebetrieben ist. Welchen Wert haben eigentlich die internen Pull-Ups und welchen Wert sollte ich für die externen wählen?
Wichtig ist vielleicht noch, dass ich den ATtiny zwischen den Messungen immer für 3 Minuten in den Sleep-Modus schicke.
Hat hier jemand einen Tipp für mich?
MfG paulinchen
paulinchen:
Nun möchte ich an die 3 freien Pins (PA2..4) noch 3 DIP-Schalter anschließen, um bis zu 8 dieser Sender unterscheiden zu können, ohne die Firmware ändern zu müssen (ist bisher fest codiert).
Frage: Sollte ich die internen Pull-Ups verwenden oder lieber externe Widerstände verwenden? Die Frage hat den Hintergrund nach möglichst geringen Stromverbrauch, da der Sender batteriebetrieben ist. Welchen Wert haben eigentlich die internen Pull-Ups und welchen Wert sollte ich für die externen wählen?
Für einen möglichst geringen Stromverbrauch bei batteriebetriebenen Geräten fragst Du die DIP-Schalter nicht ständig ab, sondern nur beim Programmstart einmal und merkst Dir die Stellung in einer Variablen.
Also im setup()
interne PullUps aktivieren
DIP-Schalterstellung abfragen und in Variable speichern
interne PullUps wieder abschalten
Und im Programm verwendet man immer nur die einmal zu Beginn ausgelesene DIP-Schalterstellung aus der Variablen.
Dann muss man halt nach dem Ändern der DIP-Schalterstellung einmal Reset machen, damit der Sketch die neue DIP-Schalterstellung ausliest.