Forum: Mikrocontroller und Digitale Elektronik programmierbarer Ein-/Ausschalter


von Thomas L. (thomasil)


Lesenswert?

Hallo,

bin auf der Suche nach einer Lösung für folgende Herausforderung:

Ein Schalter soll eine Last mit 12 Volt (Drehmagnet) programmiert ein- 
und ausschalten.

Also, ich betätige einen "Schalter" (oder Taster) mit meinem Finger in 
folgender Weise:

10 Sekunden eingeschaltet
6 Sekunden ausgeschaltet
3 Sekunden eingeschaltet
5 Sekunden ausgeschaltet

usw., das setzt sich mit beliebigen Zeiten fort, bis ich einen 
willkürlichen Ablauf habe, der einige Minuten dauert.

Diese meine Schalter-Betätigungen sollen so einfach wie möglich (am 
Besten ohne PC bzw. Notebook) irgendwie (???) aufgezeichnet bzw. gemerkt 
werden.

Wenn die gesamte Reihenfolge (also das Ein- und Ausschalten mit 
unterschiedlicher Zeitdauer) abgeschlossen ist, soll per Knopfdruck die 
Aktion selbsttätig wiederholt werden.

Also, alle meine Schalter- bzw. Tastendrücke werden nun automatisch 
ausgeführt, am Besten als Endlosschleife.

Hat jemand eine Ahnung, wie ich das ohne auf PC/Notebook zurückgreifen 
zu müssen, am Einfachsten bewerkstelligen kann?

Ich hoffe ich konnte meine "Problembeschreibung" verständlich ausdrücken 
...

Vielleicht noch einmal zum besseren Verständnis:

Eine Lampe wird in willkürlichen Intervallen ein- und ausgeschaltet. Mal 
brennt sie 12 Sekunden und ist danach für 3 Sekunden aus, dann brennt 
sie wieder für 5 Sekunden und ist danach für 7 Sekunden aus usw.

Alles soll irgendwie aufgezeichnet werden und danach, aktiviert, 
selbständig in einer Endlosschleife ablaufen.


Vielen Dank schon im Voraus für Tipps und Ratschläge ...


Gruß,

Thomas

von Stefan (Gast)


Lesenswert?

µC

von xerox (Gast)


Lesenswert?

Klar mit einem Mikrocontroller ist das relativ einfach zu 
bewerkstelligen. Allerdings wird das mit nur einem Taster schwirig da 
man ja irgendwie den Aufzeichnungsmodus/Repeat einstellen können sollte. 
Mit einem ATtiny sollte das recht einfach machbar sein.

Ich vermute allerdings das Du von Mikrocontrollern bzw. Elektronik kein 
Plan hast, somit wird das jedenfalls auf die Schnelle nicht für Dich 
machbar sein. Wenn Du Zeit hast, dann arbeite mal das AVR Tutorial 
ab..dann kannst programmieren.


Mfg xerox

von MK (Gast)


Lesenswert?

Auf hatten wir eine Sogenannte klick klack box.
D.h. Schwarze Box in 2 input Buchsen und 2 output buchsen waren und noch 
ein Display auf dem dann Stand was ein gestellt war.
Das denken übernahm ein pic (µM) und durch für tasten konnte man dann 
eben die Werte einstelellen i welchen intervallen der Strom an und aus 
war.

Ob es so was auch zukaufen gibt weiß ich jetzt nicht.

Gruß,
Matthias K.

von thomasil (Gast)


Lesenswert?

Hallo Matthias K.,

würdest Du denn Deine Klick-Klack-Box verkaufen?


Gruß,

Thomas

von Karl H. (kbuchegg)


Lesenswert?

Wie kritisch ist denn die Anforderung nach "du gibst mit dem Finger 
vor".

Sonst würde mir noch ein Motor einfallen, der eine Scheibe 1 mal in der 
Minute dreht. In der Scheibe sind willkürliche Schlitze und eine 
Lichtschranke tastet die Schlitze ab und schaltet ein Relais 
entsprechend.

Die Zeiten werden dann mit Bohrmaschine und Feile festgelegt.

Oder noch einfacher: die Scheibe hat einen ungleichförmigen Rand und da 
sitzt so ein Industrieschalter mit einer Rolle.


Edit: Also sowas
http://www.eibmarkt.com/dwde/products/Rollenschalter-T1R-236-20Z-M20---T1R-236-20Z-M20.html

