Forum: Mikrocontroller und Digitale Elektronik Wer kann Programm schreiben um eine Taste zu Emulieren


von Michael N. (monimi)


Lesenswert?

Hallo zusammen,
Ich habe ein, mit einem Mikrocontroller, gesteuertes Ladegerät für 12V
Bleibatterien mit 0-2-20-40 Ampere Ladestrom. Leider speichert das Gerät
nach einem Stromausfall nicht den zuletzt eingestellten Ladestrom und
startet immer mit 2 A Ladestrom.
Deshalb möchte ich, dass ein zweiter Mikrocontroller nach einem
Stromausfall den von mir gewünschten Ladestrom einstellt.
Um die Ladestufe am Gerät zu verstellen, muss eine Taste gedrückt
werden. Ein erneutes Drücken der Taste wählt die nächste Stufe usw.
Diesen Tastendruck bzw. mehrere hintereinander möchte ich mit dem
Controller und einem Optokoppler ausführen.

Vorgestellt habe ich mir die Realisierung mit einem Stufenschalter, der
den von mir gewünschten Ladestrom dem Mikrocontroller über mehrere
Port-Pins mitteilt, welche mit dem Stufenschalter entsprechend der
Ladestufe auf High oder Low gesetzt werden.

Eine andere Möglichkeit währe:
An 3 Pins 3 Dioden zum Anzeigen anschließen.
An 1 Pin einen Taster anschließen
An 1 Pin den Optokoppler anschließen
Mit dem Taster wählt man den Strom aus, so dass Led Nr:1-2 -3 oder keine
Led leuchtet.
im Prinzip genauso, wie es auch das Ladegerät macht.
Der eingestellte Wert wird im EEPROM des PICs gespeichert und beim
nächsten Einschalten am Ladegerät eingestellt.

Was ich brauche, ist ein Programm, welches den Optokoppler 1 mal, 2 mal
oder 3 mal einschaltet und ausschaltet.

Folgendes sollte der Prozessor selbständig machen wenn er Strom bekommt,
je nachdem was ich für eine Ladestufe ich gewählt habe.
Ladestufe 0 A: brauche ich nicht!
Ladestufe 2 A: 1 mal einschalten und ausschalten des Optokopplers
Ladestufe 20 A: 2 mal einschalten und ausschalten des Optokopplers
Ladestufe 40 A: 3 mal einschalten und ausschalten des Optokopplers

Als Controller habe ich mir den Attiny13 oder den 12F629 von Microchip
vorgestellt.

von Micha R. (Gast)


Lesenswert?

Du brauchst als Ausgang nur den nackten Optokoppler?
Um den Rest kümmerst du dich selbst?

Wie dringend brauchst du das?
Brauchst du ein professionelles Layout?
Geht auch ein Mega8 erstmal?
Was hast du preislich für Vorstellungen?

von Micha R. (Gast)


Lesenswert?

Wie soll die Schaltung mit Spannung versorgt werden?

von Hannes L. (hannes)


Lesenswert?

Das ist für einen Tiny12/13/15 kein Problem.

Ich nehme an, Du willst die Hardware (Platine mit Stromversorgung, 
Controller, Optokoppler, Stufenschalter oder Taster und LEDs) selbst 
bauen und brauchst nur das Programm, oder?

Die Stromversorgung kann ja vom bereits vorhandenen Controller 
abgezweigt werden.

...

von Michael N. (monimi)


Lesenswert?

Hallo,

ich brauche nur das Programm, alles andere mache ich selbst.
Die Stromversorgung nehme ich vom vorhandenen Controller.
Es sollte nach Möglichkeit schon der Attiny13 oder der PIC12F629 sein, 
da ich die schon habe.
Ich lebe in der DomRep und komme nur sehr schwer an Bauteile.
Meine preislichen Vorstellungen sind klein = kleiner Preis.

von Micha R. (Gast)


Lesenswert?

Gut,

wann brauchst du das?

von Michael N. (monimi)


