Forum: Mikrocontroller und Digitale Elektronik ATTiny85 soll sich selber abschalten


von Frischling (Gast)


Angehängte Dateien:

Lesenswert?

1
const byte PWR_PIN=3;
2
const byte LED_PIN=0;
3
4
5
void setup()
6
{
7
  pinMode(PWR_PIN, OUTPUT);
8
  pinMode(LED_PIN, OUTPUT);
9
  digitalWrite(PWR_PIN, HIGH);
10
}
11
12
void loop() {
13
  for (int i=0; i<100; i++)
14
  {
15
    digitalWrite(LED_PIN, HIGH);
16
    delay(100);
17
    digitalWrite(LED_PIN, LOW);
18
    delay(200);
19
  }
20
  digitalWrite(PWR_PIN, LOW);
21
}

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.

von Frischling (Gast)


Angehängte Dateien:

Lesenswert?

Sorry: Schaltplan war nicht richtig gezeichnet: Natürlich liegt der 
Transistor auf PIN2, ist er auch auf dem Breadboard.

hier der tatsächliche Plan

von Jim M. (turboj)


Lesenswert?

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.

: Bearbeitet durch User
von Johannes (Gast)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von Pascal S. (Firma: Hobby-Elektroniker) (pascal6122)


Lesenswert?

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

von Pascal S. (Firma: Hobby-Elektroniker) (pascal6122)


Lesenswert?

und den Taster entsprechend auch wieder zwischen Kollektor und Emitter 
des Transistors

von Gerald B. (gerald_b)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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)

von Frischling (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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 :)

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Zum Stromsparen kannst Du noch nach 'PRR' im Datenblatt suchen - damit 
kannst Du unbenutzte Hardware abschalten (ADC, Timer, noch ein/zwei 
Dinge).

MfG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.