Forum: Mikrocontroller und Digitale Elektronik Digispark sichere Stromversorgung (Handyladegerät - mit Kurzschlusssicherung


von Blue J. (Firma: Kein) (blue89)


Lesenswert?

Hallo,

ich bin Hobbybastler und habe schon ein paar Projekte mit Arduino und Co 
umgesetzt. Ich habe nun eine kleine Steuerung mit dem Digispark (Attiny 
85 mit USB-Platine) gebaut und wollte diese eigentlich mit 3AAA 
Batterien (Gehäuse mit 3AAA + USB-Ausgang) betreiben.
Die Steuerung sollte so ca.  10 Tage laufen und einmal am Tag kurz eine 
Aktion durchführen (kleiner Servo)
Nach längerem probieren und vielen Forenbeitragssuchen habe ich den 
Attiny mit Watchdog in den power-down mode geschickt aber (wie auch 
schon öfter gelesen) braucht er dennoch zu viel Strom und frisst die 
Batterie auch beim "Nichtstun" leer. Nun könnte ich ja eine RTC 
dranhängen und somit einen Interrupt zum täglichen aufwachen zu nutzen, 
eigentlich ist es mir aber zu viel Aufwand und ich habe den Bauraum 
nicht.

Nun denke ich darüber nach einfach den Digispark-USB über ein "besseres 
Handyladegerät" und eine mechanische Zeitschaltuhr einfach einmal am Tag 
für 15min anzuschalten (einen Schleifendurchlauf und dann ein langes 
delay).

Hier habe ich nur eine Frage: der Digispark und Servo sind zwar 
spritzwassergeschützt aber in nasser Umgebung (Nahe Aquarium bei den 
Filtern). Ich möchte nicht, dass mir etwas abfackelt :-) Wenn ich ein 
besseres Handyladegerät mit Kurzschlusssicherung nehme, sollte doch auch 
wenn es irgendwo auf der Platine durch Feuchtigkeit einen kurzen gibt, 
die Sicherung greifen und somit nicht das Ladegerät länger 
kurzschließen? (Natürlich ist die Funktion auch nicht gegeben, aber es 
wäre nur die Notsicherung)
Da es eben unbeaufsichtigt läuft, wollte ich es kurz nachfragen, ob Ihr 
einen Tip habt oder Bedenken seht?

Vielen Dank für die Mühe und frohes Entwickeln :-)
Blue

von Felix (Gast)


Lesenswert?

Würde ich nicht machen, oft erkennt man nicht ob das Ladegerät wirklich 
sicher ist oder nur ein China Billigteil.

LG Felix

von Frank K. (fchk)


Lesenswert?

Hänge einen isolierten DC-DC-Wandler mit kleiner Leistung (halt so viel 
wie unbedingt gebraucht wird) in die Stromversorgung. Der DC-DC-Wandler 
dient zum einen als Strombegrenzung, und zum anderen trennt er deine 
Versorgungsspannung sicher von allem anderen. Achte darauf, dass die 
Pins für Eingang und Ausgang möglichst weit voneinander entfernt sind.

fchk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Blue J. schrieb:
> Die Steuerung sollte so ca.  10 Tage laufen und einmal am Tag kurz eine
> Aktion durchführen (kleiner Servo)
Das sollte man aber mit einer brauchbaren Schaltung (z.B. logischerweise 
nicht das kleine Modellbauservo dauernd versorgen!) und dem passenden 
Sleepmode schon hinbekommen.

> wenn es irgendwo auf der Platine durch Feuchtigkeit einen kurzen gibt
Ich würde zum Test einfach mal so eine Lochstreifenplatine mit 5V 
versorgen, unter Aufsicht ins Wasser schmeißen und zusehen, was da dann 
so passiert. Und dann auch mal mit dem Strommesser gucken, ob da 
irgendeine Sicherung "greifen" würde.

: Bearbeitet durch Moderator
von Georg M. (g_m)


Lesenswert?

Blue J. schrieb:
> mit Kurzschlusssicherung

Da steht: kurzschlussfest. Ob man sich darauf verlassen kann, ist eine 
andere Frage.

https://www.reichelt.de/steckernetzteil-7-5-w-5-v-1-5-a-hnp-06-musbl6-p177067.html

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Blue J. schrieb:
> braucht er dennoch zu viel Strom
Da müssen der 7805 und ggfs. die LED runter.

Lothar M. schrieb:
> und dem passenden Sleepmode schon hinbekommen.

http://digistump.com/products/1
Auf dem Ding ist ein 7805 drauf, damit bringt der SleepMode des µC nur 
wenig Ersparnis.

Und ich hoffe, dass die Schottkydiode D3 auf den realen Boards 
andersherum als im Stromlauf ist.

von Blue J. (Firma: Kein) (blue89)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die schnellen Antworten!

@Felix, genau das habe ich eben auch befürchtet!

Ich habe jetzt einmal ein Bild angehängt, wie ich es eigentlich machen 
wollte. Auf dem Bild ist aber noch die alte Version (mit Schrittmotor 
statt servo) verbaut. Ich setze alle Pins auf LOW, sodass quasi nur 
Strom fliest, wenn ich es wieder auf High setze (Anm. von Lothar M). 
Einen Pin nutze ich als Abfrage ob er high oder low ist (mit Pullup) um 
die Ausgangsposition des Schrittmotors einstellen zu können.

