Hallo,
ich versuche gerade herauszufinden warem mein Attiny45 mit einer 3V
CR2032 einwandfrei funktioniert und wenn ich Vcc mit 3.3V oder 5V am
Arduino verbinde nichts passiert!?
Der Attiny hat doch eine maximale Betriebsspannung von 5.5V !? Könnte
mir das bitte jemand erklären? Hab auch schon versucht eine 9V
Blockbatterie über einen Festspannungsregler anzuschliessen, leider
passiert da auch nichts, bzw. der Attiny45 macht keinen Mucks.
Würde mich über ein paar Infos freuen.
Grüsse Mike
Verkehrt gepolt.
Falle: bei der CR2032 (und anderen Knopfzellen) ist der Pluspol "außen",
also an dem Ende, bei dem man im Vergleich mit "normalen" Batterien den
Minus-Pol erwarten würde.
Da ist nichts verpolt! Hab ja geschrieben mit der Batterie gehts
einwandfrei und wenn ich Spannung für den Attiny45 vom Arduino abgreife
(weil ich sonst grad keine Stromquelle hab) geht nicht.
Schaltungsaufbau? Vcc auf Pin 8, GND auf Pin 4, LED an Pin 2. Mehr ist
es ja nicht.
Also brauche ich noch einen ELKO!? Wie gut das ich von Elektronik kein
Plan hab :)
Hab das natürlich hier und da beim recherchieren gesehen, aber da mein
Wissen noch begrenzt ist hab ich da grad keinen Plan.
Ich nehme mal an aus der Batterie kommt ordentlich geglättete Spannung
und deshalb geht es ohne Probleme. Wenn ich jetzt den Strom vom Arduino
oder Festspannungsregler nehme ist sie nicht geglättet und deswegen den
Kondensator?!
Danke dann werd ich das mal versuchen, muss mir aber erst einen
besorgen.
Eine Frage hätte ich dann aber noch, denn eigentlich möchte ich die
Schaltung ja mit einer 9V Blockbatterie versorgen. Mein gedanke war da
ein Festspannungsregler. Da werden dann wohl mehr als einen Kerko, nehm
ich mal an!?
mikkes schrieb:> ein Festspannungsregler. Da werden dann wohl mehr als einen Kerko, nehm> ich mal an!?
Hängt vom Regler ab. Zum Regler gibt es ein Datenblatt. Im Datenblatt
gibt es Angaben dazu.
mikkes schrieb:> Danke dann werd ich das mal versuchen, muss mir aber erst einen> besorgen.
Warum nur einen?
>> Eine Frage hätte ich dann aber noch, denn eigentlich möchte ich die> Schaltung ja mit einer 9V Blockbatterie versorgen.
Das ist eine ganz schlechte Idee, weil es die teuerste und ungeeignetste
Form einer Controller-Versorgung ist.
> Mein gedanke war da> ein Festspannungsregler.
Der lutscht Dir den 9V-Block in Nullkommanix leer.
> Da werden dann wohl mehr als einen Kerko, nehm> ich mal an!?
Unter einem Hunderterpack brauchst Du da nicht zu suchen. Kannst Dir
auch welche aus einem alten PC-Motherboard auslöten.
Besser wäre eine Stromversorgung aus einer größeren Li-Batterie oder
einem Li-Ionen-Akku. Dann brauchst Du keinen Festspannungsregler. Den
Kerko an der Versorgungsspannung brauchst Du trotzdem, und zwar so dicht
wie möglich an den Versorgungspins des Controllers.
...
Danke für die Infos, dann sollte ich das vielleicht anders lösen mit der
Stromversorgung.
Würd ein LiPo-Akku auch gehen? Und warum braucht man den Kerko nicht bei
der CR2032? Hab das grad mal mit nem Handy-Akku probiert, tut sich auch
nichts (auch weil der Kerko fehlt?!)
Ich vermute eine andere Problemursache. So ein Abblockkondensator ist
zwar richtig und Sinnvoll. Aber dass der µC ohne diesen nichtmal ein
paar Sekunden läuft, ist seltsam.
Zeige den ganzen Schaltplan, das ganze Programm und ein Foto von dem
Aufbau. Vielleicht sehen wir dann die Fehlerursache.
Ist nur eine simple Schaltung, die LED blinkt in einer bestimmten
Reihenfolge. Mit der CR2032 gehts, sobald ich eine andere Stromquelle
benutze (Arduino 3.3V oder 5V abgezweigt) oder den Hanyakku, passiert
überhaupt nichts.
Ich sehe keinen Vorwiderstand für die Leuchtdiode.
Eine CR2032 hat einen höheren Innenwiderstand als die anderen
Stromquellen.
Mit dem Handyakku wirst Du den µC grillen.
Schalte einen 470 Ohm Widerstand in Reihe mit der Diode, dann sollte es
funktionieren.
Ich hab grad den kompletten Dachboden nach altem Elektronikzeugs
durchgewühlt und einen Kerko mit 100nF gefunden und ausgelötet.
Am Attin45 zwischen Vcc und GND gepackt und an den 3.3V Ausgang vom
Arduino Nano gehängt und Taaadaaa! Jetzt gehts ohne Probleme!
Den Vorwiderstand hatte ich absichtlich weggelassen, nun ist er in der
Schaltung aber drin. Wieder etwas gelernt! Danke euch allen für die
rasche Hilfe!
Also irgendwie gibts da ein für mich unverständliches Problem!
Es funktioniert auch ohne den Kerko, damit ging es mal, mal nicht. Jetzt
läuft es ohne, aber ...
Ich hab den Attiny45 mit einem Arduino programmiert, dabei am Attiny Pin
3 einen Schalter zum starten des Programms. Das geht mit dem Schalter
aber nicht, hab ich herausgefunden. Wenn ich jetzt mit einem Kabel (ohne
das andere Ende an GND oder sonst wo zu haben) an Pin 3 tippe, startet
das Programm!??!?
Ich hab hier mal meinen Code:
Ohne Vorwiderstand bekommst du einen Kurzschluss. Dann bricht die
Versorgungsspannung möglicherweise erheblich ein (von 5V runter auf
2,5V), was zum Ausfall des µC führt.
Bei der Knopfzelle ist der Spannungeinbruch geringer (von 3V runter auf
2,5V), damit kommt der µC wohl noch klar.
Du hast die LED Absichtlich ohne Widerstand betrieben. Warum hast du das
beabsichtigt?
Stefan U. schrieb:> Ohne Vorwiderstand bekommst du einen Kurzschluss. Dann bricht die> Versorgungsspannung möglicherweise erheblich ein (von 5V runter auf> 2,5V), was zum Ausfall des µC führt.>> Bei der Knopfzelle ist der Spannungeinbruch geringer (von 3V runter auf> 2,5V), damit kommt der µC wohl noch klar.
Was für ein Blödsinn.
Bei Vcc = 3V zieht eine normale rote LED ohne Vorwiderstand am AVR-Port
20mA. Da fühlt sich die LED wohl und dem Controller schadet es auch
nicht. Bei 5V sind es schon 70mA. 30mA mehr als der AVR treiben darf und
50mA zuviel für die LED.
Eine CR2032 liefert 20mA, ein Arduinoboard 70mA. Da bricht gar nichts
zusammen.
Der einzige, der hier mit etwas nicht klar kommt, bist du. Der fehlende
Stützkondensator war die Lösung. Ob es dir nun passt oder nicht.
Peter M. schrieb:> Mit dem Handyakku wirst Du den µC grillen.
Und du bist genauso ein Schlauberger.
Egal welchen "Streit" Sefan U. und das große Vorbild haben:
Eine LED OHNE Vorwiderstand zu betreiben ist wirklic absoluter Unfug.
Den Ausgangspin eines IC bis zur Maximalgrenze zu belasten macht man
nicht. Ist der Maximalstrom des Anschlusses erreicht, wird die Spannung
an diesem Pin so reduziert, dass der maximale Strom fließt (wenn er wie
im Falle es ATtiny eine interne Schutzschaltung hat). Hätte er diese
nicht, würde der Controller wohl zerstört werden.
Der Vorwiderstand errechnet sich aus:
(Uout_max - Uled) / Iled
Uout_max = die Spannung die maximal am Anschlusspin auftritt (im besten
Fall also die Betriebsspannung des Controllers, aber in der Praxis
deutlich geringer)
Uled = die Spannung, die sich an der LED bei einem bestimmten Strom
anhand ihrer Kennlinie einstellen wird (bei bspw. einer roten LED ca.
1,9V)
Iled = der Strom, der durch die LED fließen soll.
Der Stützkondensator ist obligatorisch und gehört immer eingebaut (aus
vielerlei Gründen).
Ansonsten: Ich bin immer wieder erstaunt, dass man so kleine Controller
wie einen Tiny mittels des Arduino-Frameworks "programmiert". Der
entstehende Overhead läßt dann ja fast nichts an Programm zu !
Ich weiss das man eine LED nicht ohne Vorwiderstand betreiben soll, die
hatte ich nur kurz zum testen weggelassen und auf dem Foto eben nicht
dazugesteckt. In der Schaltung ist natürlich einer.
Ich hatte nur herausgefunden das es am Kerko irgendwie nicht liegen
kann, da es ohne auch geht (werde ihn aber mit dazupacken).
Mir gehts gerade darum, das ich PIN 3 als Input definiert habe, einen
Taster daran angeschlossen hatte und durch drücken das Programm
gestartet werden soll. (PIN 3 -> GND) und genaus DAS mag er nicht.
Wenn ich jetzt aber einfach PIN 3 antippe mit einem Kabelende (das
andere Ende hängt in der Luft), startet das Programm!? Und genau das
beschäftigt mich gerade, weil ich nicht verstehe warum!
Und zu Arduino und Attiny ... ich weiss dass das eleganter, sparsamer,
besser funktioniert wenn man das anders macht, aber ich hab eben grad
nur einen Arduino und arbeite mich langsam in die Thematik ein, sprich
Anfänger, der froh ist wenn was funktioniert (manchmal aber nicht weiss
warum überhaupt) :)
Ralph S. schrieb:> an diesem Pin so reduziert, dass der maximale Strom fließt (wenn er wie> im Falle es ATtiny eine interne Schutzschaltung hat). Hätte er diese> nicht, würde der Controller wohl zerstört werden.
Wo ist das mit der Schutzschaltung vom Hersteller belegt?
Ralph S. schrieb:> ... zugegeben: nirgendwo !
Ich konnte auch nichts finden. Dem Großteil deines Beitrages zum LED
Vorwiderstand kann ich aber nur zustimmen.
mikkes schrieb:> Ich hab hier mal meinen Code:
Ich vermute, Du bist Geocacher aus dem Raum Mühldorf/Töging und willst
eine Cachestation bauen. Vielleicht bist Du im Geocaching-Forum besser
aufgehoben: http://www.geoclub.de/forum/viewforum.php?f=57
> Eine CR2032 liefert 20mA
Meine (von Kik) liefern stets weniger als 10mA im Kurzschlussfall und
5mA wenn man eine LED ohne Vorwiderstand anschließt. Die Spannung bricht
dann erheblich zusammen, so dass meine CR2032 für den Betrieb eines
Mikrocontroller mit LED nicht geeignet sind.
In anderen Geräten (z.B. Fahrrad Tacho) erfüllen sie jedoch prima ihren
Zweck.
> Ich weiss das man eine LED nicht ohne Vorwiderstand betreiben soll,> die hatte ich nur kurz zum testen weggelassen
Mal kurz einen Kurzschluss machen, ist generell keine gute Idee. Sowas
kann auch gefährlich sein. Halbleiter zerplatzen dabei manchmal auch,
dann fliegen winzige Plastik Splitter durch den Raum und möglicherweise
ins Auge!
Mikkes schrieb:
> Es funktioniert auch ohne den Kerko... Jetzt läuft es ohne
Ich schrieb:
>> Ohne Vorwiderstand bekommst du einen Kurzschluss...
Mein grosses Vorbild schrieb:
> Was für ein Blödsinn.> Der einzige, der hier mit etwas nicht klar kommt, bist du.> Der fehlende Stützkondensator war die Lösung.> Ob es dir nun passt oder nicht.
...
> Und du bist genauso ein Schlauberger.
@Vorbild:
Hälst du Deine Kommentare immer noch für angemessen?
Ich habe jetzt keine Lust einen t45 oder eine LED zu grillen. Die
Versuche hat ja Mikkes gemacht.
Aber ich mache oft Schaltungen ohne Abblockkondensator, die mit Akkus
auf 3,6 V laufen. Vorwiderstand habe ich noch nicht weggelassen.
Vermutlich war die Stromaufnahme im Einschaltmoment so hoch, das eine
Schutzschaltung wirkte, mit Kerko auch, aber im Portpin.
Und die letzte Frage von Mikkes zum Schalter:
Ohne das C-Programm nachzuvollziehen, weise ich drauf hin, dass der
Eingabepin mit internem Pullup auf H gezogen (Pin3=1/true) und dann auf
L getestet werden sollte und dieser Test zwecks Entprellung widerholt.
Stefan U. schrieb:> Hälst du Deine Kommentare immer noch für angemessen?
In Anbetracht dessen, was du hier für einen Stuss von dir gibst, in
jedem Fall. Deine Argumentation mit deiner qualitativ hochwertigen
Kik-Batterie geht in die völlig falsche Richtung. Merkst du das
eigentlich nicht?
Aber ich habe keine Lust, mich mit einem Hobbybastler zu streiten. Also
lass es gut sein.
Schade dass das jetzt in hitzigen Diskussionen endet. Werde es weiter
probieren, da lernt man es eh am besten, auch wenn mal was abraucht.
Dann wars wohl falsch! :)
Jedenfalls Danke für den einen oder anderen Tipp! Falls ich es wie
gewünscht zum laufen bringe meld ich mich nochmal.
Besten Dank
mikkes schrieb:> Dann wars wohl falsch! :)
Das heißt aber noch lange nicht, dass es richtig ist, wenn es
funktioniert. Einen Controller oder Logic-Schaltkreis ohne Abblock-C zu
betreiben ist nunmal Pfusch und wird Dir irgendwann auf die Füße fallen.
...
> In Anbetracht dessen, was du hier für einen Stuss von dir gibst, in> jedem Fall. Deine Argumentation mit deiner qualitativ hochwertigen> Kik-Batterie geht in die völlig falsche Richtung.
Ich habe einen Screenshot von einem Datenblatt der CR3032 von Varta
angehangen. Man sieht dort die Spannung in Anhängigkeit vom Laststrom.
Das Diagramm endet bei ca. 3mA. Für 20mA ist diese Batterie sicher
ebenfalls nicht geeignet.
Stefan U. schrieb:> Ich habe einen Screenshot von einem Datenblatt der CR3032 von Varta> angehangen. Man sieht dort die Spannung in Anhängigkeit vom Laststrom.>> Das Diagramm endet bei ca. 3mA. Für 20mA ist diese Batterie sicher> ebenfalls nicht geeignet.
Du kannst posten, was du willst. Hast du wirklich so wenig Ahnung von
Elektrotechnik, daß du nicht merkst, was für einen Blödsinn du da hinein
interpretierst?
Ich hatte da nen Denkfehler hab ich gerade gemerkt, hab die Schaltung
grad mal am Arduino aufgebaut. Ich muss ja wenn ich einen PIN als Input
nehme 5V "hinschicken", hatte den PIN aber nur auf GND gelegt. kann ja
so nicht gehen.
Und zur Beruhigung aller, ja, mit Widerständen, Pullup-Widerstand und
werd da jetzt mal auf den Attiny schicken und dort auch den Kerko
verbauen, wie empfohlen! :)
Du kannst den Taster ruhig an GND und dem Eingang anschließen. Der
Pull-Up WIderstand wird den Pin dann bei nicht gedrücktem Tasterauf High
ziehen. Im Quelltext erkennst du dann den gedrückten Taster so:
if (buttonstate == LOW) {...}
Das hat aber seltsamer Weise nicht funktioniert, hatte ich ja das
komische Phänomen dass das Programm gestartet hatte wenn ich PIN 3 mit
einem Kabel antippe, das andere Ende aber in der Luft hing!?
So, ich habs hinbekommen.
Zwischen Vcc und GND ist der Kerko. Vor jeder LED ist ein Vorwiderstand,
an jedem Schalter ist ein Pulldown-Widerstand, Festspannungsregler auf
5V, mit zwei Elkos 10µF.
Das Arduino-Programm habe ich erweitert und benötigt auf dem Attiny ca.
1.8 KB.
Mir ist nichts um die Ohren geflogen ;)
Ich hoffe das passt euch soweit, oder habe ich noch etwas vergessen!?
mikkes schrieb:> Ich hoffe das passt euch soweit, oder habe ich noch etwas vergessen!?
das mit dem "delay()" in deinem Code solltest du nochmal überdenken.
Das zieht nämlich dauernd Maximalstrom aus deiner Batterie, obwohl der
Tiny solche Warte-Aufgaben auch per Timer, Watchdog-Wakeup u.Ä. mit im
Vergleich zur Batterie-Selbstentladung fast vernachlässigbarem
Stromverbrauch erledigen kann.
Ja ich weiss, das mit dem delay ist die schlechteste Wahl. Mit den
anderen Möglichkeiten habe ich mich bisher nicht beschäftigt.
Wie es aussieht, komme ich da über kurz oder lang nicht dran vorbei.
mikkes schrieb:> Zwischen Vcc und GND ist der Kerko.
Warum?
Um mir einen Gefallen zu tun? Musst Du nicht.
Um die Schaltung stabil zu machen? Ja, gut gemacht.
> Vor jeder LED ist ein Vorwiderstand,
Das sollte selbstverständlich sein. Wirklich.
> an jedem Schalter ist ein Pulldown-Widerstand,
Warum das?
Die AVRs haben doch eingebaute PullUp-Widerstände, die man nur
aktivieren muss.
Schau mal ins Datenblatt bei den Registern PORTB, PINB und DDRB.
> Festspannungsregler auf 5V, mit zwei Elkos 10µF.
Warum zwei Elkos?
Schau mal ins Datenblatt des Festspannungsreglers. Schau nicht nur nach
der Beschaltung betreffs Kondensatoren zur Unterdrückung der
Schwingneigung, sondern auch nach dem Ruhestrom, der auch fließt, wenn
gerade kein Schatzsucher in der Nähe ist. Überlege dann, ob Du nicht mit
einer Li-Ion-Zelle oder 3 R20-Zellen (Primärzellen) besser beraten bist.
mikkes schrieb:> Ja ich weiss, das mit dem delay ist die schlechteste Wahl.
Na dann ändere dies doch. Nimm das Datenblatt des Controllers und schau
Dir mal dessen Sleep-Modi an und auch den Pinchange-Interrupt an, der in
der Lage ist, den AVR aus dem tiefsten Sleeplevel zu wecken. Dann
strukturiere das Programm so, dass per Taster und PCI der AVR geweckt
wird, der Sleepmode auf IDLE umgeschaltet wird und das Programm mittels
Timer-Interrupt (oder auch erstmal mit Delays) die LED-Sequenz abspult
und danach den Sleepmode wieder in den Tiefschlaf schaltet, aus dem er
nur per Taster geweckt werden kann.
Wenn Dir das zu komplex ist, dann hänge den Taster doch an den
Reset-Pin. Das Programm spult dann nach Loslassen des Tasters die
LED-Blink-Orgie ab und geht danach in den Tiefschlaf, aus dem es außer
Reset keine Weckmöglichkeit gibt. Das dürfte die einfachste
Stromspar-Möglichkeit sein.
Noch ein Tipp:
Das Verwenden einer stark abstrahierenden Hochsprache wie C++ (im
Arduino-Dialekt) oder Bascom hindert Dich nicht daran, Register des
Controllers direkt zu bearbeiten. Gerade betreffs SLEEP sind die
Controller so unterschiedlich ausgestattet, dass nur der Blick ins
Datenblatt des verwendeten Controllers zum Erfolg führt.
Hast Du schonmal daran gedacht, die Koordinaten in Morsecode auszugeben?
Oder können die heutigen Schatzsucher keine Morsezeichen mehr? ;-)
...
Ich bin doch erst Anfänger! :)
Natürlich werde ich mir hier und da gedanken machen um das zukünftig
besser bzw. professioneller zu machen. Was ja auch sinnvoll wäre!
Und wegen der Schatzsucher ...
ich hab das jetzt so umgeschrieben das er die richtigen Koordinaten
ausgibt wenn die Box (in der das Ding eingebaut wird) auf dem Kopf
steht, steht sie normal gibt sie falsche Koordinaten heraus :)
Morsecode war mein erster Gedanke, wollte ich dann aber nicht.
Mein grosses V. schrieb:> Du kannst posten, was du willst. Hast du wirklich so wenig Ahnung von> Elektrotechnik, daß du nicht merkst, was für einen Blödsinn du da hinein> interpretierst?
Kannst Du eigentlich auch vernünftig und in angemessenem Ton schreiben?
Ich glaube nicht, denn Du hast anscheinend nur bunte Knete im Kopf.
Du bist nur peinlich!
Also ich habs jetzt mal umgeschrieben auf internen PULLUP, ging erst
nicht. Dabei muss ich ja dann auf GND gehen und nicht auf 5V, ist das
alles verwirrend.
Hab jetzt auch mal beide ELKOs beim Festspannungsregler weggelassen,
geht, aber ich weiss wieder nicht welche Auswirkungen das hat :)
mikkes schrieb:> Hab jetzt auch mal beide ELKOs beim Festspannungsregler weggelassen,
Hast Du vorher auch ins Datenblatt des Festspannungsreglers geschaut?
> geht, aber ich weiss wieder nicht welche Auswirkungen das hat :)
Na der Regler wird zum Schwingen neigen, wenn die im Datenblatt
angegebenen Kerkos nicht vorhanden sind. Auch diese müssen wieder ganz
dicht an die Regler-Pins.
mikkes schrieb:> Ach, und die Batterie hängt nicht permanent an dem Ding. Muss man schon> mitbringen! :)
Dann ist der Einsatz eines Spannungsreglers natürlich sinnvoll. Vergiss
nicht die Verpolschutzdiode davor. Nicht dass der Schatzsucher Deine
Technik durch Falschpolung killt.
...