Forum: Mikrocontroller und Digitale Elektronik Schaltung mit Attiny45


von scus (Gast)


Angehängte Dateien:

Lesenswert?

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

von HildeK (Gast)


Lesenswert?

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.

von scus (Gast)


Lesenswert?

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...

von Martin K. (maart)


Lesenswert?

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.

von scus (Gast)


Lesenswert?

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...

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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...

von Ben _. (burning_silicon)


Lesenswert?

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!

von Steffen H. (avrsteffen)


Lesenswert?

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

von Ben _. (burning_silicon)


Lesenswert?

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?

von scus (Gast)


Lesenswert?

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...

von Ben _. (burning_silicon)


Lesenswert?

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.

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.