Lesenswert?

Hallo,
Es eilt nicht. Ob ich das Programm in 2 Std. oder 14 Tagen bekomme, ist 
nicht wichtig. Ich kann das Gerät ja benutzen, muss es nur immer von 
Hand verstellen. Ich habe keine Ahnung von Programmierung. Wie lange 
braucht jemand der sich damit auskennt, um so ein Programm zu schreiben?

Mfg
Michael

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

@Michael
Probier mal das Programm im Anhang. (Bascom)
Taster an PB0
Optokoppler an PB1
LEDs an PB2-PB5

Ich konnte es nur simulieren, da ich keinen Tiny13 habe. Vor dem 
Kompilieren mußt Du noch die $sim - Anweisung ganz oben rauswerfen.

MfG Paul

von Michael N. (monimi)


Lesenswert?

Hallo Paul,

danke erstmal für das Programm. Leider kann ich es noch nicht auf einem 
Tiny13 testen, da ich zur Zeit noch keinen habe. Die Person, die ihn mir 
mitbringt, fliegt aber heute Samstag in die DomRep. Es kann sich dann 
nur noch um Tage handeln, bis ich ihn erhalte. Auch einen  Programmierer 
für den Parallel-Port muss ich mir noch löten. Dafür warte ich ebenfalls 
auf ein Teil.
Ich habe mir inzwischen schon mal die BASCOM-AVR Demo Version 1.11.8.7 
geladen und versucht eine Simulation zu machen. Leider bekomme ich eine 
Fehlermeldung, wenn ich auf Simulation klicke. Die Meldung ist (OBJ or 
DBG file not found). Hast du den  integrierten Simulator benutzt oder 
den vom  AVR Studio?


Mfg
Michael

von Markus S. (markusch)


Lesenswert?

Hier gabs vor ein paar Monaten einen Typen, der ein paar Dumme gesucht 
hat, die mit ihm auswandern. Ich weiß nicht, ob es Dominikanische 
Republik war, Argentinien, Chile, oder sonstwas in der Gegend.

Garantien gabs keine außer dem Versprechen, daß die Lebenshaltungskosten 
dort sehr gering sind, und um ein Vielfaches abgedeckt würden, wenn sich 
die Zusammenarbeit positiv entwickeln würde.

Der Typ machte den Eindruck, daß er keine Ahnung von dem 
Elektronikgeschäft hätte, das ihm vorschwebte, mit Ausnahme der fixen 
Idee, daß er damit reich werden könnte, wenn andere für ihn die Arbeit 
machen.

Ich unterstelle natürlich nicht, daß jetzt der gleiche Typ hier um Hilfe 
ruft, weil er alleine nicht in der Lage ist, einen Auftrag zu erfüllen. 
Ich wurde halt nur gerade an die lustige Geschichte erinnert.

Markus

von Michael N. (monimi)


Lesenswert?

Hallo Markus,

wie du schon vermutet hast, bin ich nicht der gleiche Typ, der in deiner 
so „lustigen Geschichte“ vorkommt. Ich lebe schon 7 Jahre in diesem Land 
und habe weder ein Geschäft noch einen Auftrag zu erfüllen.
Meine Frage in diesem Forum ist rein privat. Es ist auch nicht so, dass 
ich keine Ahnung habe, sonst hätte ich ja nicht in meinem Thread zwei 
Lösungsmöglichkeiten beschrieben. Ich kann es nur nicht programmieren!
Leider hat deine Antwort nicht zur Lösung meines Problems beigetragen, 
sondern, wie leicht zwischen den Zeilen zu lesen ist, versuchst du 
andere davon abzuhalten mir zu helfen. Ich hoffe, dass nicht alle 
Mitglieder dieses Forums so denken wie du und mir trotzdem jemand hilft.

Mfg
Michael

von Markus S. (markusch)


Lesenswert?

>Es ist auch nicht so, dass ich keine Ahnung habe, sonst hätte ich ja nicht >in 
meinem Thread zwei Lösungsmöglichkeiten beschrieben.

