Hallo zusammen,
ich versuche mich gerade das erst mal an einem ATTiny. Ich will nicht
weg von den ganzen Arduino zu entwickeln. Ja, noch nutze ich die Arduino
SW. Ich sehe die Ironie.
Ich dachte mir in meiner Naivität, ein ATtiny kann sich selber
abschalten.
Einfach obigen Schaltplan auf einen Breadbord gesteckt und den Code auf
den ATtiny geflasht.
Gespeist wird das con einer Knopfzelle mit 3V.
Die LED blinkt, wenn man den Schalter gedrückt hält, logisch der ATtiny
ist an VCC.
Ich schalte aber den Pin, der den Transistor schaltet ja als erstes auf
HIGH, also dachte ich mir, der ATttiny arbeitet weiter, bis er selber
den PIN auf LOW legt.
Leider geht das aber so nicht. Lasse ich den Schalter los, geht der
ATtiny aus.
Gemessen habe ich auch schon: Am Emitter des Transistors liegen 2,7V an,
wenn er vom ATtiny geschaltet ist.
Mit dem R2 Werten habe ich auch schon gespielt, geht aber immer noch
nicht.
Was mache ich da falsch.
Gruß Alex.
PS: Ich lege schon mal Teer un Federn bereit, wenn meine Idee zu dumm
ist.
Müsste da nicht der Pegel an Pin2 um U_BE höher als der auf Pin 8 sein?
Sieht mir nicht funktionsfähig aus, der kann gar nicht höher als VCC
liegen.
Grundlagen der Transistorschaltung sollte man sich selbst erarbeiten,
das gibt ein Forum nur schlecht her.
Frischling schrieb:> const byte PWR_PIN=3;> const byte LED_PIN=0;
Da passt aber was nicht. Passt zumindest nicht mit dem Plan zusammen.
Ausserdem solltest du dennoch den Reset-Pin (pin1) anschließen.
Jim M. schrieb:> Müsste da nicht der Pegel an Pin2 um U_BE höher als der auf Pin 8 sein?
Klar, deshal geht das mit einem NPN alleine so auch nicht. Man braucht
einen PNP als Schalter und einen NPN zum Ansteuern. Oder entsprechende
MOSFETs.
Leg den Emitter und Kollektor, die im Moment in die + Leitung gelegt
sind in die Minus-Leitung von Masse/GND nach Pin 4, also der Anschluss
mit Pfeil an Minus und den anderen der an +Vcc ist an Pin 4
Johannes schrieb:> Frischling schrieb:>> const byte PWR_PIN=3;>> const byte LED_PIN=0;>> Da passt aber was nicht. Passt zumindest nicht mit dem Plan zusammen.
die ATtiny 13 und 85 besitzen andere Port-Nummern als Pin-Nummern mit
dem aktuell in der IDE unterstützten Micro-Core File
Johannes schrieb:> Ausserdem solltest du dennoch den Reset-Pin (pin1) anschließen.
es gibt einen 50k internen Pullup. Nicht notwendig.
Wenn man sicher gehen will 10k an +Vcc
Mach das mit 2 Transen. Den Schalter lässt du so und steuerst dessen
Basis mit einem 2., der mit dem Kollektor und einem Kollektorwiderstand
die Basis des 1. aufsteuert. Emitter vom 2. an Masse und die Basis dann
per Vorwiderstand vom Ausgangspin ansteuern. Mit dem Konstrukt mußt du
mal ein wenig rumspielen. Ist schon ca. 2 Jahre her, das ich das mal
gemacht habe. Der Arduino mit seinem Bootloader "zaubert" da ein wenig
rum, weil die Ausgänge etwas rumzappeln. Kann sein, das ich da einen
Vorwiderstand von der Basis von T2 gegen Plus geschaltet habe und mit
low am Ausgang den Pegel runterziehe, damit T2 sperrt und T1 dann
ebenfalls.
Ich habe da noch ein bissel mehr getrickst. ich habe ein LCD Display
verbaut, dessen Hintergrundbeleuchtung nur eingeschaltet wird, wenn dich
den Einschaltknopf länger drücke. Kurz ohne Beleuchtung. Dazu habe ich 2
Analogeingänge genommen und per Spannungsteiler vor und nach dem T1
gemessen. T1 bekam an den Kollektor zusätzlich noch empirisch ermittelte
4,7 Ohm, da sonst die Spannungsdifferenz zwischen Taster gedrückt und
Selbsthaltung zu gering war.
Am IC ist eine gute Pufferung der Betriebsspannung mit 100n Kerko und
47µ Elko umso wichtiger, da durch den Widerstand natürlich der
Innenwierstand der Spanungsquelle massiv ansteigt.
Hmmm....
Frischling schrieb:> Was mache ich da falsch.
Der Ansatz ist falsch. (vielleicht)
Frischling schrieb:> Ich lege schon mal Teer un Federn bereit, wenn meine Idee zu dumm> ist.
Ich kann dir eine Alternative bieten... (vielleicht)
Schau mal ins Datenblatt, wieviel Strom der Tiny im Tiefschlaf benötigt.
Und dann rechne, wie lange die Knopfzelle hält...
Höchst vermutlich langt dir das schon. (vielleicht)
Hallo zusammen,
dickes Dankeschön für die Denkanstöße.
Ich habe das jetzt so wie im Bild geschaltet und es funktioniert.
Der ATtiny schaltet sich nach den 100 Blinkern selber ab.
Da wäre ich alleine nie draufgekommen.
Die Widerstände sind bisher nicht berechnet, sondern nach try-and-error.
Das Rechnen werde ich mal morgen versuchen.
Gute Nacht allerseits.
Frischling schrieb:> ch habe das jetzt so wie im Bild geschaltet und es funktioniert.
Die Brown-Out-Detection im AVR unbedingt aktivieren! Der läuft sonst
ammok, sobald die Spannung abfällt und kann seltsame Sachen machen ...
Hatte das auch schon und das Resultat war, er hat dann irgendeinen Code
ausgeführt, der den Port-Pin wieder gesetzt hat und dann hatte er sich
niemals ausgeschaltet. Ganz sonderbar^^ BOD macht einen sauberen Reset
sobald die Betriebsspannung unter einen bestimmten Pegel fällt :)
Hi
Zum Stromsparen kannst Du noch nach 'PRR' im Datenblatt suchen - damit
kannst Du unbenutzte Hardware abschalten (ADC, Timer, noch ein/zwei
Dinge).
MfG