Attiny85 wie progamiere ich mit AVR eine SRV

OP #4479714
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin neu hier und habe auch gleich große Pläne mit meinen Attiny85
Leider habe ich nicht viel Ahnung vom programmieren und hoffe deshalb es 
kann mir hier jemand helfen.

Ich möchte gern einen Stromstoßschalter mit Rückfallverzögerung auf 
meinen Attiny85 aufspielen.
Das ganze soll wie folgt aussehen, Taster PB4 gegen Masse geschalten und 
PB0 als Ausgang High aktiv
Wenn ich den Taster ein mal betätige, soll eine LED am Ausgeng PB0 
leuchten und nach zirka 5min von alleine ausgehen. Wenn ich aber den 
selben Taster an PB4 zum zweiten mal betätige soll die LED sofort 
ausgehen.
Wenn ich den Taster dann wieder betätige soll die LED wieder 5min lang 
an sein und dann von allein ausgehen wenn man den Taster nicht betätigt 
(sonst sofort aus.)

Ein ganz prima Sache wäre dann noch wenn man es hinbekommen könnte 
zusätzlich über ein High oder Low Signal am PB3 als (Schalter gesehen)
das Programm wahlweise nur als Stromstoßschalter (selbe Funktion ohne 
Zeit)
und als Stromstoßschalter mit Rückfallverzögerung.

Ist das machbar mit dem Attiny85?
OP #4479749
Lesenswert?
• ▲
▼
Ok und gibt es hier jemand der so was auf die schnelle mal programmieren 
kann am besten in Assembler? Das ganze wäre mir auch 20€ wert. Ich meine 
ich habe zwar einen normalen Stromstoßschaler programmiert bekommen aber 
das hat schon mal einen Monat Zeit und ein haufen nerven gekostet. Und 
Ich dachte mal so, hier gibt es doch bestimmt viele die so was in 
handumdrehen hinbekommen weil sie vielleicht gerade ähnliche Programme 
abgespeichert irgendwo rumliegen haben und auch so mit Programmieren 
viel mehr zu tun haben als ich.
Gast #4479751
Lesenswert?
• ▲
▼
Soll jetzt hier jemand das Programm rüberreichen?
Und wenn das jemand macht, womit spielst du es auf den
Tiny85?

Hast du dir überhaupt schon ein paar Gedanken gemacht, wie
das Programm funktionieren könnte?

- Tast-Erkennung?
- Zeitliche Abläufe?
- Logik für die gewünschten Funktionen?
Gast #4479884
Lesenswert?
• ▲
▼
Der Attiny85 hat 8MHz max, aber für 5min braucht man bestimmt ein 
Vorteiler.

Wegen  den in C Programmieren naja wenn es funktioniert ist es natürlich 
auch ok. Leider hat mein Programmer mit C immer mal ein paar Probleme 
bringt immer Fehlermeldung und programmiert erst nach den zwanzigsten 
mal selbst bei
Musterprogrammen.

Mit Assembler läuft immer gleich alles kann aber eine Einstellungsfrage 
sein.

Also wenn es mit C bei mir läuft gibt es die 20€ natürlich auch.
Gast #4479887
Lesenswert?
• ▲
▼
Wegen der Spannungsversorgung, also die ganze Schaltung soll 
letztendlich auf 12V laufen wollte für den Attiny85 einen 
Festspannungsregler 5Volt nehmen
so einen TS7805 oder einen noch kleineren in TO92 Gehäuse am Ausgang PB0 
Wiederstand 330Ohm an basis NPN Transistor und collector an 12V, emitter 
auf die Spule von eine 12V Printrelais.
Dann noch einen kleinen DIL-Schalter oder nur eine Drahtbrücke zum 
umschalten an PB3 Stromstoßschalter - Stromstoßschalter mit 
Rückfallverzögerung.
Gast #4479898
Lesenswert?
• ▲
▼
Karl M. schrieb:
> wie schnell läuft der AVR t85, 1MHz, 8MHz oder mit 16MHz ?

Microlutz schrieb:
> Der Attiny85 hat 8MHz max, aber für 5min braucht man bestimmt ein
> Vorteiler.

Microlutz schrieb:
> so einen TS7805 oder einen noch kleineren in TO92 Gehäuse am Ausgang PB0
> Wiederstand 330Ohm an basis NPN Transistor und collector an 12V, emitter
> auf die Spule von eine 12V Printrelais.



Darf, soll oder muß man die "Experten" unter sich lassen?
#4480117
Lesenswert?
• ▲
▼
Hallo!
Eine ähnliche Funktionalität habe ich vor längerer Zeit für meine 
Regenfasspumpe programmiert. Ich glaube es war Assembler auf einem 
Attiny11?

Funktion: Das Regenfass steht im Garten und soll in der Trockenzeit aus 
dem unterirdischen Regenspeicher gefüllt werden. Dort ist eine 
Tauchpumpe vorhanden. Es kam immer wieder vor, das ich die Pumpe nach 
dem Einschalten vergaß und das Fass überlief bis der Erdtank fast leer 
war.

Also Zeitbegrenzung mit Komfort.
Programm funktioniert so:
1) Pumpe aus
2) kurzer Tastendruck: Pumpe läuft für 12 Minuten (dann ist das Fass 
voll)
3) durch kurzen Tastendruck kann die Pumpe jederzeit ausgeschaltet 
werden wenn z.B. das Fass vorher nicht ganz leer war
4) während des Zeitablaufes blitzt eine LED
5) aus 1) oder 2) kann durch einen langen Tastendruck auf Dauerbetrieb 
geschaltet werden, die LED leuchtet durchgehend. Jetzt kann die Pumpe 
auch zum Wässern von Bäumen und Hecken benutzt werden.
6) kurzer Tastendruck macht die Pumpe wieder aus.

