Hallo allerseits,
ich habe bereits vor einigen Tagen etwas zur zeitlichen Ansteuerung
einer Pumpe gefragt. Nun habe ich mich mal an den Attiny45 herangetraut
und eine Schaltung entworfen. Dazu hätte ich gerne etwas Feedback... Ich
dachte mir, es ist ja schade, irgendwelche Pins ungenutzt zu lassen,
sodass einige Zusatzfeatures hinzugekommen sind.
An X1 soll die Versorgungsspannung (12V) gehängt werden. X2 bezeichnet
die Schraubklemmen für die Pumpe. An JP1 wird ein Reedkontakt
angeschlossen (via Kabel), der vor zu wenig Wasser warnt. An JP2 und JP3
können optional Potentiometer angeschlossen werden um damit die Zeiten
zu justieren. S1 schaltet manuell die Pumpe an.
Ich habe die Schaltung bereits auf einem Steckbrett aufgebaut (bis auf
die Potis). Sie funktioniert soweit, ebenso wie mein Testprogramm. Nun
meine Fragen:
- Am Relais habe ich einen Pin, der in der Luft hängt. Ist es sinnvoll
diesen an GND anzuschließen?
- Was mache ich am besten mit JP2 und JP3, wenn kein Poti angeschlossen
ist? Steckbrücke zwischen GND und PB3/PB4? Oder ist das vollkommen egal?
- Habe ich irgendwelche offensichtlichen Fehler gemacht?
Viele Grüße
scus
scus schrieb:> - Am Relais habe ich einen Pin, der in der Luft hängt. Ist es sinnvoll> diesen an GND anzuschließen?
Gleichstrommotoren kann man dadurch abbremsen, dass man sie
kurzschließt. In deinem Fall ist das sicher nicht notwendig. Ich würde
den Pin offen lassen.
> - Was mache ich am besten mit JP2 und JP3, wenn kein Poti angeschlossen> ist? Steckbrücke zwischen GND und PB3/PB4? Oder ist das vollkommen egal?
Ich würde einen hochohmigen Pullup/down anschließen - alternativ den
internen aktivieren. Ob Up oder Down hängt davon ab, was deine SW machen
soll, wenn sie GND oder VCC an dem Pin sieht.
> - Habe ich irgendwelche offensichtlichen Fehler gemacht?
Naja, der Spannungsregler sollte nochmals überprüft werden, ob die
Kondensatoren dem Datenblatt entsprechen. Ein zweiter C an den 5V direkt
an den Prozessorpins ist auf jeden Fall notwendig.
Wenn du an dem Prozessor den RST-Pin als IO benötigst, dann ist Reset
deaktiviert, anschließend nur noch eine HV-Programmierung möglich und
die Treiberleistung (zumindest in eine Richtung) reduziert. Ob damit die
LED betreibbar ist, muss mit dem Datenblatt geprüft werden (The reset
pin can also be used as a (weak) I/O pin.). Ich würde das nur in
entsprechender Not tun.
S1 und JP1 sind nicht beschrieben. Es ist jedoch nicht ungefährlich für
Programmer und IC, wenn einer der beiden gesetzt sind, während du
programmierst. Ein R mit 1kΩ in Serie zu S1 und JP1 könnte das
absichern.
Vorsicht: VCC an JP4 ist vermutlich nicht angeschlossen, es fehlt der
Junction-Punkt.
Vielen Dank für die schnelle Antwort!
Ich habe nochmal im Datenblatt des Reglers nachgeschaut. Als Referenz
wird für C1 ein 330nF Kondensator angegeben...
JP1 und S1 hatte ich eigentlich vor, mit dem internen Pull-Up zu
betreiben. Bei JP1 kann es jedoch leicht passieren, dass er
eingeschaltet ist beim programmieren... Nunja. 1kOhm Widerstände kosten
nun auch nicht die Welt...
HildeK schrieb:> Ein zweiter C an den 5V direkt> an den Prozessorpins ist auf jeden Fall notwendig.
Mir ist nicht ganz klar, wie ich das umsetzen soll: Muss der Kondensator
räumlich nah am Pin des µC sein? Was für eine Kapazität brauche ich
hier?
Viele Grüße
scus
PS. Mein bisheriges Wissen habe ich mir aus diversen Internetseiten,
etc. zusammengesammelt. Allerdings habe ich nicht den Eindruck eine gute
Grundlage zu haben. Kann jemand ein gutes Buch empfehlen, das an
Anfänger gerichtet ist, aber dabei nicht zu weit ausschweift? Ich bin
knappe, präzise Beschreibungen gewöhnt...
scus schrieb:> Mir ist nicht ganz klar, wie ich das umsetzen soll: Muss der Kondensator> räumlich nah am Pin des µC sein? Was für eine Kapazität brauche ich> hier?>> Ich bin> knappe, präzise Beschreibungen gewöhnt...
Ja.
100nF.
Ich habe nun die Schaltung noch etwas überarbeitet. Ich möchte daraus
eine Platine fertigen (lassen) und bin dabei auf eine Frage gestoßen:
Ist es sinnvoll, die Kupferfüllung überall mit GND zu verbinden? Mein
Gedanke: Theoretisch beseitige ich damit doch die räumliche Nähe des
Kondensators zum IC. Zumindest von einem Beinchen...
scus schrieb:> Ich habe nun die Schaltung noch etwas überarbeitet. Ich möchte daraus> eine Platine fertigen (lassen) und bin dabei auf eine Frage gestoßen:
Hallo!
Ganz unabhängig von deiner Frage – hast du die Schaltung mal auf einer
Steckplatine ausprobiert?
Der 10-kOhm-Widerstand an der Basis des Schalttransistors erscheint mir
etwas groß. Reicht der Verstärkungsfaktor des Transistors aus?
Wie ist das mit dem Vorwiderstand der LED? Handelt es sich um eine
spezielle Low-Power-LED? Falls nicht, würde ich auch hier einen
kleineren Widerstand verwenden, damit die LED deutlich sichtbar leuchtet
– z.B. 330 Ohm.
Beide Anmerkungen kommen von meinem Bauchgefühl beim Anschauen der
Schaltung, ausgerechnet habe ich nichts, kann mich also gut täuschen...
Was ich noch ändern würde: Das Relais sollte mit den 12V laufen. Ändert
nichts an der Schaltung, außer daß es vor dem Spannungsregler
angeschlossen wird.
Einerseits hält man sich damit die Störungen durch die recht große Spule
aus dem 5V-Kreis raus und andererseits spart die Variante Strom. 5V
Relais brauchen deutlich mehr Strom als welche für 12V. Zudem belastet
die 5V-Variante den 7805, der dann merklich dadurch geheizt wird -
ziemlich sinnlos, wie ich finde!
Was mir noch auffällt:
Wenn du den AVR programmierst, dann muss ja das Relais wie verrückt
flattern (ISP-SCK). Ich weiß nicht, ob das so gut ist. Und dann hängt
das Relais auch noch an den selben 5V wie dein Controller..
Also ich finde es kritisch.
Gruß Steffen
Yep, da ist auch was dran. Diese Verbindung würde ich fürs Programmieren
auftrennen (Jumper) oder den AVR außerhalb der Schaltung programmieren.
Mir ist da aber nochwas aufgefallen: Wieso nicht das Relais komplett
einsparen und durch einen LogicLevel-FET ersetzen? Oder braucht die
Pumpe sehr viel Strom? Braucht die Pumpe eine feste Masseverbindung?
Danke für die Rückmeldungen!
Ich habe die Schaltung schon auf einem Steckbrett aufgebaut und sie hat
problemlos funktioniert. Auch konnte ich den Chip im System
programmieren, ohne dass das Relais irgendwelche faxen gemacht hat. Den
Jumper-Vorschlag werde ich trotzdem berücksichtigen.
Ich habe ein 5V Relais genommen, da ich diese noch da hatte. Da das
Relais aber die meiste Zeit nicht "an" ist, denke ich macht sich der
Verbrauch kaum bemerkbar (das Relais soll alle 60 min für ca. 1 min
anspringen). Den Widerstand, wie den Rest der Relais-Ansteuerung, habe
ich ohne großartig nachzudenken aus einem Arduino-Tutorial übernommen...
Genauso die Vorwiderstände der LEDs. Mir sind sie eigentlich hell genug.
Was die Leistungsaufnahme angeht, habe ich gerade nochmal im Datenblatt
des Relais nachgeschaut. Dort ist eine Ansprechleistung von 110mW
angegeben. Bei 5V entspricht das doch 22mA... Ist diese Rechnung
korrekt? Das sollte doch keine Große Belastung für den 7805 sein!?
Den Vorschlag mit dem LogicLevel-FET finde ich auch interessant. Die
Pumpe zieht laut Angaben auf der eBay Seite (habe leider kein
Datenblatt) ca. 600mA. Ist das problemlos? Wie steuere ich einen
LogicLevel-FET korrekt an?
Viele Grüße
scus
PS. Ich habe oben schon mal nach einem guten Buch gefragt. Hat jemand
einen Tipp, eventuell auch eine Art online Kurs, o.ä.? Meine
bisherigen Kenntnisse habe ich mir aus diversen Arduino Tutorials
zusammengeklaubt. Möchte aber eigentlich gerne tiefer einsteigen. Das
letzte Buch, das ich in den Fingern hatte, war ziemlich langatmig
geschrieben...
Für die 600mA würde ich die FET-Variante empfehlen. Ich glaub der
IRLZ34N oder wie er heißt ist dafür ein Klassiker. Der Rds(on) sollte
niedrig genug sein, daß der FET ohne zusätzliche Kühlung auskommt.
Angesteuert wird der im Grunde wie der bipolare Transistor, der momentan
das Relais steuert. Die Pumpe wird dann anstelle des Relais gesetzt (und
natürlich an 12V angeschlossen).
Den Gate-Widerstand (zwischen AVR-Pin und Gate des FET) würde ich so um
220 Ohm wählen, wenn Du nur sehr wenig schaltest brauchst Du keine
besonders schnellen Umschaltzeiten und der AVR kann den FET direkt
treiben.
Das Schöne daran ist, daß der FET leistungslos gesteuert wird. Abgesehen
von den Umschaltverlusten brauchst Du keinerlei Treiberleistung wie bei
einem Bipolartransistor.