Ich habe einen Watchdog initiert der quasi alle 8sek aufweckt (maximal 
was softwaremäßig geht), und trotzdem läuft mir die Batterie eben weg 
(und neben bei bemerkt die Zeit ist sehr sehr ungenau, aber das wusste 
ich und hängt wohl auch mit der schnell sinkenden Spannung zusammen)

Manfred, ich müsste also das Bauteil 1 (Bild) rauslöten und wenn möglich 
noch die Power LED. dann kann ich aber nicht mehr wie oben über den USB 
anschließen sondern müsste es über die PINS an der Seite direkt machen 
(was ja geht da zhwischen 3.5-5.5 V mit den 3AA Batterien)
Verstehe ich das so richtig, eben dass dann der Spannungswandler weg ist 
und USB Stromversorgung nicht geht?

Danke auch  Georg M. , genau an so ein Netzteil hatte ich eben gedacht, 
in der Hoffnung es dann einfach zu lösen (eben ich habe dann das 
Zeitproblem sehr genau da Zeitschaltuhr mit Synchronmotor bzw. digital) 
und eben Stromversorgungsmäßig habe ich quasi unendlich zur Verfügung 
:-).

Könnte es eben auch komplett mit Heißkleber "eingießen" aber dann kann 
ich dir Programmierung nicht mehr verändern.

Seht ihr noch eine andere geschicktere Möglichkeit?

Danke und beste Grüße!
Blue

von Blue J. (Firma: Kein) (blue89)


Angehängte Dateien:

Lesenswert?

Das war die Digispark Programmierung für den Schrittmotor, da ich 
mittlerweile festgestellt habe, dass meine Servoübersetzung nicht 
klappt, muss ich wieder auf diesen zurückwelchseln!

//Edit: Programmierung als Snipshot angehängt, wegen Formatierung
______________________________________________________________________ 
_
 // Schreibe Motor alle LOW, damit kein Strom gezogen wird, wenn nicht 
läuft//

  digitalWrite(1, LOW) ;
  digitalWrite(2, LOW) ;
  digitalWrite(3, LOW) ;
  digitalWrite(4, LOW) ;

  // Ende

  WatchdogTimer = WatchdogTimer+1;

  if (digitalRead(0)== LOW) {
        delay(20);
        for (int i=0; i<100; i=i+1)  {

//Abfrage ob Pin aktiv in FOR SCHLEIFE, DAMIT einmal ohne watchdoy 
durchlaufen FUNKTIONIERT NICHT, GEHT ALLE 8SEK SCHLAFEN!! -> Wenn ja 
Motor macht kleine Drehung sukkzezive bis Ausschnitte übereinander 
liegen

        if (digitalRead(0)==LOW) {
        myStepper.step(10);
        }
        delay(100);
        }
        delay(50);
//Notwendig, damit Controller genug Zeit hat
       }

  /* This is the event */
    if (WatchdogTimer >= WatchdogEventInterval) {
    /* Event code */
      Motormove();
      delay(4000);
      digitalWrite(1, LOW) ;
      digitalWrite(2, LOW) ;
      digitalWrite(3, LOW) ;
      digitalWrite(4, LOW) ;
   /* Update the timing for the next time around */
      WatchdogTimer=0;
  }

 sleep_enable();
 sleep_cpu();
 }                                                  // End of void 
loop()

//Function Motor Move (Servobewegung)

void Motormove() {

  myStepper.setSpeedHz(500);                      //500 Herz scheint 
geschickt zu sein, schafft der Motor (bei 1000 gab Probleme)
  myStepper.step(410);

  }

// End Function Motor Move (Servobewegung)

ISR (WDT_vect) {
  WDTCR |= _BV(WDIE);
}
_______________________________________________________


Wobei mir gerade erst auffällt, dass ich ja das Schrittmotor Treiber 
board dauerhaft am Strom vom Digispark anhängen habe, das kann ich in 
dem Fall nicht auf LOW ziehen (da über normale Ausgangspins verdrahtet). 
Könnte das auch viel Strom fressen, obwohl die Motorsteuerpins quasi 
alle auf LOW sind? Dann müsste ich irgendwie über einen PIN versorgen 
den ich eben auf LOW setzen kann, was aber eventuell zu wenig 
Stromstärke bring?

Viel Grüße
BLUE

von Manfred (Gast)


Lesenswert?

Blue J. schrieb:
> Manfred, ich müsste also das Bauteil 1 (Bild) rauslöten und wenn möglich
> noch die Power LED. dann kann ich aber nicht mehr wie oben über den USB
> anschließen sondern müsste es über die PINS an der Seite direkt machen
> (was ja geht da zwischen 3.5-5.5 V mit den 3AA Batterien)

Die Spannung von drei Alkalizellen rechnest Du noch einmal nach!
Fabrikfrisch können die knapp 1,7V liefern, am Ende sind sie erst bei 
etwa 1 Volt.

