Hallo ich will eine Schaltung bauen die für den Schutz vom Bleiakku ist. Die Lampe D4 ist 12V / 8W. Die Helligkeit der Lampe soll bei ca. 11,7V auf 9V geschaltet werden. Bei ca. 11,5V soll die Lampe ausgeschalten werden und nur D5 leuchten. Ist ein Display für die Spannungsanzeige. Und ab ca. 11,3V soll auch das Display ausgeschalten werden. Könnt ihr vielleicht einmal drüber schauen ob die Vorstellung so funktioniert? Welche Mosfets bzw. Transistor würdet ihr für diesen Bau vorschlagen? Danke für die Tipps. LG
namenlos schrieb: > Könnt ihr vielleicht einmal drüber schauen ob die Vorstellung so > funktioniert Nein, das funktioniert so nicht. Wie wäre es mit einem Experimentier-Steckbrett wenn in LT-Spice die überlasteten Bauteile nicht ordentlich zerplatzen ? Und am 12V Akku kann ein ICL7665 einen Tiefentladeschutz mit Vorwarnung bauen, denn braucht die Elektronik nicht gleich Milliamperes um den Akku schon selbst tiefzuentladen
MaWin schrieb:
>Nein, das funktioniert so nicht.
Hallo Mawin,
danke für deine Rückmeldung.
Wieso funktioniert es so nicht? Ist die Last zu groß für die Fets bzw.
Transistor oder ist die Schaltung falsch?
Möchte jetzt nicht dass die Bauteile zerplatzen bzw. habe die jeweiligen
Bauteile auch momentan nicht.
Der letzte Absatz war mir auch nicht ganz klar was du gemeint hast.
LG
namenlos schrieb: > oder ist die Schaltung falsch? Nach meinem Eindruck ist die Schaltung komplett sinnlos. Suche nach ICs "Voltage Supervisor", der alte und teure ICL7665 plus Peripherie könnte Deine Idee lösen.
Manfred schrieb: > Nach meinem Eindruck ist die Schaltung komplett sinnlos. Ja, absolut! Fensterkomparator aus alten Zeiten TCA 965, oder doch mit OP-Schaltung wäre möglich...
:
Bearbeitet durch User
Hallo, danke für den Hinweis. Werde mir dann mal den ICL7665 anschauen. Ihr habt ja gemeint dass die Schaltung so nicht funktioniert. Was genau funktioniert nicht bzw. wo ist der Denkfehler? Würde es gerne verstehen wieso es nicht funktioniert. LG
namenlos schrieb: > Was genau funktioniert nicht bzw. wo ist der Denkfehler? 1) Transistoren sind haben keine harte Schwelle bei der sie plötzlich ein oder aus schalten. Du musst die Batteriespannung mit einer stabilen Referenz vergleichen und dementsprechend dann die Transistoren schalten. 2) Leuchtdioden (D5) brauchen Vorwiderstände, wenn die nicht über eine Konstantstromquelle betrieben werden. > Welche Mosfets bzw. Transistor würdet ihr für diesen Bau vorschlagen? Das kann man erst sagen, wenn man weiß, wie viel Strom die LEDs aufnehmen.
Wahrscheinlich ist D4 und D5 keine reine Led, sondern ein Led Modul für 12V. Es wäre zu klären wie sich das verhält wenn es mit weniger Spannung betrieben wird. 3 Möglichkeiten: 1. Es hat intern eine Konstantstromquelle die auch noch mit der niedrigeren Spannung funktioniert und leuchtet quasi gleichhell bei z.B. 9V 2. Die Mindestspannung wird unterschritten und es leuchtet gar nicht mehr oder glimmt nur noch 3. Es hat intern Vorwiderstände. Dann kommt es auf die Anzahl Leds in Reihe an wie schnell es bei verringerter Spannung dunkler wird. @namenlos: (Warum sucht man sich solche Troll nicknames aus wenn man Hilfe will) Elektronik ist etwas komplizierter als du es dir vorstellst, macht aber nichts, aus solchen Fehlern lernt man. Kriege doch erst mal raus wie sich deine Leuchten mit verringerter Spannung verhalten. Und dann schau dir mal Beispiele von ICL7665 Schaltungen an. Noch ein (unendliches) Thema: Bist du dir sicher, dass man den Bleiakku so weit entladen sollte? Auch "zyklenfeste" Bleiakkus mögen eine Entladung bis unter 12V meist nicht so sehr.
:
Bearbeitet durch User
Wenn du die Schaltung in LTSpice hast, wieso simulierst du sie dann nicht einfach und schaust, was sie macht?
Danke für die Tipps. Ich glaube ich habe meinen Denkfehler gefunden. Ich dachte wenn die Batterie unter der Sperrspannung von der Z-Diode ist, dass der Gate vom FET auf Masse gezogen wird. An der Z-Diode bleibt aber die Spannung von der Batterie, der Strom fließt aber nicht mehr wenn die Spannung unter der Sperrspannung ist. Ob der Strom fließt oder nicht spielt aber eigentlich keine Rolle bei der Z-Diode. Somit würde ich noch einen OPV verwenden und zwischen Gate und Z-Diode hinzufügen. Ich wollte ja dass bei 12V bei der LED Lampe die Spannung auf z.B. 9V fällt. Da muss ich noch die Spannung der LED Lampe genau herausfinden wegen der Helligkeit. Das funktioniert aber auch nicht mit D3 und R4. Da wird ja auch noch ein OPV und benötigt. @Stefan F.: Die Led D4 ist eine E27 LED Lampe und ist 12V/ 8W. Somit sollte der Strom 0,66A sein. D5 ist eine Spannungsanzeige zwischen 8-16V. @Udo S. Bei verringerter Spannung wird die LED dünkler und nach einer gewissen Zeit fängt es an zu blinken. Die Spannung ab wo es beginnt zu blinken müßte ich noch herausfinden. Den Akku kann ich auch nur bis 12V entladen. Habe irgendwas gesehen dass man bei ca. 11,5V achten sollte. LG
namenlos schrieb: > Die Led D4 ist eine E27 LED Lampe und ist 12V/ 8W. Somit sollte der > Strom 0,66A sein. D5 ist eine Spannungsanzeige zwischen 8-16V. Verbesserungsvorschlag zur Lesbarkeit: Du könntest die Symbole für Lampen und Voltmeter verwenden oder ersatzweise einen Widerstand mit entsprechender Beschriftung. Als Transistoren empfehle ich NDP6020P (THT, TO220) oder IRML6402 (SMD, SOT23). Du brauchst aber auf jeden Fall anständige Schwellwertschalter davor. Und dann kommt vielleicht heraus, dass N-MOSFET besser passen. Das wären dann IRLZ44N (THT, TO220) oder IRLML6344 (SMD, SOT23). Das sind meine "Standard" Typen.
Hallo, danke für die Erklärung. War bisschen beschäftigt. Ich habe jetzt die LED Lampe mal getestet. Bei 12V verbraucht es 0.6 A und bei 8V verbraucht es ca. 1A. Die Helligkeit hat sich kaum geändert. Wollte mit der Spannung nicht weiter runter gehen. Habt ihr eine Idee was das für ein Verhalten ist? Danke LG
namenlos schrieb: > Ich habe jetzt die LED Lampe mal getestet. Bei 12V verbraucht es 0.6 A > und bei 8V verbraucht es ca. 1A. Die Helligkeit hat sich kaum geändert. Da sind wir wieder beim µC-net Lieblingsthema: Foto zeigen, anständig ausgeleuchtet, passend fokussiert und in sinnvoller Größe als jpg. Rechnen wir mal: 12x0,6=7,2Watt, 8x1=8 Watt, also etwa gleich. Das ist das typische Verhalten von Schaltreglern, wie sie auch bei mir in mehreren LED-Lampen vorkommen - die kann man nicht dimmen.
Manfred schrieb: > Das ist das typische Verhalten von Schaltreglern, wie sie auch bei mir > in mehreren LED-Lampen vorkommen - die kann man nicht dimmen. Ja, da wird ein Schaltregler drin sein.
Manfred schrieb: > Das ist das typische Verhalten von Schaltreglern, wie sie auch bei mir > in mehreren LED-Lampen vorkommen - die kann man nicht dimmen. Ja, da wird ein Schaltregler drin sein. Entlade den Bleiakku besser nicht unter 11 Volt.
Also durch den Schaltregler kann man nicht dimmen. Danke für die Info. Somit habe ich mir dann überlegt alle 15 Sek. für 0,7 Sek. die LED-Lampe auszuschalten wenn die Spannung unter 12,2 Volt ist und bei 12V ganz ausschalten. Das sollte über einen NE555 funktionieren oder habt ihr noch andere Ideen? Danke! LG
Hallo, ich will ja eine Schaltung bauen die für den Schutz vom Bleiakku ist. Die LED-Lampe R6 ist 12V / 8W. Bei >12,2V soll die Led-Lampe leuchten. Zwischen 12,2V und 12V soll die Led-Lampe mit dem NE555 blinken. Zwischen 12V und 11,8V soll die Lampe ausschalten und nur der Voltmeter anzeigen und <11,8V soll auch der Voltmeter ausschalten. Wie kann ich beim Q1 bestimmen welches Signal durchkommt. Über 12,2V soll das obere Signal durchkommen und unter 12,2V das untere Signal. @Stefan Ich wollte es auch einmal mit LTSpice testen. Aber irgendwie finde ich diese Transistoren NDP6020P (THT, TO220) oder IRML6402 (SMD, SOT23) nicht. LTspice hat anscheinend keine sehr große Auswahl der Bauelemente. Welche kann man stattdessen nehmen. Es gibt mehrere Zenerdioden aber hauptsächlich mit 12V. Was sind eigentlich die Standard-OPV's. Danke! LG
Hallo, ich habe mal eine Simulation gemacht. Irgendwie bin ich da doch sehr ratlos. Wenn ich mir die Spannung hinter M1, M2, und Q1 anschaue, wieso verringert die sich immer um ca. 1V. Meine Vermutung war dass die Spannungen eigentlich (fast) gleich sein müßten? Wie oben beschrieben, wäre ich auch dankbar für Tipps wie ich zwischen den zwei Signalen abwechseln kann bei größer oder kleiner 12,2V. Was ich herausgefunden habe müßte das über einen 2:1 Multplexer funktionieren. Danke! LG
Einen N-Mosfet kannst du nicht so schalten. Der braucht mehr Spannung, deshalb hast du Spannungsabfall. Du brauchst auch nur 1 Referenzspannung. Schütze deine Operationsverstärker mit Spannungsteilern an den Eingängen. Und stelle dein .asc file zur Verfügung, ausm Bild nachbasteln ist doof.
U2: Irgendeine low power referenzspannung U3, U4: irgendein rail to rail OP R2-R4: schaltschwellen festlegen M1, M2: irgendein ausreichender p-kanal mosfet R8, R9: das, was du schalten willst (ich vermute, daß du etwas in dieser art bauen willst)
Hallo Helge, das Signal sieht schon einmal sehr gut aus. So wie ich mir das vorgestellt habe. Danke! Ich habe jetzt versucht das Signal mit dem NE555 anzuhängen. Entweder wird die Simulation nicht angezeigt oder es erscheinen im Signal mit Mosfets Impulse. Irgendwie komme ich zu keinem Ergebnis. Mein Gedanke war, die Signale A und B mit X durchzusteuern. So wie bei einem Multiplexer. Ist das Signal größer als 12,4V soll A durchgeschalten werden und ist das Signal kleiner als 12,4V soll B durchgeschalten werden. Hast du da noch Tipps wie man das lösen kann? Habe auch nach Multiplexern gesucht aber nicht gefunden. Gibt es eigentlich noch mehrere Bauelemente für LTspice zum Installieren? LG
Such dir hier Ideen raus, mir ist nicht klar was du genau willst. Den 555 kannst du steuern. C runterziehen: Ausgang EIN, reset = Ausgang AUS.
Helge schrieb: > U2: Irgendeine low power referenzspannung > U3, U4: irgendein rail to rail OP Oh Gott, ein Ahnungsloser berät einen Ahnungslosen. Ich fand das zu Anfang noch ganz lustig, inzwischen ist es nur noch peinlich: 5 ICs für so eine Kinderaufgabe und man wundert sich, weshalb Deutschlands Technikniveau nicht mehr ernst genommen wird. Schon vor vier Wochen MaWin schrieb: > Und am 12V Akku kann ein ICL7665 einen Tiefentladeschutz mit Vorwarnung > bauen, denn braucht die Elektronik nicht gleich Milliamperes um den Akku > schon selbst tiefzuentladen Während Helge und namelos noch herumdilettantieren, haben MaWin und Manfred ihre Akkuüberwachung schon so lange fertig, dass sie einen neuen Kasten Bier brauchen.
Manfred schrieb: > 5 ICs für so eine Kinderaufgabe Da muss ich Manfred mal uneingeschränkt zustimmen, das ist echt völlig übertrieben. Neben dem ICL7665 könnte ich noch den TPS3701 empfehlen.
So als einfache Idee, siehe Schaltplan. Die Batterie wird bei ca. 11 V zugeschaltet bzw. darunter abgeschaltet. Simpel mit einem Relais. Die Schaltung funktioniert nur, wenn vorher ein Ladegerät angeschlossen war. Damit die Batterieversorgung eingeschaltet wird. Hatte damit eine primitive 12 V USV realisiert. Funzt heute noch. Wichtig ist, dass auch die Batterie wirklich getrennt wird und auch die Überwachungsschaltung von der Batterie im getrennten Zustand nichts mehr "sieht". Denn, wenn die Last weg ist, steigt die Klemmenspannung wieder an und ein neuerliches zuschalten würde die ganze Schaltung zum schwingen bringen, da der belastete Akku sofort wieder unter 11V geht.
Es sollen ja mehrere Lasten unterschiedlich geschaltet werden. NB: Hysterese ist eingebaut für beide Schaltschwellen.
@Helge Danke für deine Hilfe. @Manfred und Harald: Anstatt nur Threads zu lesen und über andere zu lästern wäre es doch viel besser zu helfen. Da kann jeder etwas dazulernen. Mein Ziel ist dass die Led Lampe bei >12,4V leuchtet. Bei <12,4V alle 15sek. sich 0,7sek. ausschaltet da man mit dieser LED-Lampe nicht dimmen kann. Bei <12,2V soll nur noch der Voltmeter eingeschaltet sein und bei <12V soll sich alles ausschalten. Falls ihr Lösungen habt bin ich immer dankbar. LG
namenlos schrieb: > Anstatt nur Threads zu lesen und über andere zu lästern wäre es doch > viel besser zu helfen. Da kann jeder etwas dazulernen. Die 0.7sec Pulserei ist irgendwo mal mittendrin genannt. Die Kernfunktionalität lässt sich sowohl mit einem ICL7665 als auch mit einem TPS3701 lösen. Diese Vorschläge als reine Lästerei abzutun empfinde ich absolut unangemessen. > Falls ihr Lösungen habt bin ich immer dankbar. > Falls die Vorwarnung mit dem Pulsen der Lichtquelle gut funktionieren soll wirst Du ohne einen uC kaum auskommen, denn die Spannung der Batterie wird bei wechselnder Last nicht unerheblich herumhüpfen. Damit wird die gezeigte Analogschaltung Probleme haben. Wenn schon Simulation dann die Lastverhältnisse und Innenwiderstand des Akkus mit einbauen! Per uC wird man die Batterieentladung vernünftig verfolgen können und sich während der Warnphase nicht mehr von der schwankenden Spannung beeindrucken lassen bis die Spannung entweder unterbrochen wurde oder wieder eine gewisses Ladeniveau erreicht. Alles in allem einfacher als die gezeigte Analogschaltung.
@Harald Danke für die Tipps. Ich werde mir dann einmal anschauen wie ich die Schaltung mit dem uC bauen kann. Andere Frage: Wie kann man am besten analog Bestimmen welches Signal durchkommt. Das Signal X bestimmt bei High dass das Signal A angeschlossen wird und bei Low bestimmt das Signal X dass das Signal B den Fet steuert.
Ich habe jetzt die Schaltung mit uC entworfen. Könnt ihr mal bitte nachschauen ob die Schaltung so funktionieren könnte? Danke! LG
namenlos schrieb: > Könnt ihr mal bitte nachschauen Die Schaltung soll offenbar den Akku möglichst schnell entladen anstat ihn zu überwachen. Unfug, Aufgebenstellung nicht verstanden.
namenlos schrieb: > ob die Schaltung so funktionieren könnte? Natürlich nicht. Du kannst deine PMOS nicht einfach mit den 0V/5V aus dem mit 5V versorgen ATmega8 ansteuern, die wollen eine Ansteuerspannung in Bezug auf ihren Source-Anschluss. Zudem kommen mir die 2 in Reihe ziemlich sinnlos vor. Nur im den Spannungsteiler abzukoppeln ? Da braucht der 7805 mehr Strom. Die ref aus einem Spannungsteiler gewinnen ? Ok, geht, aber wozu ? Auch ist ja noch nichts dimensioniert, kann als passen oder auch nicht.
TL77xxASupply-VoltageSupervisors und warum kein TI TL7712A? https://www.ti.com/lit/ds/symlink/tl7712a.pdf
Joachim B. schrieb: > TL77xxASupply-VoltageSupervisors > und warum kein TI TL7712A? Mit dem 77xx hatte ich zuletzt etwa 1995 zu tun. Ich finde dessen Stromaufnahme nicht mehr zeitgemäß, die für den 7712 bei typ. 2mA liegen dürfte. Laut Datenblatt typ. 1,8mA Versorgung plus 43kOhm am Sensoreingang. Beachten muß man auch, dass der Kumpel bei geringer Versorgung einen undefinierten Ausgang hat, deshalb durfte unser Entwickler damals eine Änderung der Leiterplatte samt Folgekosten bereits fertiger Geräte durchführen.
Danke für die Erklärung. Irgendwie war mir kein Fehler richtig klar. Kannst du mir das bitte genauer erklären? MaWin schrieb: > Du kannst deine PMOS nicht einfach mit den 0V/5V aus dem mit 5V > versorgen ATmega8 ansteuern, die wollen eine Ansteuerspannung in Bezug > auf ihren Source-Anschluss. Wieso kann man den Gate nicht direkt mit den 0V/5V ansteuern. Meinst du es wird ein Widerstand zwischen Gate und Source benötigt? > Zudem kommen mir die 2 in Reihe ziemlich sinnlos vor. Nur im den > Spannungsteiler abzukoppeln ? Da braucht der 7805 mehr Strom. Meinst du hier die zwei PMOS oder die zwei Spannungsteiler? Wieso sind die sinnlos? Wie sollte man es besser machen? > Die ref aus einem Spannungsteiler gewinnen ? Ok, geht, aber wozu ? Auch > ist ja noch nichts dimensioniert, kann als passen oder auch nicht. Meinst du Aref sollt man direkt an die 5V anschließen? Danke!
Manfred schrieb: > Mit dem 77xx hatte ich zuletzt etwa 1995 zu tun. Ich finde dessen > Stromaufnahme nicht mehr zeitgemäß, die für den 7712 bei typ. 2mA liegen > dürfte. stimmt, ich hatte den zuletzt auch am AtariST verwendet, aber 2mA bei einem Bleiakku mit etliche Ah soll stören? Das ist IMHO weniger als dessen typische Selbstentladung!
Ich habe jetzt die Schaltung dimensioniert und bisschen geändert. Ich hoffe es passt jetzt so. Könnt ihr mal bitte drüber schauen. Danke! LG
namenlos schrieb: > Könnt ihr mal bitte drüber schauen. Was frisst denn dein Voltmeter ? Der erste IRF5305 schaltet doch nur das Voltmeter und den Analogspannungsteiler ab. Die 220uA des Spannungsteiler lohnen das Abschalten ja nicht. Aber der 7805 frisst schon 3.5mA für sich alleine, und die 1k Vorwiderstände der BC547 fressen je 43mA, das könnte man mit viel hochohmigeren Widerstanden (270k?) und einem besseren Spannungsregler (HT7350?) umgehen. Und den ATmega8 meistens in sleep lassen, ohne Quartzoszillator, nur vom Watchdog aufgeweckt. Die 100u nach dem 7805 sind auch eher ein Klotz am Bein, und ARef nun an 5V, meinst du ein 7805 ist als Referenzspannung geeignet, warum nicht die interne Referenz des ATmega nutzen (ok, 10% ungenau) oder einen LD2950A-5 nutzen.
Spannungswandler, der Mega8 und die Ansteuerung der beiden MOSFETs kosten ungefähr 40...50 mA. Pro Tag etwa 1 Ah. Wieviele Ah hat der Akku? Ob DEINE Schaltung funktioniert, hab ich jetzt nicht genau betrachtet, aber grundsätzlich wäre ein Aufbau in dieser Art möglich.
Grundsätzlich schafft ich das mit einem Attiny bei 50uA Stromaufnahme.
War deine Idee den Spannungsteiler über den ersten PMOS zu trennen der, dass du damit auch ihn als Verbraucher rausnimmst und Strom sparst oder was das gar keine Absicht? Geht, dann müsstest du halt den ersten PMOS immer mal kurzzeitig ansteuern und warten bis die Spannung stabil ist, damit der ADC dann auch die Spannung messen kann, weil er sonst ja getrennt abgetrennt wurde, wenn deine Batterie unter 12V sinkt. Wie Mawin schon erwähnt hat, lohnt sich das aber bei 200-300µA u. U. nicht. Selbstentladung Bleiakku soll so bei 2 bi 5% / Monate liegen (zyklenfesten nehmen!). Kommt halt drauf an, welche Größe dein Akku hat. Bei 2Ah Akku: 2Ah/ (24h * 30) * (0,05 oder 0,02) = 3mA * (0,05 oder 0,02) (Worst case 5%: 140µA, Best case 2%: 55µA) Bei 150Ah Akku: 150Ah/ (24h * 30) = 200mA (Worst case 5%: 10,4mA, Best case 2%: 4,2mA) Beim kleinen Akku lohnt es sich, beim großen nicht. MaWin schrieb: > und die 1k > Vorwiderstände der BC547 fressen je 43mA Wie kommst du auf 43mA? (5V - 0,7V) / 1k Ohm = 4,3mA.
https://www.amazon.de/Greluma-Voltmeter-Wasserdichtes-Manometer-Drahtklemmen/dp/B08S39527T/ref=sr_1_33_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=25Q7RHFQP0VNP&dchild=1&keywords=12v+voltmeter&qid=1616246821&sprefix=12v+voltm%2Caps%2C219&sr=8-33-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExVFlEM0I2NkVKNlUyJmVuY3J5cHRlZElkPUEwMjQ0NTU3MldVU0NKQ1VYSE43TyZlbmNyeXB0ZWRBZElkPUExMDEyMzA2MUtTN1NIMDZDNjdVViZ3aWRnZXROYW1lPXNwX210ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU= MaWin schrieb: > Was frisst denn dein Voltmeter ? Ich dachte an diesen Voltmeter. Ein Kunde meinte dass es einen Eigenverbrauch von 43mA hat. https://www.amazon.de/Greluma-Voltmeter-Wasserdichtes-Manometer-Drahtklemmen/dp/B08S39527T/ref=sr_1_33_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=25Q7RHFQP0VNP&dchild=1&keywords=12v+voltmeter&qid=1616246821&sprefix=12v+voltm%2Caps%2C219&sr=8-33-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExVFlEM0I2NkVKNlUyJmVuY3J5cHRlZElkPUEwMjQ0NTU3MldVU0NKQ1VYSE43TyZlbmNyeXB0ZWRBZElkPUExMDEyMzA2MUtTN1NIMDZDNjdVViZ3aWRnZXROYW1lPXNwX210ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU= > Der erste IRF5305 schaltet doch nur das Voltmeter und den > Analogspannungsteiler ab. > > Die 220uA des Spannungsteiler lohnen das Abschalten ja nicht. Es soll möglichst viel abschalten. Einerseits dient es als Warnsystem dass der Akku schon an der Grenze. Das Warnsystem soll im Keller für eine Beleuchtung dienen. Es kann schon passieren dass ich vielleicht 1 Monat nicht in diesen Raum gehe. Es dient auch als Schutz wenn einmal das Licht vergessen wird. > und ARef nun an 5V, meinst du ein 7805 ist als Referenzspannung geeignet Meinst du dass der 7805 zu sehr schwankt ? Kuno schrieb: > Wieviele Ah hat der Akku? Ich bekomme eine Batterie aus einem VW Tiguan. Haben angeblich ca. 110Ah. Timo N. schrieb: > War deine Idee den Spannungsteiler über den ersten PMOS zu trennen der, > dass du damit auch ihn als Verbraucher rausnimmst und Strom sparst oder > was das gar keine Absicht? Genau das war die Absicht. Wenn es an der Grenze ist soll es nach Möglichkeit alle Verbraucher rausnehmen. Es könnte vielleicht mehrere Wochen der Raum nicht betreten werden. > Geht, dann müsstest du halt den ersten PMOS immer mal kurzzeitig > ansteuern und warten bis die Spannung stabil ist, damit der ADC dann > auch die Spannung messen kann, weil er sonst ja getrennt abgetrennt > wurde, wenn deine Batterie unter 12V sinkt. Wie Mawin schon erwähnt > hat, lohnt sich das aber bei 200-300µA u. U. nicht. Solange der Akku nicht aufgeladen wird soll der erste PMOS nicht durchschalten und möglichst alle Verbraucher ausgeschalten bleiben. LG
namenlos schrieb: > https://www.amazon.de/Greluma-Voltmeter-Wasserdichtes-Manometer-Drahtklemmen/dp/B08S39527T/ref=sr_1_33_sspa.......... ich fasse es immer noch nicht, wer hat denn ein Interesse SPY Links weiterzugeben, als Link hätte https://www.amazon.de/Greluma-Voltmeter-Wasserdichtes-Manometer-Drahtklemmen/dp/B08S39527T völlig genügt! alle nutzen Computer und keiner interessiert sich für Datenmißbrauch und Spy Links!
namenlos schrieb: > Ich bekomme eine Batterie aus einem VW Tiguan. Haben angeblich ca. > 110Ah. Ein Starterakku ? Den willst du bis 11.3V entladen ? Kann man machen, genau 1 mal. Starterakkus wollen immer voll sein. Nicht ohne Grund gibt es Solarakkus und Traktionsbatterien und nicht ohne Grund sind die deutlich teurer. Kennt sich heute eigentlich niemand mehr aus ?
Ich habe jetzt noch einmal die Schaltung korrigiert ich hoffe sie passt jetzt. Ich habe die Transistoren als BC547 geändert, die Widerstände 150K, den MC7805CTG eingefügt-hat einen Ruhestrom von 3,2mA, den 100uF nach dem Spannungsregler entfernt, Aref mit 100uF gegen Masse für die interne Referenz von 2,56V und den Spannungsteiler bei ADCO geändert. Ebenfalls ist der Quarz weg. Kann man die Werte so bestimmen oder ist das zu ungenau wenn man REFS 1:0 auf 1 setzt: Ua/Ue = R1/(R1+R2) 2,56/14 = 20k /(20k + 90k) MaWin schrieb: > Den willst du bis 11.3V entladen ? Nein, das war am Anfang wo ich mir die Schaltung überlegt habe. Erst später habe ich diesen Starterakku bekommen. Bei <12,7 soll die Lampe blinken und bei <12,5 soll der zweite Mosfet abschalten. Ich hoffe die Schaltung passt jetzt so! Danke!
namenlos schrieb: > Ich habe jetzt noch einmal die Schaltung korrigiert Gebe endlich auf, besorge Dir ein Kochbuch und widme Dich Dingen, die Du besser kannst. Wenn das Kochbuch nicht gefällt, vielleicht Gartenbau oder Holzpferdchen schnitzen. Wenn es unbedingt Technik sein muß, bereitet auch die Restauration alter Motorräder Freude. Anders gesagt: Deine Schaltungsansätze, soweit sie überhaupt funktionieren, verbrauchen allesamt erheblich zu viel Strom und bringen mehr Schaden als Nutzen. Wer ist so doof, an einer Batterie einen 7805 zu verwenden, wenn es doch mindestens Faktor 100 verbrauchsärmere Spannungsregler gibt? Ich selbst habe eine Akkuüberwachung mit einem AT328 gebaut, die dank SleepModus und sinvoller Peripherie um 30µA liegt. Für Dein Szenario wurden andere Möglichkeiten genannt, die noch weniger Verbrauch haben könnten, ignoriere die weiterhin, alles oberhalb 100µA Eigenverbrauch ist eine schlechte Schaltung.
Welchen Spannungsregler bzw. Händler hast du verwendet? Ich finde keinen Spannungsregler mit diesen Eigenschaften: Durchsteckmontage Ruhestrom: <100uA Ausgang: 5V Eingang: >12V
namenlos schrieb: > Ich finde keinen Spannungsregler mit diesen Eigenschaften: > > Durchsteckmontage > Ruhestrom: <100uA > Ausgang: 5V > Eingang: >12V MCP1702
Danke. Ich habe jetzt bei der Schaltung die Widerstände auf 270K erhöht, den Spannungsregler MC1702 mit den 1uF Kondensatoren getauscht und die Widerstände bei ADC0 auf 50k und 220K erhöht. Wenn die Batterie voll ist sollte am ADC0 ca. 2,56 Volt sein. Passt eigentlich der Kondensator mit den 14pF und dem Widerstand mit 68K am Aref gegen Masse bei der internen Referenz? Oder gehört der Aref doch direkt an Masse oder Versorgung? In einem Shop konnte ich den MC1702 mit der Suchfunktion auch finden aber war nicht erhältlich. Falls man wieder suchen muss, kennt ihr noch empfehlenswerte Shops außer: Conrad RS Farnell Reichelt Bzw. für private Kunden wo kauft ihr eure Bauelemente? LG
namenlos schrieb: > In einem Shop konnte ich den MC1702 mit der Suchfunktion auch finden > aber war nicht erhältlich Es ist halt besser, wenn man mit MCP1702 sucht. namenlos schrieb: > wo kauft ihr eure Bauelemente? TME, Mouser, LCSC und, ähm, Pollin.
namenlos schrieb: > kennt ihr noch empfehlenswerte Shops DIese wurden hier öfters empfohlen: tme.eu lcsc.com
Sind doch noch einige andere Shops wenn man etwas sucht. Der Aref gehört doch mit einem 100nF Kondensator gegen Masse.
MaWin schrieb: > Es ist halt besser, wenn man mit MCP1702 sucht. Der MCP1702 ist an 12V-Blei keine gute Wahl, Spannungsbereich bis 13,2V Eingang, absolutes Maximum 14,5 Volt. Könnte beim Laden gerade noch gut gehen. Die bessere Wahl ist MCP1703.
MaWin schrieb: > namenlos schrieb: > >> In einem Shop konnte ich den MC1702 mit der Suchfunktion auch finden >> aber war nicht erhältlich > > Es ist halt besser, wenn man mit MCP1702 sucht. > namenlos schrieb: > >> wo kauft ihr eure Bauelemente? > > TME, Mouser, LCSC und, ähm, Pollin. Wieder mal ein Psychopath der seinen eigenen Namen nicht kennt
Hier hat sich ja ganz schön was getan! Grundsätzlich geht das ja alles in die richtige Richtung! Vom Bauteile-Aufwand ist das zwar schon genau so viel wie der analoge Ansatz. Aber es wird besser und kontrollierbarer funktionieren. Ein paar Vorschläge: - Wie wäre es mit einem fertigen Board wie dem Digispark ATTiny85 oder Wattuino? Beim Digispark müsste man den LDO gegen einen mit weniger Stromverbrauch tauschen, eben wie Wolfgang vorschlug den MCP1703. Leider ist auf dem Digispark ein DPACK Footprint, da müsste man etwas herumferkeln, da es den MCP nicht als DPACK gibt. Programmierung schön bequem per USB. - Die beiden MOSFETs: da gibt es auch etwas im SO8 (meinetwegen auch DIL8) als Doppelpack. Spart vlt. etwas Platz / Verdrahtungsaufwand. - Für die Transistoren gibt es Digitaltransistoren, sparst Du dir die Vorwiderstände. MUN2211, DTC114 oder PDTD123YT. Muss aber alles nicht unbedingt sein.
So etwas hier wäre doch super geeignet: https://www.makershop.de/plattformen/arduino/attiny85-micro-usb/ Passendes Package, um da einen low current MCP1703 draufzusetzen Arduino hätte auch den Vorteil, dass Du dich auf die Kernaufgabe konzentrieren kannst und dich kaum mit ADC usw. auseinandersetzen muss. Programm dürfte in ca. 20 Zeilen erledigt sein.
Harald schrieb: > Hier hat sich ja ganz schön was getan! > Grundsätzlich geht das ja alles in die richtige Richtung! Wenn die "richtige Richtung" lautet, die Anzahl der Bauelemente zu maximieren und möglichst viel Strom zu brauchen: Ja. > - Für die Transistoren gibt es Digitaltransistoren, sparst Du dir die > Vorwiderstände. MUN2211, DTC114 oder PDTD123YT. In dem Sinne wäre der MUN2211T1 sinnvoll, weil der mit intern 10k an der Basis unnötig viel Strom braucht. > - Wie wäre es mit einem fertigen Board wie dem Digispark ATTiny85 oder > Wattuino? Beim Digispark müsste man den LDO gegen einen mit weniger > Stromverbrauch tauschen, Wenn es unbedingt ein µC werden muß, halte ich die Wahl des Atmega8 mit internem Oszillator für sinnvoll. Kommt drauf an, wie man bauen will und kann, natürlich käme auch ein modifiziertes Arduino-Board in Betracht.
Manfred schrieb: > Wenn die "richtige Richtung" lautet, die Anzahl der Bauelemente zu > maximieren und möglichst viel Strom zu brauchen: Ja. Schimpfe doch nicht immer ;-) Deswegen steht da ja auch das Wörtchen „grundsätzlich“. Manfred schrieb: > Wenn es unbedingt ein µC werden muß, halte ich die Wahl des Atmega8 mit > internem Oszillator für sinnvoll. Kommt drauf an, wie man bauen will und > kann, natürlich käme auch ein modifiziertes Arduino-Board in Betracht. Arduino geht halt schnell. Auch wenn Arduino in meinen Entwicklungen normalerweise nicht auftaucht - für die schnelle Testschaltung ist es doch ideal. Ich gehe mal auch davon aus, dass der TE keine fertigen Designs herumliegen hat, die er mal eben anpassen könnte. Insofern könnte es sein (muss nicht so sein), dass er bei einem ATMega8 mehr Entwicklungsaufwand reinstecken muss.
Und? Wie geht es hier weiter? Wie groß ist eigentlich der Akku? Wenn das ein paar Amperestunden sind dann kommt es meiner Meinung auch nicht auf die letzten 10uA an. Grundsätzlich habe ich zwar den gleichen Anspruch wie Manfred das auf wenige uA runterzubekommen, es gibt aber einer paar Ausnahmen bzw. besser gesagt legitime Ausreden. 1. Du hast noch nicht viel Erfahrung mit solchen Design gesammelt. 2. Der Akku ist entsprechend groß 3. Das System läuft nicht Gefahr, über einen langen Zeitraum (Wochen, Monate) nicht mehr beachtet zu werden. Angenommen, die Schaltung braucht im Standby 1mA und die Restenergie ist noch 500mAh, dann hätte man immerhin noch 3 Wochen bis zur notwendigen Endabschaltung. Ohne viel Anstrengung sind 100uA schnell zu realisieren, dann sind es schon 7 Monate.
Hallo ich habe mir gerade das Atmel Studio installiert. Das läuft ja jetzt über Microchip. Dieser Akku hat 68Ah. Mal schauen wie lange er bei dieser Schaltung hält :-)) Bei Punkt 1 muss ich dir zustimmen. Bei Punkt drei, es kann passieren dass der Akku Wochen bzw. 1, 2 Monate nicht beachtet wird. Wie ich die Spannung und den ADC einstelle muss ich mir noch überlegen.
Harald schrieb: > Grundsätzlich habe ich zwar den gleichen Anspruch > wie Manfred das auf wenige uA runterzubekommen, Ich akzeptiere sogar zweistellige µA: Das Jahr hat 8760 Stunden, bei 30µA wären das 265 mAh / Jahr, dsa geht in Ordnung. > es gibt aber einer paar > Ausnahmen bzw. besser gesagt legitime Ausreden. Ausnahme, wenn der Akku groß genug ist. Ausreden sind nicht akzeptabel, weil es überschaubar einfache Lösungen gibt. > 1. Du hast noch nicht viel Erfahrung mit solchen Design gesammelt. > 2. Der Akku ist entsprechend groß > 3. Das System läuft nicht Gefahr, über einen langen Zeitraum (Wochen, > Monate) nicht mehr beachtet zu werden. > > Angenommen, die Schaltung braucht im Standby 1mA und die Restenergie ist > noch 500mAh, dann hätte man immerhin noch 3 Wochen bis zur notwendigen > Endabschaltung. Ohne viel Anstrengung sind 100uA schnell zu realisieren, > dann sind es schon 7 Monate. Das Datenblatt des ATMega8 sagt "typ. 3,6mA", grob über den Daumen wird sein Aufbau 4..5 mA brauchen. namenlos schrieb: > Mal schauen wie lange er bei dieser Schaltung hält :-)) "Mal schauen" ist ein fehlerhafter Ansatz. Wenn ich es kann, kalkuliere ich theoretisch den Verbrauch. Wenn ich es nicht kann, mache ich einen Testaufbau, messe den Strom und rechne. Warum auch immer Du es nicht hören willst: Mit dem ICL7665 bekommt man die Akkuüberwachung klaglos unter 10µA, ein µC macht da wenig Sinn.
Manfred schrieb: > Warum auch immer Du es nicht hören willst: Mit dem ICL7665 bekommt man > die Akkuüberwachung klaglos unter 10µA, ein µC macht da wenig Sinn. Ich wollte es nicht hören, da ein uC empfohlen wurde und ich vermutet habe dass das PWM Signal nicht funktioniert bzw. ich nicht weiß wie man es beschalten muss. Am Anfang wollte ich es Analog machen mit dem NE555. Das wurde auch nicht empfohlen - vermutlich zu viele Bauteile.
So was macht man viel einfacher mit einem uC, zb ein AtTiny.
Mit uC kann man auch noch andere Dinge machen: z.B. Auto-power off nach z.B. einer Stunde, falls man vergißt das Licht abzudrehen. Manfred schrieb: > Mit dem ICL7665 bekommt man > die Akkuüberwachung klaglos unter 10µA, Mit einem uC kann man mit 10uA auch noch zusätzlich ein LCD für die Spannungsanzeige betreiben. siehe: Batteriewächter Gruß Anja
Piter K. schrieb: > So was macht man viel einfacher mit einem uC, zb ein AtTiny. An 12V aha, und Abschalten kann dein Attiny die Lampe mit 1A Nennstrom und 10A Spitzenstron, toller Attiny, oder einfach nur Dummheit einen Komparator gegen einen uC zu ersetzen.
Piter K. schrieb: > So was macht man viel einfacher mit einem uC, zb ein AtTiny. Ich habe mir den AtTiny angeschaut. Da müßte ich wieder die komplete Schaltung umbauen. Ich glaube es ist einfacher die Schaltung beim Atmega 8 zu belassen. Die paar Cent die man ersparen kann zahlt sich glaube ich nicht aus. Die Frage die sich bei mir ergeben hat: Wenn ich einen AtTiny mit 8 Pins verwende, wie muss man den AtTiny verschalten damit ich parallel flashen kann und die PIN's für Ausgang und ADC verwenden kann. MaWin schrieb: > An 12V aha, und Abschalten kann dein Attiny die Lampe mit 1A Nennstrom > und 10A Spitzenstron, toller Attiny, oder einfach nur Dummheit einen > Komparator gegen einen uC zu ersetzen. Wie ist dann dein Tipp den ICL7665 zu verwenden dass es auch ein Vorwarnsystem beim Abschalten hat mit dem PWM Signal.
MaWin schrieb: > Piter K. schrieb: >> So was macht man viel einfacher mit einem uC, zb ein AtTiny. > > An 12V aha, und Abschalten kann dein Attiny die Lampe mit 1A Nennstrom > und 10A Spitzenstron, toller Attiny, oder einfach nur Dummheit einen > Komparator gegen einen uC zu ersetzen. Hallo MaWin, Hau doch nicht gleich so drauf, im Laufe des Threads wurden ein paar verschiedene Ideen miteinander vermischt, daher ergab sich die Idee mit dem uC. Natürlich kann der uC das nicht direkt schalten, aber ich denke so war das auch nicht gemeint. Wir brauchen hier doch nicht jede vereinfachte Begriffsdarstellung (gemeint war sicherlich uC mit Versorgung und Endstufe) an den Pranger stellen. Der Vorteil der uC Schaltung gegenüber einem einfachen Komparator ist die kontrollierbare Messung der Durchschittsspannung des Akkus (58Ah war erst sehr spät klar), wenn die Spannung am Ende der Ladung durch das Ein- und Ausschalten der Last pendelt —> der TE wünscht sich ein spezifisches Blinken zur Vorwarnung bevor die Endabschaltung erfolgt. Mach das mal nur mit einem Komparator.
namenlos schrieb: > Wie ist dann dein Tipp den ICL7665 zu verwenden dass es auch ein > Vorwarnsystem beim Abschalten hat mit dem PWM Signal. Der ICL hat einen zweitem Komparator, kann also 2 Spannungsstufen überwachen. Ausserdem kann er gegenkoppeln, also blinken, siehe https://dse-faq.elektronik-kompendium.de/dse-faq.htm
1 | Diese Schaltung signalisiert das 30 Sekunden vor dem Abschalten: |
2 | |
3 | +------+------------------------------+----+-- +Bat |
4 | | | | | |
5 | | | +--100k------+ ICL7665 | | |
6 | R23 +------+ | | +------+ 10k | |
7 | +--|HYST2 | | +-22uF-+-|HYST1 | | |S |
8 | R22 | OUT2|--+-1M--+ | OUT1|--+---|I P-Kanal MOSFET |
9 | +--|SET2 | | +-10k----|SET1 | | |
10 | R21 +------+ | +------+ +-- Last |
11 | | | +-------------------------------- Signal power off in 30 sec |
12 | +------+-------------------------------------- GND |
13 | Hier lässt der ICL7665 eine LED mit 1mA und 1% Tastverhältnis blitzen wenn die Spannung unter 4.5V sinkt. Stromaufnahme 4uA. |
14 | |
15 | +Bat --+------+-----15M--------+ |
16 | | | | |
17 | 100k +-------+ | |
18 | | | OUT1|--150k------+ |
19 | +--|HYST2 | | |
20 | | | SET1|------------+ |
21 | 3M2 |ICL7665| 1uF MKS2 |
22 | | | HYST1|--2k2--|>|--+ |
23 | +--|SET2 | LED | |
24 | | | OUT2|--1k--------+ |
25 | 1M3 +-------+ |
26 | | | |
27 | GND ---+------+ |
Beides kombinieren. Harald A. schrieb: > Der Vorteil der uC Schaltung gegenüber einem einfachen Komparator ist > die kontrollierbare Messung der Durchschittsspannung des Akkus (58Ah war > erst sehr spät klar), wenn die Spannung am Ende der Ladung durch das > Ein- und Ausschalten der Last pendelt —> der TE wünscht sich ein > spezifisches Blinken zur Vorwarnung bevor die Endabschaltung erfolgt. > Mach das mal nur mit einem Komparator. Elko an den Spannungsteiler bildet Mittelwert.
MaWin schrieb: > Piter K. schrieb: >> So was macht man viel einfacher mit einem uC, zb ein AtTiny. > > An 12V aha, und Abschalten kann dein Attiny die Lampe mit 1A Nennstrom > und 10A Spitzenstron, toller Attiny, oder einfach nur Dummheit einen > Komparator gegen einen uC zu ersetzen. MaWin, ist das nicht der, mit dem MegaLOL.Faktor 5.0? P. s. Du solltest dich einmal mit µCs auseinandersetzen, dann wirst du u. U. sogar von deinen seltsamen "Schaltplänen" geheilt. Apropos geheilt: ...
MaWin schrieb: > Der ICL hat einen zweitem Komparator, kann also 2 Spannungsstufen > überwachen. > Ausserdem kann er gegenkoppeln, also blinken, siehe > https://dse-faq.elektronik-kompendium.de/dse-faq.htm Schöne Trickschaltung, Respekt! Es ist auch immer wieder interessant zu sehen, was einige Leute z.B. aus einem NE555 so alles rausholen. Alles schön und gut. Aber ich bleibe dabei, in 2021 kann man für die Aufgabe auch einen uC nehmen, auch wenn das den Verfechtern der echten Analogtechnik nicht schmeckt. Es sind schon uCs für weniger Effekt produziert worden. Es ist ja so, dass man sich für solche Trickschaltungen doch schon sehr auskennen muss, was beim TE offensichtlich nicht gegeben ist. In Software kann man dieses Ziel dann schon hinwurschteln (ja, genau, hinwurschteln). Außerdem kann man es ohne großes Hardware-Redesign GENAU so gestalten, wie man es haben möchte. Bevor wieder das Argument kommt, dass man sich dann ein anderes Hobby suchen soll: sehe ich nicht so, zumindest meine Meinung.
namenlos schrieb: > Die Frage die sich bei mir ergeben hat: > Wenn ich einen AtTiny mit 8 Pins verwende, wie muss man den AtTiny > verschalten damit ich parallel flashen kann und die PIN's für Ausgang > und ADC verwenden kann. http://ww1.microchip.com/downloads/en/appnotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf Kapitel 4 Der Programmer ist auf allen Pins hochohmig, solange er inaktiv ist.
Hier ist einmal mein erster Code: Für Verbesserungen bin ich immer dankbar. [c][/c#include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> volatile unsigned char zaehler; uint16_t adc_read() { uint16_t adc_measurement; ADCSRA |= (1 << ADSC); //Startet Konvertierung while(ADCSRA & (1 << ADSC)){ }; //Wartet bis Konvertierung fertig ist adc_measurement = ADCL; //Speichert Register in adc_value adc_measurement = (ADCH << 8) + adc_measurement; return adc_measurement; } ISR (TIMER1_COMPA_vect) { zaehler++; } int main(void) { /* Replace with your application code */ DDRD = (1 << DDD1) | (1 <<DDD0); PORTD = (1 << PD1) | (1 << PD0); ADMUX |= (1 << REFS1) | (1 << REFS0); ADMUX &= ~((0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (0 << MUX0)); ADCSRA |= (1 << ADEN) | (1 << ADSC) | (1 << ADFR) | (1 << ADPS1) | (1 << ADPS0); ADCSRA &= ~(0 << ADPS2); TCCR1A &= ~((1 << WGM11) | (1 << WGM10)); //CTC Mode TCCR1B |= (1 << WGM12) | (1 << CS12) | (1 << CS10); //1024 Prescaler TCCR1B &= ~((1 << WGM13) | (1 << CS11)); TIMSK |= (1 << OCIE1A); OCR1A = 250; sei(); uint16_t adc_value = 0; int zustand = 0; while (1) { adc_value = adc_read(); if(adc_value >= 940) { if(zustand == 0) { PORTD = (1 << PD1) | (1 << PD0); } } else if(adc_value < 940) { PORTD |= (1 << PD0); if(zustand == 0) { zustand = 1; } if(zustand == 1) { if (zaehler == 60) { PORTD &= ~(1 << PD1); } else if (zaehler == 61) { PORTD |= (1 << PD1); } } } else if (adc_value < 926) { zustand = 2; PORTD &= ~((1 << PD0) | (1 << PD0)); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); } else { PORTD &= ~((1 << PD0) | (1 << PD0)); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); } } }]
Hier der Code noch einmal:
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | #include <avr/sleep.h> |
4 | |
5 | volatile unsigned char zaehler; |
6 | |
7 | uint16_t adc_read() |
8 | {
|
9 | uint16_t adc_measurement; |
10 | |
11 | ADCSRA |= (1 << ADSC); //Startet Konvertierung |
12 | while(ADCSRA & (1 << ADSC)){ |
13 | }; //Wartet bis Konvertierung fertig ist |
14 | |
15 | adc_measurement = ADCL; //Speichert Register in adc_value |
16 | adc_measurement = (ADCH << 8) + adc_measurement; |
17 | |
18 | return adc_measurement; |
19 | }
|
20 | |
21 | ISR (TIMER1_COMPA_vect) |
22 | {
|
23 | zaehler++; |
24 | }
|
25 | |
26 | |
27 | int main(void) |
28 | {
|
29 | /* Replace with your application code */
|
30 | |
31 | DDRD = (1 << DDD1) | (1 <<DDD0); |
32 | PORTD = (1 << PD1) | (1 << PD0); |
33 | |
34 | ADMUX |= (1 << REFS1) | (1 << REFS0); |
35 | ADMUX &= ~((0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (0 << MUX0)); |
36 | ADCSRA |= (1 << ADEN) | (1 << ADSC) | (1 << ADFR) | (1 << ADPS1) | (1 << ADPS0); |
37 | ADCSRA &= ~(0 << ADPS2); |
38 | |
39 | TCCR1A &= ~((1 << WGM11) | (1 << WGM10)); //CTC Mode |
40 | TCCR1B |= (1 << WGM12) | (1 << CS12) | (1 << CS10); //1024 Prescaler |
41 | TCCR1B &= ~((1 << WGM13) | (1 << CS11)); |
42 | TIMSK |= (1 << OCIE1A); |
43 | |
44 | OCR1A = 250; |
45 | |
46 | sei(); |
47 | |
48 | |
49 | |
50 | |
51 | uint16_t adc_value = 0; |
52 | int zustand = 0; |
53 | |
54 | |
55 | while (1) |
56 | {
|
57 | adc_value = adc_read(); |
58 | |
59 | if(adc_value >= 940) |
60 | {
|
61 | if(zustand == 0) |
62 | {
|
63 | PORTD = (1 << PD1) | (1 << PD0); |
64 | }
|
65 | }
|
66 | else if(adc_value < 940) |
67 | {
|
68 | PORTD |= (1 << PD0); |
69 | |
70 | if(zustand == 0) |
71 | {
|
72 | zustand = 1; |
73 | }
|
74 | |
75 | if(zustand == 1) |
76 | {
|
77 | if (zaehler == 60) |
78 | {
|
79 | PORTD &= ~(1 << PD1); |
80 | }
|
81 | else if (zaehler == 61) |
82 | {
|
83 | PORTD |= (1 << PD1); |
84 | }
|
85 | }
|
86 | }
|
87 | else if (adc_value < 926) |
88 | {
|
89 | zustand = 2; |
90 | PORTD &= ~((1 << PD0) | (1 << PD0)); |
91 | set_sleep_mode(SLEEP_MODE_PWR_DOWN); |
92 | sleep_mode(); |
93 | }
|
94 | else
|
95 | {
|
96 | PORTD &= ~((1 << PD0) | (1 << PD0)); |
97 | set_sleep_mode(SLEEP_MODE_PWR_DOWN); |
98 | sleep_mode(); |
99 | }
|
100 | |
101 | }
|
102 | }
|
Harald schrieb: > sehe ich nicht so, zumindest meine *Meinung* Beide Varianten sind "legitim". "Sich analog gut auszukennen" ist vielen µC-Spezis genausowenig gegeben wie "sich digital gut auszukennen" vielen Analogspezis. Das ist so, und wird vermutlich auch so bleiben. Ist "normal" und "ok" - trotz mancher (relativ weniger) Leute, die beides beherrschen. Genanntes sehe ich persönlich als glasklare Tatsache(n) an. Übrigens stimme ich dem "Hinwurschtel-Argument" vollends zu. S. Kurtmann schrieb: > MaWin, ist das nicht der, mit dem MegaLOL.Faktor 5.0? Und Du warst/bist dann, bitte, wer (und mit was)? :) > P. s. Du solltest dich einmal mit µCs auseinandersetzen, dann wirst du > u. U. sogar von deinen seltsamen "Schaltplänen" geheilt. Apropos > geheilt: ... (Na ja, die Pläne sind nicht jedermanns Sache - ok.) Also ein Psycho der Doktorlogie, oder wie das heißt... Du fühlst Dich doch noch überlegener als MaWin, gib's zu. Im Gegensatz zu Dir hat er schon o(e)ft(er) nachgewiesen, zumindest oberhalb des Durchschnitts hier zu liegen, sage ich mal. Du als (scheinbarer) Neuling tatest hier jedoch bis jetzt nur wenig: Dir einzubilden - witzig zu sein - "besser" zu sein - geistig gesund zu sein (sind weniger, als man denkt) - vor allem: beurteilen zu können, wer es (/nicht) ist und gleich alles auf einmal (nicht schlecht, wirklich) - unter völliger Auslassung jedes Sachbezugs zum Thema hier. Das ist, fürchte ich, noch deutlich weniger gern gesehen. (Und nicht ganz ohne Gründe. Denk doch mal darüber nach.) So erreicht man weder hier, noch woanders, besonders viel. Also mal unter (übertrieben Gutmenschen-artiger) Vorgabe, Du habest eventuell "die besten Absichten"... _näääh!_ ;)
Kann mir vielleicht jemand erklären wieso das Programm beim Debuggen in dieser Zeile hängen bleibt: ADCSRA |= (1 << ADSC); //Startet Konvertierung while(ADCSRA & (1 << ADSC)){ } Es schaltet ADSC nie auf 0. Bin für Tipps dankbar bzw. schreibt ihr die Programme in ein anderes Unterforum?
namenlos schrieb: > Kann mir vielleicht jemand erklären wieso das Programm beim Debuggen in > dieser Zeile hängen bleibt: Ich denke, du musst den ADC konfigurieren: - Referenzquelle - Eingangs-Multiplexer - Prescaler einstellen - ADC einschalten
Hallo Stefan, danke für den Tipp. Der ADC war konfiguriert. Das Probem war dass beim ADCSRA Register das ADSC - ADC Start Conversion und ADFR - ADC Free Running Select auf 1 waren. Nachdem ich ADFR auf 0 gesetzt habe, hat es funktioniert. Ist dir klar wo die Unterschiede sind zwischen ADSC und ADFR. So ganz ist mir noch nicht klar was genau gemeint ist mit Conversion Mode und Free Running Select? Kann man eigentlich im Mcrochip Studio die vergangene Zeit ablesen bis zum nächsten Breakpoint?
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | #include <avr/sleep.h> |
4 | |
5 | volatile unsigned char zaehler; |
6 | |
7 | uint16_t adc_read() |
8 | {
|
9 | uint16_t adc_measurement = 0; |
10 | |
11 | ADCSRA |= (1 << ADSC); //Startet Konvertierung |
12 | while(ADCSRA & (1 << ADSC)){ |
13 | } //Wartet bis Konvertierung fertig ist |
14 | |
15 | adc_measurement = ADCL; //Speichert Register in adc_value |
16 | adc_measurement = (ADCH << 8) + adc_measurement; |
17 | |
18 | return adc_measurement; |
19 | }
|
20 | |
21 | ISR (TIMER1_COMPA_vect) |
22 | {
|
23 | zaehler++; |
24 | }
|
25 | |
26 | |
27 | int main(void) |
28 | {
|
29 | /* Replace with your application code */
|
30 | |
31 | DDRD = (1 << DDD1) | (1 <<DDD0); |
32 | PORTD = (1 << PD1) | (1 << PD0); |
33 | |
34 | ADMUX |= (1 << REFS1) | (1 << REFS0); |
35 | ADMUX &= ~((1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (1 << MUX0)); |
36 | ADCSRA |= (1 << ADEN) | (1 << ADSC) | (1 << ADPS1) | (1 << ADPS0); |
37 | ADCSRA &= ~(1 << ADPS2); |
38 | |
39 | TCCR1A &= ~((1 << WGM11) | (1 << WGM10)); //CTC Mode |
40 | TCCR1B |= (1 << WGM12) | (1 << CS12) | (1 << CS10); //1024 Prescaler |
41 | TCCR1B &= ~((1 << WGM13) | (1 << CS11)); |
42 | TIMSK |= (1 << OCIE1A); |
43 | |
44 | OCR1A = 250; |
45 | |
46 | sei(); |
47 | |
48 | |
49 | |
50 | |
51 | uint16_t adc_value = 0; |
52 | int zustand = 0; |
53 | |
54 | |
55 | while (1) |
56 | {
|
57 | adc_value = adc_read(); |
58 | |
59 | if(adc_value >= 940) |
60 | {
|
61 | if(zustand == 0) |
62 | {
|
63 | PORTD = (1 << PD1) | (1 << PD0); |
64 | }
|
65 | }
|
66 | else if((adc_value <= 939) && (adc_value >= 926)) |
67 | {
|
68 | PORTD |= (1 << PD0); |
69 | |
70 | if(zustand == 0) |
71 | {
|
72 | zustand = 1; |
73 | }
|
74 | |
75 | if(zustand == 1) |
76 | {
|
77 | if (zaehler == 60) |
78 | {
|
79 | PORTD &= ~(1 << PD1); |
80 | }
|
81 | else if (zaehler == 61) |
82 | {
|
83 | zaehler = 0; |
84 | PORTD |= (1 << PD1); |
85 | }
|
86 | }
|
87 | }
|
88 | else if (adc_value <= 925) |
89 | {
|
90 | zustand = 2; |
91 | PORTD &= ~((1 << PD0) | (1 << PD0)); |
92 | set_sleep_mode(SLEEP_MODE_PWR_DOWN); |
93 | sleep_mode(); |
94 | }
|
95 | else
|
96 | {
|
97 | PORTD &= ~((1 << PD0) | (1 << PD0)); |
98 | set_sleep_mode(SLEEP_MODE_PWR_DOWN); |
99 | sleep_mode(); |
100 | }
|
101 | }
|
102 | }
|
namenlos schrieb: > Ist dir klar wo die Unterschiede sind zwischen ADSC und ADFR. So ganz > ist mir noch nicht klar was genau gemeint ist mit Conversion Mode und > Free Running Select? Bei Single Conversion musst du halt jede AD-Wandlung "manuell" durch Setzen von ADSC anstoßen. Im Free Running Mode wird ab dem Setzen von ADSC einfach (im Hintergrund) so oft gewandelt, bis du das stoppst. Das heißt es wird nachdem eine Wandlung abgeschlossen ist, gleich die nächste gestartet usw. So bekommt man eben automatisch immer den aktuellen Wert am AD-Eingang. Scheinbar wird ADSC in diesem Mode nicht zurückgesetzt. Möglich, das dafür ADIF da ist. Das wird nach einer Wandlung gesetzt, aber du musst es dann wieder manuell zurücksetzen. Ich denke die Power Consumption spricht gegen Verwendung des Free Running Mode in deinem Fall. Ist ja auch unnötig, da du ja keine Echtzeitdaten brauchst.
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.