Forum: Mikrocontroller und Digitale Elektronik mit AVR (3.7V) einen Step up (5V) bei bedarf zuschalten - wie?


von Daniel S. (schuballaa)


Lesenswert?

Hallo liebe Community,
ich bin gerade dabei einen Geocache zu bauen:

https://www.facebook.com/video.php?v=952641201428085&l=1752057918892815635

Das Video erklärt besser nachvollziebar mein Anliegen...


Da das ding 10 Meter in der höhe (Fake-Vogelhaus) möglichst wartungsfrei 
laufen soll, habe ich mir den Solarbetrieb überlegt.

Beim Praxis-test erwies sich aber folgende Schaltung als zu viel für 
Solar/Akku:

Solarzelle (davon nur eine)

http://www.ebay.de/itm/3-Stuck-5V-100mA-0-5W-55x78mm-Solarmodul-Solarzelle-Polykristallin-vergossen-/261071601800?pt=Bauteile&hash=item3cc9148088

  --

Laderegler

http://de.aliexpress.com/item/Free-Shipping-New-1pc-Universal-5V-Mini-USB-1A-Lithium-Battery-Charging-Board-Charger-Module/989322447.html

   --

Bis hierhin sehr zufrieden auch bei indirekter Sonne läd er auf 3.7 V 
trotz attiny45 im LED Blinkbetrieb

   --

li ion 3.7 (ca. 1000mah) vom Handy

   --

Step up auf 5 Volt

http://www.ebay.de/itm/171365951743?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
   --

atmega328p Ardoino auf 8 MHZ intern gestellt
und übernimmt (Steuerung eines kleinen Motors und Servo)

Leider kann ich den Servo nicht direkt mit der Akku betreiben da das 
nervöses zucken des servos bedeuten würde - schade...

Da der o.g. Aufbau zu ineffizient ist, habe ich mich an mein nach 2 
Jahre immer noch funktionierendes Reaktiv licht erinnert und will jetzt 
folgendes machen:

Solarzelle (5V)

   --

Ladeelektronik

   --

Attiny45 (schläft bis laser auf lichtsensor fällt)


=======================

Wenn licht drauffällt (nur wenn n cacher es mit dem Laser beleuchtet) 
soll der Attiny45

step up

  --

atmega328 + anhang

betreiben.



Jetzt wäre noch zu überlegen, ob ich den Step up über die komplette 
Schaltung laufen lasse (ab atmega328) oder ob ich den Step up nur den 
Servo zuführe da man ja auch mit 3.7 volt den servo sauber steuern kann.


Aber nun zur eigentlichen Problembeschreibung:

Wie schalte ich den Stepup richtig ein? Remote hat er nicht.

- Relais fällt raus da ich kein 3 Volt Relais nur 5 Volt relaus habe und 
die bei einem test nicht oder nur flackernd durchgeschaltet haben (ist 
mir zu waage)

- 1 A Transistor sollte eig reichen, die step up Betriebsanzeige 
funktioniert auch, aber komischerweise dreht der servo in die komplett 
umgekehrte richtung? Das Programm im 328 scheint aber richtig zu laufen 
(es werdet den laserpuls aus)

- mosfet - das selbe wie beim Transistor (inf510) habe erst gestern 
gesehen, dass der nicht low level kompatibel ist. Habe mir jetzt den 
IRLR2705 bestellt.
Ich nehme an, dass der nicht richtig durchschaltet (10 v lt datenblatt)

Erklärt sich für mich aber nicht, warum es nicht mit der Transe geht 
(BC639)

Aber mit Transen habe ich schon immer ein Problem gehabt (jedenfalls den 
elektrischen)

------------------------------------------------------------------

Oder wäre das besser:

Solarzelle (12V)

http://www.ebay.de/itm/351012589093?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

   --
DC-DC Converter (6.9 V - dauer?Ladespannung)

http://www.ebay.de/itm/121380601634?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

   --

6 Volt Blei 4 AH

   --

78S05 (Low Drop 5 Volt)

   --

atmega328 + hardware (natürlich bis ein Cacher kommt im Tiefschlaf)

--------------------------------------------------------------------

Meine Frage als Anfänger an die Profis:

Hat jemand eine Lösung für das Step up Problem

Und oder

Ist die 2. lösung besser?

---------------------------------------------------------------------

Es sollte über den Winter kommen und ich glaube die Bleigel ist etwas 
unempfindlicher was die Temperatur betrifft?

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Hallo Daniel,

die Atmega sind im Tiefschlaf oft sogar sparsamer als die Attiny. Ich 
würde also einfach den Atmega328P bei 3.7V im Power-Down halten (28.2.4, 
typ 0.1μA bei 3V, die 1Ah aus dem Akku wären dann erst in ca. 1000 
Jahren verbraucht) und auf einen PCINT durch die Laserbeleuchtung 
warten.

Selbst wenn der Atmega alle Paar ms aufwachen um den Photosensor aktiv 
abfragen muss sollte der Akku immer noch satt hinreichen. Dazu müsste 
man aber Deinen Lichtsensor genauer kennen.

Schwerwiegender sind die Dauerverluste im Boostkonverter, den solltest 
Du tatsächlich nur bei Bedarf mit Strom versorgen. Das sollte aber 
sowohl per Transistor (BC639) als auch per Logic-Level-Mosfet (IRLR2705) 
gehen. Warum die Transistorschaltung bei Dir nicht funktioniert ist mir 
unklar -- was für einen Basiswiderstand hast Du gewählt?