> Verstehe ich das so richtig, eben dass dann der Spannungswandler weg ist
> und USB Stromversorgung nicht geht?

Aua, willst Du nicht einfach mal den Schaltplan angucken, den ich von 
der Digispark-Webseite geholt habe? Und mal gucken, wie herum die Diode 
am USB im Board tatsächlich eingelötet ist - Dein Foto taugt nichts.

Ich unterstelle Digispark, dass der Schaltplan mit Vorsatz schlampig 
ist.

Der Spannungsregler wird nur benötigt, wenn an JP2-Pin1 eine Spannung 
größer 5V, mindestens 7,5V, eingespeist wird.

Wenn Du den Wert von R4 ablesen kannst und über diesen die Spannung 
misst, kannst Du den Strom der LED ausrechen - den willst Du bei 
Batteriebetrieb nicht haben.

Die LED an PB1(MISO) ist auch ein Kandidat für die Tonne.

Blue J. schrieb:
> Wobei mir gerade erst auffällt, dass ich ja das Schrittmotor Treiber
> board dauerhaft am Strom vom Digispark anhängen habe

Strom kann man messen. Ergebnis könnte auch werden, dass Dich Dein 
Projekt überfordert und Du mit zwei Transistoren (NPN+PFET) den 
Motorcontroller abschaltem musst.

von Xaver M. (priapos)


Lesenswert?

ich habe ein "ähnliches" Feuchte-Problem.
Bei mir ist das Ding im Gewächshaus, und da tritt Kondensation auf.
Ich überlege ob es Sinn macht, das ganze mit Wachs einzusprühen, 
Schutzwachs aus dem kfz-Bereich.

von Frank K. (fchk)


Lesenswert?

Xaver M. schrieb:
> ich habe ein "ähnliches" Feuchte-Problem.
> Bei mir ist das Ding im Gewächshaus, und da tritt Kondensation auf.
> Ich überlege ob es Sinn macht, das ganze mit Wachs einzusprühen,
> Schutzwachs aus dem kfz-Bereich.

Es gibt Urethan-Lack aus der Spraydose für sowas.

https://www.pkelektronik.com/media/downloads/d/a/datenblatt%20crc%20kontakt%20chemie%20schutzlack%20urethan%2071.pdf

fchk

von Blue J. (Firma: Kein) (blue89)


Lesenswert?

Hallo zusammen,

vielen Dank für die Bemerkungen und Hinweise!
Ich habe mir den Schaltplan nochmal genauer angeschaut und die Pins am 
78M05 und der PWR LED abgezwackt bzw die LED auch mit dünnem 
Seitenschneider weggeschnitten. Die PB1 led stört nicht, da diese nur 
bei der Motordrehung kurz aktiviert ist, und somit habe ich zumindest 
noch einen Hinweis auf Funktionsweise des Boards!

Es scheint alles noch zu laufen und ich mache jetzt mal einen Testlauf. 
Ich habe zusätzlich noch die Frequenz des Attiny heruntergesetzt über

void setup() {
  clock_prescale_set(clock_div_64);

Hier hat es mich gewundert, obwohl ich die Dokumentation gefunden habe, 
ist es für mich nicht ganz verständlich, ich dachte erst der z.B. div_8 
setzt den Clockspeed auf 16Mhz/8=2Mhz. Dem scheint aber nicht so zu 
sein, sondern der div_8 setzt den Clockspeed auf 8Mhz?

Denn der Test bei mir mit div_64 ergibt, dass bei einem einfachen Blink 
LED Program mit 1000ms delay die LED 4-fach langsamer läuft (jedenfalls 
hat das (jeweils 4000ms an/ aus sichtbar).
Interessanterweise ist der Watchdog timer trozt dieser Anpassung wohl 
bei 8sek (und nicht vor mir angenommen 8x4=64sek pro "Schlafzyklus") 
geblieben.

Danke für den Hinweis mit dem Transitor für das Board, ich schaue jetzt 
einmal wo ich beim jetzigen Aufbau lande und was dabei rumkommt, behalte 
es aber im Hinterkopf!

Bezüglich den Spraylacken: Finde ich eine gute Idee! ist die Frage ob 
ich danach trotzdem nach reinigen nochmal die Programmierung ändern kann 
oder ob das zu viel Sauerei ist. Dann wäre die Heißklebevariante die 
einfachste und sicher absolut dicht und robust!

Danke und viele Grüße
Blue

von Manfred (Gast)


Lesenswert?

Blue J. schrieb:
> Ich habe mir den Schaltplan nochmal genauer angeschaut und die Pins am
> 78M05 und der PWR LED abgezwackt bzw die LED auch mit dünnem
> Seitenschneider weggeschnitten.

Wie groß ist nun die Stromaufnahme?

> Interessanterweise ist der Watchdog timer trozt dieser Anpassung wohl
> bei 8sek (und nicht vor mir angenommen 8x4=64sek pro "Schlafzyklus")
> geblieben.

Im sleep wird der Systemtakt abgeschaltet, also hat sleep einen eigenen 
Zeitgeber - der übrigens sehr ungenau ist.

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.