Wenn du selbst Lösungsmöglichkeiten hast, wieso brauchst du dann noch 
jemanden, der das für dich programmiert?

>Ich kann es nur nicht programmieren!

Du kannst ES nicht programmieren, oder du kannst GAR nicht 
programmieren? Wohl eher letzteres. Dann fang doch einfach an, es zu 
lernen. Deine Aufgabe kommt gleich nach "Eine Leuchtdiode blinken 
lassen". Wenn du deinen uC hast, ein Programmiergerät herumsteht, und du 
weißt, wie du ein fremdgeschriebenes Programm in deinen uC schreibst, 
dann ist es für einen völligen Anfänger 1/2 Stunde Arbeit, das 
LED-Blink-Tutorial durchzuarbeiten und eine weitere Stunde Arbeit, es 
auf dein Problem anzupassen. Es sei denn es fehlt einem an Wissensdrang 
und das Gehirn ist vom vielen BILD-Lesen verkümmert. Dann stellt man 
sich lieber dumm (natürlich nicht ganz so dumm wie du tatsächlich bist, 
denn du hast ja schließlich noch deinen Stolz) und bettelt andere 
Forumsteilnehmer an, die zwar selbst nichts auf die Beine stellen 
können, die dir aber darum gerne beweisen, daß sie einen uC ein paar 
Pulse senden lassen können.

Wenn du nicht programmieren lernen willst, aber anscheinend sowas tolles 
bauen kannst wie eine Mikrocontrollerschaltung, dann virgiß deinen uC 
einfach und baue deine Akku-Steuerung aus ein paar Logikgattern. Ist ja 
sicher ein Leichtes für dich, und die findesst du sogar in der DomRep 
... Hahahahahah...

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

@Michael
Hier sind noch mal alle Dateien, die Du brauchen könntest. Simuliert 
habe ich es im Bascom-Simulator.

FF! (Fiel Fergnügen)

MfG Paul

von Markus S. (markusch)


Lesenswert?

Na, dann fiel Spaß beim Support, Paul! Oder denkst du im Ernst, Michael 
ist selbständig in der Lage, dein Programm in Betrieb zu nehmen?

Aber damit auch du, Paul, etwas von der Sache hast, schlage ich vor, daß 
ihr jeden Schritt hier im Forum diskutiert, dann kann jeder sehen, was 
für ein toller Typ du bist, daß du dem armen, unfähigen Michael hilfst.
Das törnt dich doch sicher an, was?

von Jack B. (jackbraun)


Lesenswert?

>Das törnt dich doch sicher an, was?

Was ist denn das für ein Trottel? Kennt den jemand?

von Markus S. (markusch)


Lesenswert?

Kennt jemand den Trottel jackbraun?

von Paul Baumann (Gast)


Lesenswert?

@Markus
Sag mal: Geht´s wieder, oder soll ich einen Arzt holen?

Das Programm ist kommentiert, wie Du vielleicht gesehen hast. Es ist 
allein meine Sache, ob und wie ich jemandem zu helfen versuche.

Hast Du schon mal darüber nachgedacht, daß es Leute geben könnte, die 
nur
einmal in ihrem Leben eine Aufgabe mittels MC lösén wollen und dann nie 
wieder?

In der Zeit, in der Du hier "Stimmung" erzeugen willst, hättest Du Dich 
auch mit der Umsetzung der Problemstellung in ein Programm befassen 
können.

....Leute gibt´s!

Paul

von Markus S. (markusch)


Lesenswert?

>In der Zeit, in der Du hier "Stimmung" erzeugen willst, hättest Du Dich
>auch mit der Umsetzung der Problemstellung in ein Programm befassen
>können.

Ach ja? Ich bin aber der Meinung, daß man Leuten mehr hilft, wenn man 
sie vor die Wahl stellt, dumm zu sterben oder selbst mit dem Denken 
anzufangen. Deine Selbstdarstellung führt dazu, daß Michael in ein paar 
Wochen mit seinem nächsten Problem angekrochen kommt.