(Ich hab jetzt den erstbesten genommen, den ich gefunden habe. Nur um zu 
verdeutlichen, was ich meine)

von Jürgen S. (jurs)


Lesenswert?

Thomas Libermann schrieb:
> Hat jemand eine Ahnung, wie ich das ohne auf PC/Notebook zurückgreifen
> zu müssen, am Einfachsten bewerkstelligen kann?


Das geht mit einem Mikrocontroller und einem Relais-Schaltmodul.

Wenn die Einstiegshürden möglichst gering sein sollen, z.B. ein 
Arduino-Uno und ein dazu passendes Relais-Board.

Und dann mußt Du für das Board zwei Programme schreiben.
Ich nenne die Programme mal:
1. "Teach-in-Programm" zum Erlernen der Ein-Ausschaltfolge
2. "Ausführungsprogramm" zum Ausführen der erlernten Schaltfolge

Beim "Teach-in-Programm" erfaßt Du per Timer und einem digitalen Eingang 
die Ein- und Ausschaltzeiten und speicherst die Zeiten und 
Schaltzustände im Eprom-Speicher ab. Aufpassen, die digitalen Eingänge 
dürfen nur mit 5 Volt befeuert werden, also von der 12-Volt-Last 
unbedingt die Spannung mit Spannungsteiler (z.B. Poti) abgreifen.

Das "Ausführungsprogramm" enthält dann ein anderes Programm, das über 
einen digitalen Ausgang und ein Relais die Last ein- und ausschaltet. 
Dieses liest dann aus dem Eprom-Speicher die Zeiten und Schaltzustände 
aus.

Also ein Mikroprozessor-Board, das zum Lernen und Ausführen jeweils 
einmal anders beschaltet und anders programmiert wird.

Im Eprom-Speicher eines Arduino Uno stehen 1024 Bytes Speicherplatz zur 
Verfügung. Solange die Schaltabstände nicht mehr als (knappe) 9 Stunden 
zwischen den Schaltvorgängen betragen, reicht ein Integerwert (2 Bytes) 
zur Speicherung des zeitlichen Sekundenabstands (nur ganze Sekunden, 
keine Sekundenbruchteile) und 1 Byte zur Speicherung eines 
Schaltzustands, d.h. Du kannst 1024/3 = 341 getimte Schaltvorgänge 
direkt im Mikrocontroller speichern, also 170 mal AN und 170 mal AUS mit 
Zeitabstand. Wenn diese Zahl nicht reicht, könnte man ein Board mit mehr 
Speicher verwenden, oder statt des eingebauten Eprom-Speichers z.B. auf 
einer SD-Karte speichern.

Ist eben nur eine schöne Bastelei und Programmierung, um das so 
hinzubekommen, wenn man etwas in der Art mit einem Mikrocontroller noch 
nie gemacht hat. Vorteilhaft sind Kenntnisse in C-Programmierung und in 
Digitaltechnik. Oder wenn man es auf Basis der Arduino-Plattform lösen 
möchte, ggf. dem festen Willen sich da kräftig reinzuknien, diese 
Plattform kapselt die Komplexität insbesondere der Programmierung vor 
Anfängern etwas ab.

von thomasil (Gast)


Lesenswert?

@ Karl Heinz Buchegger:

Ja, das wäre eine für meine Bedürfnisse sehr notdürftige Notlösung.

Lieber wäre mich allerdings die Lösung von Jürgen S. - wenn es so etwas 
fertig geben würde ...



@ Jürgen S.

Ja, das hört sich nach genau dem an was mir vorgeschwebt ist. Gibt es 
denn so etwas schon in irgend einer Form fertig zu kaufen???

von Jürgen S. (jurs)


Lesenswert?

thomasil schrieb:
> Ja, das hört sich nach genau dem an was mir vorgeschwebt ist. Gibt es
> denn so etwas schon in irgend einer Form fertig zu kaufen???

Mit Googeln habe ich z.B. einen "Vacation Timer" gefunden, 
Gerätebeschreibung hier:
http://everflourish-europe.eu/app/download/5777873618/EMT767EMT767A+maunal+(G).pdf

Das Gerät wird am 230Volt-Stromnetz als Zwischenstecker betrieben, es 
kann bis zu 64 Ein-/Auschaltvorgänge aufzeichnen, wobei der 
Mindestschaltabstand 3 Sekunden beträgt. Und die Wiedergabe der 
Schaltfolge erfolgt täglich zur selben Uhrzeit, ist also nicht frei 
wählbar. Das Gerät wäre also quasi eine von den Schaltzeiten her frei 
durch Teach-in programmierbare modifizierte Zeitschaltuhr. Mit dem 
Zweck, dass während Deiner Abwesenheit im Urlaub beispielsweise durch 
Ein-/Ausschalten einer Lampe die Anwesenheit von Personen nachts 
simuliert werden soll.

Die Industrie produziert Geräte immer für einen bestimmten 
Anwendungsfall. Wenn der genaue Anwendungsfall unbekannt ist, kann man 
nichts darüber sagen, ob es ein passendes Gerät schon aus industrieller 
Fertigung gibt. So allgemein, wie Du es beschrieben hast, fällt mir 
außer dem Vacation-Timer nichts weiter als Fertiggerät ein.

von Ingolf S. (bootsmann66)


Lesenswert?

Ich finde der Arduino-Uno wäre für einen Anfänger genau richtig.
Ich würde den Taster auf einen Pin mit Interruptserviceroutine legen. In 
der Routine kann man dann die Zeitabstände zwischen den Betätigungen 
messen.
Speichern der Zeitabstände im eeprom. 1024 Byte stehen zur Verfügung. 
Ich würde die Zeit als 15Bit speichern=32768 Sekunden=9h, das 16. Bit 
für den Zustand Ein/Aus oder einfach nur nach jeder Pause umschalten 
dann kann man auch die 16Bit voll für die Speicherung nutzen=65536 
Sekunden=18h. das ergibt auf jeden Fall maximal 512 Schaltbefehle.
Die Umschaltung zwischen Lern- und Auführprogramm einfach wie einen 
Doppelklick behandeln d.h. 2xTaster gedrückt innerhalb z.B. 1 Sekunde 
heißt Lernen beendet, gelerntes ausführen.
Sollte so oder ähnlich machbar sein.

Gruß Ingolf

von Jürgen S. (jurs)


Lesenswert?

Ingolf S. schrieb:
> Sollte so oder ähnlich machbar sein.

Da genügend Digitalpins zur Verfügung stehen, würde ich ruhig mehrere 
Kippschalter vorsehen, wenn man alles in ein Programm packen möchte:

Erster Kippschalter
Schaltstellung links ==> Lernen
Schaltstellung rechts ==> Ausführen
In Stellung "Lernen" startet das Teach-In-Programm
In Stellung "Ausführen" startet die Ausführung der Schaltfolge

Zweiter Kippschalter (nur im Modus "Lernen" relevant):
Schaltstellung links ==> Lernen AUS
Schaltstellung rechts ==> Lernen AN
Bevor das Teach-In Starten kann, muss dieser Schalter zunächst in 
Stellung "Lernen AUS" sein, als Sicherheit gegen 
unbeabsichtigtes/ungesteuertes Neulernen
- Beim Umlegen auf "Lernen AN" ==> Lernmodus beginnt
- Beim Umlegen auf "Lernen AUS" ==> Lernmodus wird beendet,
die zunächst im Arbeitsspeicher gespeicherte Schaltfolge wird ins Eprom 
geschrieben

Dritter Kippschalter (nur im Modus "Lernen" relevant):
Schaltstellung links ==> Last AUS
Schaltstellung rechts ==> Last AN
Der Schalter dient zum manuellen Schalten der Last in der Lernphase

Statusanzeige vielleicht noch über die LED an Pin13, vielleicht 
schnelles und langsames Blinken, oder über extra LEDs, wenn man Luxus 
möchte.

Also vier Digitalpins würde ich insgesamt verwenden: 3 digitale Eingänge 
zum Abfragen von Stellungen der 3 Kippschalter, 1 digitaler Ausgang für 
das Relais zum Schalten der Last. Und alles ist in einem Programm.

Das sieht mir für Arduino sehr machbar aus:
- 1 Arduino Uno
- 3 Kippschalter
- 3 Pull-Up Widerstände 10K
- 1 Relais-Schaltmodul
- passendes Programm zur Steuerung der Funktionen

> Ich finde der Arduino-Uno wäre für einen Anfänger genau richtig.

Sehe ich auch so bei so einem Projekt, wenn man in die 
Mikrocontroller-Programmierung mit Arduino einsteigen möchte.

von Frank (Gast)


Lesenswert?