LG, Sebastian

von Daniel S. (schuballaa)


Lesenswert?

Hallo,
Danke für deine ausführliche Antwort, den BC639 habe ich direkt am pin 
gelegt (das das falsch ist, ist mir mir mittlerweile klar) - komme noch 
nicht mir der Berechnung klar. Transistor is für mich irgendwie n rotes 
tuch... das muss ich unbedingt nochmal ändern.

Du hast eine super Idee, könnte ich den bei Lichteinfall nicht per 
Intterupt aufwecken? so das er nicht alle x sec aufwacht?

2 Vorteile
weniger verbrauch
und der Benutzer bräuchte mit Extremfall nicht 8 sek beleuchten - sofort 
bereit

----------------------------------------------------

Den Sensor habe ich mittels Spannungsteiler und Photodiode gelößt (da 
der laser n impuls abgibt und der ausgewertet wird, war ein ldr zu 
langsam)

----------------------------------------------------

Aber ich glaube um den interrupt auszulöen bräuchte ich dann eine 
transistor schaltung die bei licht spannung an den int pin legt (logisch 
1) da ich ihn in der lösung ja nicht alle x sec aufwachen lasse um den 
ADC zu messen.

Oder liege ich da falsch?

Wäre aber sowieso schneller/besser - denn zurzeit habe ich es sehr 
umständlich gelößt:

ADC > 10 wird ein pin auf high geschaltet dieser schaltet wiederum per 
mosfet einen anderen pin auf gnd - ich musste invertieren, da

morseDecoder morseInput(morseInPin, MORSE_KEYER, MORSE_ACTIVE_LOW);
funktioniert
morseDecoder morseInput(morseInPin, MORSE_KEYER, MORSE_ACTIVE_*HIGH*);

aber nicht

wenn der transistor ab n bestimmten wert (da sind wir wieder bei der 
Basiswiederstandsberechnung) auf high (1) stellt spare ich mir das 
auslesen des lichtwertes mittels ADC

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Daniel St. schrieb:
>  den BC639 habe ich direkt am pin
> gelegt (das das falsch ist, ist mir mir mittlerweile klar) - komme noch
> nicht mir der Berechnung klar. Transistor is für mich irgendwie n rotes
> tuch... das muss ich unbedingt nochmal ändern.

Uh, oh.

Ein Transistor ist ein Stromverstärker. Er hat an der Basis eine 
Schaltspannung von 0,7V zum Emitter und über der Schaltspannung so gut 
wie keinen Widerstand. Wenn Du eine Transistorbasis direkt an einen 
HIGH-Pin hängst und den Emitter an Masse dann produzierst Du mehr oder 
weniger einen Kurzschluss.

Wenn dein Servo 600mA bei 5V braucht, dann braucht der Boostkonverter 
600mA*5V/3,7V/Effizienz, also sagen wir 1A bei 3,7V. Der BC639 hat einen 
typischen Verstärkungsfaktor von 100. Du solltest also gute 10mA an die 
Basis schicken, besser etwas mehr um Serienstreuung des BC639 
auszugleichen, also sagen wir 20mA. Über den Basiswiderstand müssen 
3,7V-0,7V=3,0V abfallen, also brauchst Du 3,0V/20mA=150Ω.


> Du hast eine super Idee, könnte ich den bei Lichteinfall nicht per
> Intterupt aufwecken? so das er nicht alle x sec aufwacht?
> 2 Vorteile
> weniger verbrauch
> und der Benutzer bräuchte mit Extremfall nicht 8 sek beleuchten - sofort
> bereit

Klar, aber nur wenn der Grundverbrauch der Schaltung kleiner ist als der 
Verbrauch des sagen wir 10x pro Sekunde aufwachenden und messenden μC.

> Den Sensor habe ich mittels Spannungsteiler und Photodiode gelößt (da
> der laser n impuls abgibt und der ausgewertet wird, war ein ldr zu
> langsam)
> Aber ich glaube um den interrupt auszulöen bräuchte ich dann eine
> transistor schaltung die bei licht spannung an den int pin legt (logisch
> 1) da ich ihn in der lösung ja nicht alle x sec aufwachen lasse um den
> ADC zu messen.
> Oder liege ich da falsch?

Wie sieht Deine Schaltung genau aus? So wie in "Konstantstromquelle mit 
Arbeitswiderstand" in 
http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor?

> ADC > 10 wird ein pin auf high geschaltet dieser schaltet wiederum per
> mosfet einen anderen pin auf gnd - ich musste invertieren, da
> morseDecoder morseInput(morseInPin, MORSE_KEYER, MORSE_ACTIVE_LOW);
> funktioniert
> morseDecoder morseInput(morseInPin, MORSE_KEYER, MORSE_ACTIVE_*HIGH*);
> aber nicht
> wenn der transistor ab n bestimmten wert (da sind wir wieder bei der
> Basiswiederstandsberechnung) auf high (1) stellt spare ich mir das
> auslesen des lichtwertes mittels ADC

Das hab ich nicht ganz verstanden. Du benutzt zur Zeit den ADC um die 
Lichtmenge zu messen, ok. Aber hast du auch einen Mosfet in der 
Lichterkennung?

LG, Sebastian

: Bearbeitet durch User
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.