von Tom (Gast)


Lesenswert?

@Paul

volle Zustimmung.

von Meister der Insel (Gast)


Lesenswert?

Leute nicht doch.
Habt Euch lieb!

von Tcf K. (tcfkat)


Lesenswert?

Oh Gott, was ist das denn für ein Thread?
Irgendwann braucht man noch einen µC, um mit einem Taster eine LED 
aufleuchten zu lassen...

Das baut man diskret auf, mit NE555 und Zähler oder Schieberegister! 
Diese Teile gibt es auch in der DomRep!

von Paul Baumann (Gast)


Lesenswert?

@Tcf Kat
...dann lies mal den obersten Artikel im Thread. Einen NE555 mit 
internem
EEPROM habe ich noch nicht zu kaufen bekommen. ;-)))

Paul

von Tcf K. (tcfkat)


Lesenswert?

Da hast Du die falsche Quelle... ;))
Anzahl Pulse per Stufenschalter-Abgriff am Schieberegister auswählen, 
der dann den NE555 im Reset hält, der Out-Pin des NE555 liefert dann die 
gewünschte Pulszahl... das Schieberegister kriegt nen POR über 
R/C-Glied. Soll ich noch nen Schaltplan malen? ;)

von Karl (Gast)


Lesenswert?

So ganz unrecht hat der Markus nicht, wie ich finde. Wenn jemand ohne 
Probleme die Schaltung aufbauen, das Programm kompilieren und evtl. 
simulieren kann, weiß, wie man es dann in den Controller bekommt und 
dergleichen, sollte die Stunde um das Tutorial zu lesen auch drin sein. 
Ich finde die Frage bei all dem nötigen und offensichtlich vothandenen 
Hintergrundwissen zumindest seltsam.

von Paul Baumann (Gast)


Lesenswert?

@Tcf Kat

Ja, kannst Du machen. Den Schaltplan meine ich. Wird sicher ein 
geringerer
Aufwand werden. Braucht ja nur zusätzlichen Stufenschalter, 
Schieberegister
und Timer - IC.

....wie in der Heilanstalt ;-)

Paul

von Tcf K. (tcfkat)


Lesenswert?

Ob er sich nun den Prommer für LPT lötet, oder das hier, sehe ich keinen 
Unterschied... ich würde das diskret aufbauen.

von Michael N. (monimi)


Lesenswert?

Hallo Paul,

ich habe die Teile jetzt erhalten und die Schaltung aufgebaut. Das 
Brennen des µC hat sofort ohne Probleme funktioniert. Leider läuft das 
Programm nicht richtig auf dem tiny13 oder ich habe etwas falsch 
gemacht.
Ich habe die 4 LEDs an PB2-PB5 angeschlossen.
Die Anode an +5V über 1k Ohm Widerstände und die Kathode direkt an die 
Pins des  µC. Anstelle des Optokopplers  habe ich an  PB1 eine LED auf 
die selbe weise angeschlossen. Den Taster habe ich an  PB0 und GND 
angeschlossen. Als ich die Schaltung in Betrieb genommen habe, hat nur 
die LED für den Optokoppler langsam geblinkt.  Die 4 anderen haben 
nichts gemacht. Auch das Drücken auf den Taster änderte nichts.
Da ich mir nicht sicher war ob alles richtig funktioniert,  habe ich das 
Senso-Spiel http://www.meinemullemaus.de/lesen/avr/seite2.html#6.1  in 
den  tiny13 gebrannt und die Schaltung so abgeändert wie auf der Seite 
angegeben. Das Senso-Spiel funktionierte einwandfrei.

Leider ist jetzt nach dem ich ca. 15 mal den  µC mit  PonyProg gebrannt 
habe ein Fehler aufgetreten, so dass der  µC jetzt nicht mehr von 
PonyProg  und anderen Programmen erkannt wird.
Ich habe an den Fuse Bits nicht geändert und genauso gebrannt wie 14 mal 
vorher. Das Senso Programm auf dem µC  läuft. Jedoch wird der µC nicht 
mehr erkannt. Auch der zweite µC wurde auf diese Weise unbrauchbar. So 
kann ich im Moment keine weiteren Tests durchführen.
Als Programmer habe ich diese Schaltung nachgebaut 
http://rumil.de/hardware/avrisp.html
Da ich jetzt erst mal  neue µC kaufen muss, kann ich natürlich einen 
kaufen, auf dem du das Programm auch testen kannst. Ich würde mich 
freuen wenn du mir einen µC nennen kannst auf dem dein Programm läuft.

Mfg
Michael

von Paul Baumann (Gast)


Lesenswert?

Ich habe das Programm für einen Attiny13 im Auslieferungszustand 
geschrieben,
aber nur im Simulator testen können. Wenn es gestartet wird, hast Du 
einen
Moment Zeit, die Taste 1,2 oder 3 mal zu drücken, je nachdem, wie oft Du
den Starttaster an Deinem Ladegerät drücken würdest. Der Zählerstand 
Deiner Tastendrücke wird dann im EEPROM gespeichert und anschließend 
über den Optokoppler ausgegeben. (eventuell mußt Du die Wartezeit "loop 
until N=400" vergrößern.

Drückst Du die Taste nicht, wird der zuletzt gespeicherte Wert aus dem 
EEPROM ausgegeben.

MfG Paul

von Hannes L. (hannes)


Lesenswert?

> Ich habe die 4 LEDs an PB2-PB5 angeschlossen.

Was hat PB5 damit zu tun?
PB5 ist der Reset-Pin, wenn man den benutzen möchte, muss man auf ISP 
verzichten.

Die zerschossenen Controller kann ich Dir mit dem STK500 wieder auf 
Werkszustand zurückfusen, wenn es Dir das Porto (und Rückporto) wert 
ist.

Die Billig-ISP-Adapter neigen mit Ponyprog bei instabilen Verhältnissen 
(lange Strippen, ungeeigneter PC-Schnittstellenschaltkreis) dazu, scon 
mal die Fuses zu verstellen, obwohl man keinen Befehl dazu gegeben hat. 
Da reichen schon ein paar kippende Bits.

...

von Michael N. (monimi)


Lesenswert?

Hallo Hannes,

inzwischen habe ich wieder 4 Attiny13 nach langem Warten erhalten. Ich 
habe den Fehler gefunden, warum die anderen 2  Attiny13 nach dem Brennen 
nicht mehr erkannt wurden. Es war der SN74HC244, welcher defekt war und 
den ich gleich sicherheitshalber auch ausgewechselt habe. Wahrscheinlich 
hat eine statische Entladung den 74HC244 geschädigt.

Danke für dein Angebot mir die zerschossenen Controller wieder auf 
Werkszustand zurückzufusen. Dazu warte ich aber bis ich mehr habe, da es 
sich sonst nicht rentiert. Es ist jetzt ein weiterer hinzugekommen bei 
dem ich das Fuse Bit "Int. RC Osc. 128 kHz; Start-up time: 14 CK + 64 
ms" eingestellt habe. Seitdem will er nicht mehr.

Ich habe das Programm von Paul jetzt nach ein paar Anpassungen bei mir 
zum Laufen gebracht. Danke nochmals an Paul der mir das Programm 
geschrieben hat.

Mfg
Michael

von Hannes L. (hannes)


Lesenswert?

> Int. RC Osc. 128 kHz; Start-up time: 14 CK + 64 ms

Der will schon noch. Du musst halt die ISP-Frequenz entsprechend 
reduzieren (max 25% der Taktfrequenz). Ich habe da betreffs Pony mal was 
von "veryslow" in der Configurationsdatei gelesen, soll aber nicht oder 
nur schlecht dokumentiert sein.

...

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.