Da ein Arduino über einen USB-Anschluss verfügt, könnte man auch eine 
einfache PC-Applikation schreiben und die Schaltsequenzen irgendwie 
grafisch eingeben ... falls die ursprüglich gewünschte Eingabe nur 
Sparsamkeits-Überlegungen entspringt und keinen speziellen 
Unterhaltungswert haben soll ...

von thomasil (Gast)


Lesenswert?

@ Jürgen S.:

Also, der programmierbare Vacation Timer scheint fast genau das Gerät zu 
sein, das meine Bedürfnisse befriedigt.

Ich bin sprachlos ... Viele wissen einfach mehr als einer ...

Vielen herzlichen Dank für all die Mühe (alleine schon das Googeln ...).

Ich werde sehen, ob ich solch ein Gerät auftreiben kann und wie es meine 
Bedürfnisse befriedigt. Doch ich denke, bis auf die "Einschränkung" mit 
den drei Sekunden ist das Gerät absolut perfekt!

Vielen Dank noch einmal!!!


Gruß,

Thomas

von thomasil (Gast)


Lesenswert?

@ Ingolf:

Ja, der Arduino-Uno könnte ebenfalls interessant sein, wenn man denn die 
Geduld und Muße hat, sich die Arbeit damit aneignen zu können.

Habe zwar vor über 25 Jahren ein Studium in Elektronik gemacht, seither 
jedoch nie wieder etwas mit Elektronik zu tun gehabt (habe einfach zu 
wenig Geduld ...).

Danke jedoch trotzdem für den Tipp!


Gruß,

Thomas

von Jobst M. (jobstens-de)


Lesenswert?

thomasil schrieb:
> bis auf die "Einschränkung" mit den drei Sekunden

Ab wann ist es denn keine Einschränkung mehr?


Gruß

Jobst

von Streifenschreiber (Gast)


Lesenswert?

Früher (tm) hätte man das mit einem Streifenschreiber gebaut:
Beim Aufzeichnen wird ein dünner Papierstreifen gleichmäßig an einer 
Schreibeinrichtung (dicker Filzschreiber mit Hubmagnet) vorbeigezogen 
und immer wenn die Taste gedrückt wird, drückt der Magnet den Schreiber 
auf's Papier. Bei der Wiedergabe wird der Papierstreifen durch eine 
Lichtschranke gezogen, die so eingestellt ist, dass sie den 
Schreiberstrich erkennt und in das Ausgabesignal umwandeln kann.

von MaWin (Gast)


Lesenswert?

> Früher (tm) hätte man das mit einem Streifenschreiber gebaut

Damals (auch tm) gab es auch die Lösung mit einem 1024 bit RAM:

Es wurde von einem NE555 im Sekundentakt (oder einem beliebigen
anderen) durchgetaktet, und im Lernmodus speicherte es die
Stellung eines Taster (Spannung oder keine Spannung an einem
Eingang), und danach wiederholte es diese Spannungsfolge am
Ausgang endlos.

Heute wird es schweirig, ein i2102 zu bekommen.

http://www.ebay.com/itm/Vintage-INTEL-C2102A-4-1K-RAM-2102A-16-PIN-GOLD-CERAMIC-/390115423813

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Thomas Libermann schrieb:
> Hat jemand eine Ahnung, wie ich das ohne auf PC/Notebook zurückgreifen
> zu müssen, am Einfachsten bewerkstelligen kann?

MaWin schrieb:
> die Lösung mit einem 1024 bit RAM:
> Es wurde von einem NE555 ... durchgetaktet,

MaWin schrieb:
> ein i2102 zu bekommen.

Theoretisch geht doch jedes beliebige (alte) Parallele EEPRom / SRam den 
man irgendwo rausrupft, an dem man dann einen Binär-Counter sammt NE555 
batscht. Mit nem kleinen Schalterchen für den Write-Enable-Pin am Rom / 
Ram. ;-) Ist nur etwas frickelig wenn man den Counter nicht komplett 
durlaufen lässt / bzw. weniger Aufzeichnen will. (Wegen dem Counter 
Reset, und der Dauerschleife)
Man müsste entsprechend schneller / langsamer tackten, damit es Sinn 
ergibt ;-)  -->> Wäre jedenfalls eine absolut simple ~1 Euro Lösung...
(und du kannst bis zu 8 Channels gleichzeitig aufzeichnen)

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

> ohne auf PC/Notebook zurückgreifen zu müssen

...Oder so ähnlich...

Gruß, TS

von Jobst M. (jobstens-de)


Lesenswert?

Ich hätte noch eine Frage: Wie lange muss aufgezeichnet werden?

(In der Parametric-Table von Atmel steht der ATtiny828 mit 512KB SRAM 
... Im Datenblatt sind es dann aber nur noch 512Byte - der wäre ideal 
gewesen ...)


Gruß

Jobst

von thomasil (Gast)


Lesenswert?

Also, in etwa zwei Minuten ... Ist das zu lange??? Dann vielleicht 1,5 
Minuten ...

von Mikel M. (mikelm)


Lesenswert?

Jobst M. schrieb:
> Ich hätte noch eine Frage: Wie lange muss aufgezeichnet werden?
>

und welche Auflösung ist gefordert?
Bei 1s Auflösung könnte man pro Byte 8 Sekunden speichern, Sprich man 
braucht 8 Byte pro Minute. Wenn 2 s Auflösung reichen würde käme man mit 
4 Byte hin. Bei 0,5s brauch man 16Bytes würde immer noch für eine 
Sequenz von 30Minuten reichen bei 500 Byte.
 Wenn man wüßte welche Anforderungen an der Sequenz gestellt würden, 
könnte man auch konkreter Antworten.

von thomasil (Gast)


Lesenswert?

Nun, die Auflösung ...

So genau weiss ich gar nicht, wie ich antworten soll ...

Auf alle Fälle muss es nicht mikrosekundengenau sein. Es reicht, wenn 
die Bewegung des Drehmagneten in etwa eine Sekunde nach Drücken bzw. 
Loslassen des Tasters beginnt. Also, elektrotechnisch betrachtet, eine 
halbe Ewigkeit.

Es ist keine Präzisions-Anwendung, die ich da plane. Da können also sehr 
große Toleranzen und eine äußerst grobe Auflösung "teilnehmen", ohne 
dass das problematisch wird.

Ich hoffe, diese Aussage war hilfreich ...

von Jobst M. (jobstens-de)


Lesenswert?

Also:

3 Taster, 2 LEDs, ein Relaisausgang.

Taster: Aufnahme, Wiedergabe und 'Der Taster'
LEDs: Aufnahme aktiv, Wiedergabe aktiv

Bedienung:
Bei Betätigung des Tasters wird immer das Relais geschaltet. Egal, ob 
Aufnahme, Wiedergabe oder keins von beidem aktiv.

Wird 'Aufnahme' gedrückt, werden alle Tastendrücke des Tasters 
aufgenommen, bis 'Aufnahme' nochmals gedrückt wird oder der Speicher 
voll ist. Dabei leuchtet die Aufnahme-LED.

Wird 'Wiedergabe' gedrückt, werden die aufgenommenen Tastendrücke 
nochmals auf dem Relais abgespielt. Die Wiedergabe-LED leuchtet.

Bei Stromverlust oder erneuter Aufnahme wird die alte Aufnahme gelöscht.

Aufnahmedauer max. etwas über 3 Minuten bei einer Auflösung von 1/10s.

Ist mit einem ATtiny45 + Relais (+Treiber) zu erledigen.


... so würde ich es lösen ...


Gruß

Jobst

von Dietrich L. (dietrichl)


Lesenswert?

Mikel M. schrieb:
> Bei 1s Auflösung könnte man pro Byte 8 Sekunden speichern,

Wieso das? Man kann doch die Zeit zwischen 2 Ereignissen zählen, dann 
reicht ein Byte für 255, 2 Byte für 65535 Sekunden. Der Speicher 
begrenzt dann in erster Linie nur die Anzahl der Ereignisse.

Gruß Dietrich

von Jobst M. (jobstens-de)


Lesenswert?

Dietrich L. schrieb:
> Wieso das? Man kann doch die Zeit zwischen 2 Ereignissen zählen, dann
> reicht ein Byte für 255, 2 Byte für 65535 Sekunden. Der Speicher
> begrenzt dann in erster Linie nur die Anzahl der Ereignisse.

... oder ein Überlauf der Sekunden. (Was dann Tage an Aufnahmezeit 
bedeuten würde)
Sicherlich ökonomischer, aber der TO benötigt nur 2 Minuten.


Gruß

Jobst

von Karl H. (kbuchegg)


Lesenswert?

Jobst M. schrieb:
> Ich hätte noch eine Frage: Wie lange muss aufgezeichnet werden?
>
> (In der Parametric-Table von Atmel steht der ATtiny828 mit 512KB SRAM
> ... Im Datenblatt sind es dann aber nur noch 512Byte - der wäre ideal
> gewesen ...)

Ich gebe zu bedenken dass SRAM unter Umständen nicht wirklich sinnvoll 
ist. Ein Stromausfall reicht und die Programmierung ist futsch.
D.h. ich würde das gelernte Programm das (so wie es aussieht) 
eigenständig und ohne Aufsicht laufen soll, auf jeden Fall ins EEPROM 
legen, so dass es nach einem Strom-weg auch eigenständig wieder anläuft.

von Mikel M. (mikelm)


Lesenswert?

Dietrich L. schrieb:
> Mikel M. schrieb:
>> Bei 1s Auflösung könnte man pro Byte 8 Sekunden speichern,
>
> Wieso das? Man kann doch die Zeit zwischen 2 Ereignissen zählen, dann
> reicht ein Byte für 255, 2 Byte für 65535 Sekunden. Der Speicher
> begrenzt dann in erster Linie nur die Anzahl der Ereignisse.

Weil es eine von vielen Möglichkeiten ist? Wenn die Mehrzahl der 
Ereignisse sehr kurz ist, kann ich die Aussage damit machen das 8 
Byte/Minute reichen. Also über 60Minuten.
Nach Deiner Methode können im ungünstigsten Fall nur weniger als eine 
Minute gespeichert werden.
  Ich wüßte noch zig verschieden Möglichkeiten, das effektiver zu 
speichern, wenn der TO denn endlich mal mit vernünftigen Infos 
rüberkommen würde, so ist eh alle nur alles spekulativ.
 Was im Endeffekt sinnvoll ist, kann man nur sagen wenn man genauere 
Vorgaben hätte, aber die TO sagen ja nie was, alles muß man mühsam aus 
denen raussaugen und hab und zu bekommt man ne kleine Information, ... 
oder auch nicht.
 Er war so gnädig zu beantworten das sekundengenau reicht, aber wie lang 
die Sequenz maximal ist, weis immer noch keiner.
 Die Hardwarekosten sind doch eh egal bei so etwas. nen atmega32 zu 50 
cent hat genug speicher, oder man nimmt nen arm für 5-15 Euro mit 
massenweise Speicher, oder hängt nen eeprom dran mit 128MB für 50 cent. 
Die Kosten sind doch peanuts. Däumchen drehen tut eh jeder uC dabei. 
Reichen tut nen tiny13.
 Das Projekt ist trivial, für nen Anfänger evt ne Herausforderung. 
Vielleicht sollte er einfach jemanden nen paar Euro bieten der ihm das 
zusammenbaut.

von Thomas L. (thomasil)


Lesenswert?

Tut mir leid, wenn das irgendwie untergegangen ist. Die gesamte Sequenz 
ist in etwa zwei bis drei Minuten lang. Wenn es länger möglich ist (z.B. 
fünf Minuten), wäre ich noch viel mehr zufriedener.

Ebenfalls leid tut es mir, das scheinbar trotz meiner ehrlichen Mühe, so 
viele Informationen wie möglich zu geben, offensichtlich doch der 
Eindruck entstanden ist, dass ich nicht mit Informationen herausrücken 
möchte. Das ist keinesfalls so ...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Libermann schrieb:
> Tut mir leid, wenn das irgendwie untergegangen ist. Die gesamte Sequenz
> ist in etwa zwei bis drei Minuten lang. Wenn es länger möglich ist (z.B.
> fünf Minuten), wäre ich noch viel mehr zufriedener.

OK.
Und über den Daumen, wieviele Schaltsequenzen hast du so ungefähr? Das 
eine Ein/Ausphase nicht länger als 1 Minuten sein wird, denke ich dürfte 
mitlerweile klar sein (bei 2 Minuten komplett Dauer).

D.h. legst du im Speicher ab:

die Anzahl Sekunden, die ein Zustand andauern soll UND nehmen wir dazu 
noch die Konvention, dass zb das höchstwertige Bit anzeigt, ob 'ein' 
oder 'aus' herrschen soll, dann kannst du mit nur 1 Byte eine Zeitdauer 
von maximal 127 Sekunden (etwas über 2 Minuten) mit lediglich 1 Byte 
abdecken (für eine 3 Minuten dauernde Ein Phase macht man dann halt eben 
2 'Ein'-Bytes hintereinander). Bei 100 derartigen Zeitdauern brauchst du 
ganze 100 Byte. Wieviel Platz hast du in deinem Speicher? Soviele 
Zeitperioden kannst du dann maximal speichern (minus einem kleinen 
Anteil für das Programm selber).

> Ebenfalls leid tut es mir, das scheinbar trotz meiner ehrlichen Mühe, so
> viele Informationen wie möglich zu geben,

Es wäre schon mal hilfreich, wenn du konkret sagen würdest, was es 
eigentlich werden soll. Einmal ist es eine Lampe, dann ist es ein 
Drehmagnet.
Wüssten wir wo und wie das ganze eingesetzt werden soll, dann würde es 
viel leichter fallen, für die nicht gegebenen Informationen einfach mal 
sinnvolle Annahmen zu treffen.

von Thomas L. (thomasil)


Lesenswert?

> OK.
> Und über den Daumen, wieviele Schaltsequenzen hast du so ungefähr? Das
> eine Ein/Ausphase nicht länger als 1 Minuten sein wird, denke ich dürfte
> mitlerweile klar sein (bei 2 Minuten komplett Dauer).

Auch hier sehe ich wieder ein Missverständnis: So wie ich das in meiner 
ursprünglichen Anfrage angegeben hatte, wollte ich mehrere 
Ein-/Ausphasen in der Minute haben (ich schrieb damals als Beispiel:

10 Sekunden eingeschaltet
6 Sekunden ausgeschaltet
3 Sekunden eingeschaltet
5 Sekunden ausgeschaltet)

>
> D.h. legst du im Speicher ab:
>
> die Anzahl Sekunden, die ein Zustand andauern soll UND nehmen wir dazu
> noch die Konvention, dass zb das höchstwertige Bit anzeigt, ob 'ein'
> oder 'aus' herrschen soll, dann kannst du mit nur 1 Byte eine Zeitdauer
> von maximal 127 Sekunden (etwas über 2 Minuten) mit lediglich 1 Byte
> abdecken (für eine 3 Minuten dauernde Ein Phase macht man dann halt eben
> 2 'Ein'-Bytes hintereinander). Bei 100 derartigen Zeitdauern brauchst du
> ganze 100 Byte. Wieviel Platz hast du in deinem Speicher? Soviele
> Zeitperioden kannst du dann maximal speichern (minus einem kleinen
> Anteil für das Programm selber).
>
>> Ebenfalls leid tut es mir, das scheinbar trotz meiner ehrlichen Mühe, so
>> viele Informationen wie möglich zu geben,
>
> Es wäre schon mal hilfreich, wenn du konkret sagen würdest, was es
> eigentlich werden soll. Einmal ist es eine Lampe, dann ist es ein
> Drehmagnet.

Auch das hatte ich doch beschrieben, dass es sich zwar um einen 
Drehmagneten handelt, ich jedoch für eine bessere Veranschaulichung am 
Ende meiner Anfrage noch einmal das Beispiel mit der Lampe gewählt habe 
...

Es ist definitiv ein Drehmagnet. Und das Gerät ist ein 
Wasserwurst-Abschneider. Doch vermutlich ist diese Information nicht 
gerade hilfreich, sondern wird wohl zu noch mehr Verwirrung beitragen. 
Deshalb habe ich das absichtlich nicht erwähnt, um nicht noch mehr 
Verunsicherung zu streuen ...

> Wüssten wir wo und wie das ganze eingesetzt werden soll, dann würde es
> viel leichter fallen, für die nicht gegebenen Informationen einfach mal
> sinnvolle Annahmen zu treffen.

Na ja, wie gesagt, ein Wasserwurst-Abschneider, der eben von Laien 
programmiert werden soll, wann und wie lange er die Wasserwurst 
abschneiden soll ...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Libermann schrieb:
>> OK.
>> Und über den Daumen, wieviele Schaltsequenzen hast du so ungefähr? Das
>> eine Ein/Ausphase nicht länger als 1 Minuten sein wird, denke ich dürfte
>> mitlerweile klar sein (bei 2 Minuten komplett Dauer).
>
> Auch hier sehe ich wieder ein Missverständnis: So wie ich das in meiner
> ursprünglichen Anfrage angegeben hatte, wollte ich mehrere
> Ein-/Ausphasen in der Minute haben (ich schrieb damals als Beispiel:
>
> 10 Sekunden eingeschaltet
> 6 Sekunden ausgeschaltet
> 3 Sekunden eingeschaltet
> 5 Sekunden ausgeschaltet)

Ja.
Das sind 4 Phasen, keine länger als 127 Sekunden und können daher, 
selbst wenn man überhaupt nicht trickst, in 4 Bytes locker abgebildet 
werden. Du hast rund 450 Bytes (seeeehr konservativ geschätzt) zur 
Verfügung.

von Karl H. (kbuchegg)


Lesenswert?

Thomas Libermann schrieb:


> Na ja, wie gesagt, ein Wasserwurst-Abschneider, der eben von Laien
> programmiert werden soll, wann und wie lange er die Wasserwurst
> abschneiden soll ...

Na, das ist doch schon mal was.

D.h. da hängt nichts lebenswichtiges drann und eine Rundung auf 0.5 
Sekunden (da erscheint mir dann 1 Sekunde doch zu 'ungenau') ist 
ausreichend. Ich würd eventuell sogar noch feiner gehen, denn wenn das 
ganze in einer Ausstellung oder so laufen soll, bei der Besucher sich 
ihre Sequenz zusammenstellen, dann ist da immer wieder einer dabei der 
sich einen Spass daraus macht, kurze Pulse zu erzeugen.

Ist ja auch kein Thema. Dann hat man halt nicht 127 Sekunden pro Byte 
sondern bei einer Auflösung von einer 1/10 Sekunde nur 12 Sekunden pro 
Byte. Bei 450 Bytes sind das dann immer noch maximal 12*450 Sekunden 
(5400 Sekunden oder 90 Minuten) und minimal 450 * 0.1 Sekunden, also 45 
Sekunden (bei dem jede 0.1 Sekunde die Wasserwurst unterbrochen wird)

D.h. das Problem ist NICHT der Prozessor. Das Problem ist: wie gut 
kannst du programmieren. Und damit sind wir dann wieder (fast) am 
Ausgangspunkt.

von Thomas L. (thomasil)


Lesenswert?

MaWin schrieb:
>> Früher (tm) hätte man das mit einem Streifenschreiber gebaut
>
> Damals (auch tm) gab es auch die Lösung mit einem 1024 bit RAM:
>
> Es wurde von einem NE555 im Sekundentakt (oder einem beliebigen
> anderen) durchgetaktet, und im Lernmodus speicherte es die
> Stellung eines Taster (Spannung oder keine Spannung an einem
> Eingang), und danach wiederholte es diese Spannungsfolge am
> Ausgang endlos.
>
> Heute wird es schweirig, ein i2102 zu bekommen.
>
> 
http://www.ebay.com/itm/Vintage-INTEL-C2102A-4-1K-RAM-2102A-16-PIN-GOLD-CERAMIC-/390115423813

Ja, so wie sich das anhört, wäre das genau die Lösung für mein Vorhaben 
...

von Thomas L. (thomasil)


Lesenswert?

Karl Heinz Buchegger schrieb:

>
> D.h. da hängt nichts lebenswichtiges drann und eine Rundung auf 0.5
> Sekunden (da erscheint mir dann 1 Sekunde doch zu 'ungenau') ist
> ausreichend. Ich würd eventuell sogar noch feiner gehen, denn wenn das
> ganze in einer Ausstellung oder so laufen soll, bei der Besucher sich
> ihre Sequenz zusammenstellen, dann ist da immer wieder einer dabei der
> sich einen Spass daraus macht, kurze Pulse zu erzeugen.

Ja, diesen Vorschlag finde ich sehr, sehr gut!!!


> Ist ja auch kein Thema. Dann hat man halt nicht 127 Sekunden pro Byte
> sondern bei einer Auflösung von einer 1/10 Sekunde nur 12 Sekunden pro
> Byte. Bei 450 Bytes sind das dann immer noch maximal 12*450 Sekunden
> (5400 Sekunden oder 90 Minuten) und minimal 450 * 0.1 Sekunden, also 45
> Sekunden (bei dem jede 0.1 Sekunde die Wasserwurst unterbrochen wird)
>
> D.h. das Problem ist NICHT der Prozessor. Das Problem ist: wie gut
> kannst du programmieren. Und damit sind wir dann wieder (fast) am
> Ausgangspunkt.

Also, programmieren kann ich eigentlich gar nicht (mehr ...) ...

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.