Soll so ungefähr die Funktion sein?
Dann muß ich mal in alten Disketten nach dem Programm kramen.
#4480180
Lesenswert?
• ▲
▼
Guten Mittag,

ich habe mich auch an eine eigenständige Realisierung gemacht.

Das Programm ist für 1MHz CPU-Clock ausgelegt, es arbeitet nicht 
blockierend und verwendet keine Delay o.ä.

Der Taster an PortB.4 wird entprellt (peda Routine) und über den 
Tasterevent wird entweder:

a) portb.0 auf High gesetzt, der Ausgangszustand von portb.3 gewechselt 
und der 5 min Delaytimer gestartet.

oder

b) portb.0 auf Low gesetzt, der Ausgangszustand von portb.3 gewechselt 
und
der 5 min Delaytimer gestoppt.

Ist der Delaytimer abgelaufen, also die verstrichene Zeit >= 5min,
dann wird portb.0 auf Low gesetzt und der Delaytimer gestoppt.

Das Programm belegt 538 Byte im Flashspeicher, es benutzt Timer1 als
Zeitbasis und die statische Ram-Belegung liegt bei 13 Byte.

Hier noch ein Report des Compilers, bzw. der IDE.
Angehängte Dateien:
Gast #4480996
Lesenswert?
• ▲
▼
Sorry bin nicht eher zum schreiben gekommen,zum Angebot vom Uwe S. ich 
bin erst mal begeistert das du so schnell das Programm zusammenbekommen 
hast.
Hab da aber noch eine Frage es klingt mir so als könnte man nur vom PB3 
den 5min Timer auschalten? Also von PB4 muss sich der Timer auch vor 
ablauf der
5min zurücksetzen lassen mit wiederholen drücken des Tasters. Der 
Unterschied den ich mit PB3 erreichen wollte ist nur das dann die LED 
nach einschalten nicht mehr ausgeht außer ich drücke wieder PB4 und das 
Umschalten an PB3 aktiviert nur den 5min Timer.

Wenn das so klappt sende mir das Programm an offroader78@hotmail.de mit 
deiner IBAN. oder PAYPAL-konto was dir lieber ist ich werde das Programm 
prüfen und wenns funktioniert bekommst du dein Geld überwiesen.

Ein paar Infos was ich voreinstellen muss wäre gut.
Gast #4481498
Lesenswert?
• ▲
▼
Guten Morgen,

erst soll es nur ein lauffähiges Programm als Hex- oder BIN-Datei sein 
und dafür wird ein Trinkgeld vereinbart.

Und nun noch der gesamte Quellcode - für lau ?

Keiner weis bisher, wie das Programm genau arbeiten soll, da sich die 
Anforderung scheinbar ändert, oder ungenau ist.

Hier sollte man sich mit dem Entwickler direkt austauschen, nur wenn 
ALLE Fragen genau beantwortet sind, dann verhält sich ein Programm auch 
genau so, wie man es vorher definiert hatte.

Gibt es Interpretationsspielraum, dann kann ein Programm sich in diesen 
Bereichen anders Verhalten, d.h. eine andere Logik zeigen.
#4482024
Lesenswert?
• ▲
▼
Hallo Lutz,

ich habe die Problembeschreibung wie folgt interpretiert:
1
'---------------------------------------
2
'                    Attiny85 @1MHz
3
'                     +----------+
4
'              Reset -|    ##    |- Vcc
5
'  Mode Switch - PB3 -|          |- PB2 - ADC1
6
' OnOff Switch - PB4 -|          |- PB1 - #Mode Output
7
'                Gnd -|          |- PB0 - Timed Output
8
'                     +----------+
9
'---------------------------------------

Das Programm reagiert nun auf eine Spannung an ADC1 mit Spannungen 
zwischen Vcc -- Gnd.
Über 10 Sekunden Schritte lässt sich nun die Abschaltverzögerung 
einstellen.

Dabei bedeutet:
# N=0 (Nullwert) keine Abschaltverzögerung,
# N=1 10 Sekunden,
# N=x x*10 Sekunden und
# N=127 (Endwert) 21 Minuten + 10 Sekunden

Es gibt zwei Taster:
Der "Mode Switch" an PB3 und
der "OnOff Switch" an PB4.

Über den Taster "Mode Switch" kann die Abschaltverzögerung aus- und 
wieder eingeschaltet werden, dabei signalisiert die LED (#Mode Output) 
an PB1 den Zustand des Programms.

LED (#Mode Output) = Low  - Abschaltverzögerung ein.
LED (#Mode Output) = High - Abschaltverzögerung aus.
Hier kann man eine LED mit 1k Vorwiderstand nach Vcc anschalten.

Über den "OnOff Switch" an PB4 kann man nun im Wechsel den Ausgang 
(Timed Output) Ein- = High oder Ausschalten = Low.

Bei einem Moduswechsel über "Mode Switch" bleibt der Zustand des 
Ausgangs (Timed Output) erhalten und man kann ihn immer mit betätigen 
von "OnOff Switch" wechseln.

Die Abschaltverzögerung wird natürlich nur im Modus "Abschaltverzögerung 
ein" aktiviert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren