PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Treppenlicht



nene
01.06.2005, 19:39
Hallo,
habe eine Saublöde Frage die hier warscheinlich nicht reingehört, aber habe schon überall danach gesucht.
Hat jemand ein Programm für ein Treppenlicht mit Zeitbegrenzung, möschte das über eine C-Control Typ M steuern.

in voraus nene O:)

Florian
01.06.2005, 19:41
Hallo nene!
Ich meine zwar, dass die CC dafür etwas überdimentsioniert ist und auch etwas zu teuer, aber wenn Du es nur als Experiment zum Einstieg machen möchtest ist das natürlich eine sinnvolle Aufgabe! ;o)

tholan
01.06.2005, 20:27
Da gibts hier bei uns in Berlin 'ne ganz neue TCU
(Time Controller Unit)
Das Ding heißt LM555 und gibts bei Segor für 0,25 Eur.
Läßt sich über R/C Kombinationen Programmieren.

Mal ehrlich:
Mit der CC M-Unit als Treppenlichtverzögerung würdest Du
'ne Ameise mit 'ner Atombombe erschlagen.
Wie soll denn das Licht geschaltet werden?

Madgyver
01.06.2005, 21:39
Hey, ich hab hier auch schon erlebt, dass jemand ein Blinklicht haben wollte und noch nie was von Flip-Flop gehört hat...

Marco78
01.06.2005, 22:53
nene wollte ja nicht wissen, was man an Stelle einer CC nehmen kann, sondern wollte ein Programmbeispiel haben.
Warum gleich mit KI anfangen, wenn ein "Hello World" angebrachter ist?

Es tut mir auch Leid, das auch ich hier jetzt was schreibe ohne wirklich helfen zu können. Ich wollte eigentlich nur mal ans Thema erinnern!

Manf
01.06.2005, 23:27
Die Funktion ist doch, ein Einschaltsignal zu erhalten, es auszugeben und nach einer einstellbaren Zeit zurückzunehmen.
Ein Nachtriggern könnte auch noch dazukommen.

Dazu kommt der Schalter zur Eingabe der nicht entprellt sein muss und der Übergang zum Leistungsteil der entsprechend isoliert sein muss.
Dann kommt die Unterbringung und die Versorgung der Steuerung.

Wenn es nur um das Programm geht dann sollte "nene" sagen mit welchen Basicprogrammen er schon Erfahrung hat.
Manfred

tholan
02.06.2005, 11:57
@nene:
Nix für ungut, war wohl 'n bischen salopp.
So 'n Progrämmchen währe wohl schnell zusammengehackt.
Schreib doch mal die Spezifikationen.
Soll die Lichtsteuerung evtl. nur zu bestimmten Tageszeiten funktionieren?
Soll sie über einen Lichtsensor enabled werden?
An welche Pins willst Du was anschliessen?
Bist Du überhaupt noch da??

iche
02.06.2005, 12:09
Hie alle,
ja Manf du trifst den Nagel genau zwichen die Augen, ich habe die Software C-Control Basic 1.33 ich hoffe das ist ausreichend und habe bissel mit rumexperimentirt.
Ein Treppenlicht ist in sofern einfach und braucht auf keinen fall unbedingt die c-contol das ist schon klarr, aber ich möschte die sache noch ausweiten und wissen ob man diese noch so Programmieren kann das nur ein Taster für 5 verschiedene Lampen zuständig ist? hat ein bestimten grund ,fragt lieber nicht.
z.B

taster 1 = LED 1

taster 1 = LED 2

taster 1 = LED 3

taster 1 = LED 4

taster 1 = LED 5

das bei jeder betätigung nur eine geht und das hintereinander weg

also wen LED1 dan nicht LED 2,3,4,5.

wen LED 2 dan nicht 1,3,4,5

wen LED 3 dan nicht 1,2,4,5

usw.
ich hoffe das ist bissel angekommen, wenn nicht dan würde ein normales Treppenlicht-Programm auch erst mal ausreichen.

Klaus_0168
02.06.2005, 14:37
Hi all,

@nene :
Für Deine Aufgabe brauchst Du eine 'verzögerte Ausschaltung'. Grundlage dafür ist, das Du mit Zeitgliedern umgehen kannst. Leider habe ich nicht genug Erfahrung mit C-Controller (gilt auch später für @iche).
Beim Betätigen des Tasters wird der Timer resettet (mit dem Zeitwert geladen) und beim Loslassen des Tasters lässt man den Timer laufen. Solange der Timer läuft wird das Treppenhauslicht eingeschaltet. Wenn die Zeit abgelaufen ist, geht das Licht aus.

@iche :
Die Funktion die Du haben willst ist ein normaler Zähler, der beim Werte > 5 überläuft und auf 1 gesetzt wird. Mit dem Taster zählst Du hoch und das Zählergebnis wird per Vergleicher decodiert.

Was jetzt folgt ist kein Programmcode, aber es sollte verständlich sein :

'Anfang'
Wenn Taster betätigt -> Zähler = Zähler + 1
Wenn Zähler > 5 dann setze Zähler = 1

Wenn Zähler = 1 dann LED 1 einschalten
Wenn Zähler = 2 dann LED 2 einschalten
Wenn Zähler = 3 dann LED 3 einschalten
Wenn Zähler = 4 dann LED 4 einschalten
Wenn Zähler = 5 dann LED 5 einschalten
'Ende'

Achtung !! Für das Zählen brauchst Du die Flanke des Tastsignals.
Falls Du eine anderer Alternative als den IF - THEN - Befehl hast ist es guter Programmierstil, wenn Du diesen Weg nimmst.

Viel Spass bein Probieren wünscht Euch
Klaus

tholan
02.06.2005, 16:41
@iche:
Paß auf mit dem Taster.
Nach der Variablendeklaration solltest Du
den gleich mit dem "deact" Befehl auf Eingang setzen.
Falls der auf Ausgang stehen sollte und er führt eine 1
machst Du Dir mindestens diesen Port an Deiner MCU mit dem
Taster kaputt.
Braucht ihr denn weitere Hilfe, oder wollt ihr's selbst
rausprobieren?
Nochn' Tip @iche:
Bei CCBasic gibts den schönen Befehl "shl",
heißt zu deutsch: shift left (schieb nach links)
Frage:
Soll immer eine der fünf LEDs an sein, oder gibt es
den sechsten Zustand: alle aus?

nene
02.06.2005, 18:24
Hi alle

ich kann jede hilfe gebrauchen auch vieleicht mit den anklemmen der Ports,aber wie soll nun das im ganzen aussehen ? bekomme einiege Befehle zugeworfen und kann wiklich nicht viel mit anfangen :-s wie der zusammenhang dan nun sein sol. mit zeit und "shl"(schieb nach links) :-k

Manf
02.06.2005, 18:40
Wenn es nur um das Programm geht dann sollte "nene" sagen mit welchen Basicprogrammen er schon Erfahrung hat.
Das war schon so gemeint, je mehr Du sagst wie weit Du bist, desto genauer kann Dir geholfen werden.
Hast Du einen Programmentwurf?, eine Testroutine aus der Du das Programm entwickeln möchtest? Hast Du die Befehlsliste schon einmal ganz durchgelesen?
Wie soll der Aufbau erfolgen.
Du siehtst ja, viele wollen helfen.
Manfred

tholan
02.06.2005, 18:52
Ok,
Du brauchst ne LED, 'nen Vorwiderstand 1kOhm (ist hell genug)
nen Taster, bischen Litze (ich nehm immer alte Floppykabel)
und 'nen Lötkolben.
Dann lötest Du den Vorwiderstand in Reihe an die LED.
welche Seite der LED ist in diesem Fall wurscht.
An den Ein-Taster lötest Du 2 Litzen (Drähte).

bin gleich wieder da.

tholan
02.06.2005, 19:23
Die LED lötest Du jetzt an Port1:
Bei der Kathode der LED, das ist der Pin, der an Minus kommt,
sollte der Anschlußdraht im Auslieferzustand ein bischen kürzer sein,
zudem sollte am LED-Gehäuse die Verdickung unten an der Seite abgeflacht sein. Hoffe, das ist verständlich.
Diese Seite jedenfalls sollte an Minus gelötet werden.
Der andere Anschluß der LED, die Anode, kommt an Port1.
An einer Seite der LED hängt natürlich noch der Widerstand dazwischen.
Wenn Ihr soweit seit, könnten wir die schon mal zum blinken bringen.

tholan
02.06.2005, 19:41
Schiebe noch kurz das Progrämmchen hinterher:

DEFINE led PORT[1]
led = 1
#anfang
TOG led
PAUSE25
GOTO anfang

Fragt ruhig, wenn was unklar ist.

nene
03.06.2005, 13:44
ok, sehr hilfreich mit der lötanleitung, aber das programm ist ohne taster oder schalter, die LED blinkt immer nur.
wie mus das aussehen wen ich den taster dazu einbinde möschte wie port(taster) 1 = Port (led) 2 ?

und die frage wie weit ich bin mit den program ! nicht weiter als ihr hier seht :cry:

nene
03.06.2005, 15:40
so lötung duchgefürt und es blinkt, O:) O:) wie nu mit dem schalter !!!

tholan
03.06.2005, 16:03
O.K. , weiter gehts:
Ein Kabel vom Taster an Port 9 klemmen, anderes an Masse.
Nochmal Vorsicht, wie oben schon gesagt:
Der Port, besser der ganze Byteport sollte jetzt nur noch als Eingang genutzt werden.
Die Pullups werden dann enabled, falls Dir das jetzt schon was sagt.
Auf Deutsch: Mittels Zuschaltung der internen Widerstände liegt am Eingang
"high" an. Mit dem ein-getasteten Taster legst Du "low" an den Eingang.
Es fließt dann ein geringer sogenannter "Querstrom" über den internen
Widerstand nach Masse Iq=5V/10000Ohm.
Codeschnipsel kommt gleich.

tholan
03.06.2005, 16:43
Hab gerade mit Erschrecken festgestellt, daß
wohl nur die "große" CC1 interne Widerstände hat.
Bei der Unit-M muß man die wohl extern nachrüsten.
Nehme erst mal an, Du hast die Große.

Define zaeler Byte
Define led Port[1]
Define tast Port[9]
led = 0
Deact tast
#anfang
If tast = 1 then gosub warten
Goto anfang

#warten
led = 1
For zaeler = 0 to 60
Pause 50
Next zaeler
led = 0
Return


Ich bin mir nicht so sicher, ob in Zeile 7 (If tast...) 'ne 0 oder
'ne 1 stehen muß (vielleicht negative Logik). Mußte ausprobieren.
Pause 50 heißt: 50x20Millisek. = 1. Sekunde,
das ganze 60x macht eine Minute Licht an für Dein Puppenhaus.
Ich denke mal so pfundst's.

tholan
03.06.2005, 20:55
Nachtrag:
hab meine CC angeschmissen und mal eben probiert:
In Zeile 7 muß es heißen: if tast=0 then gosub warten
und das Licht ist natürlich 61 Sekunden an und nicht 60.
Mich macht das beim CC-Basic sowieso irre, daß
die bei den Ports bei eins anfangen zu zählen,
wenn du mal mit logischen Verknüpfungen
angeschlossene Logic-IC ansteuern wirst, wirst Du
das auch merken.

Hab auch gerade mal nachgeblättert und gesehen, daß
Du doch die "Unit Typ M" hast. Hier solltest Du am Taster/Portpin
den Pullupwiderstand nachrüsten, ansonsten schaltest Du mit dem Taster
Masse nach Masse und dat is ungeschickt.

nene
04.06.2005, 09:47
ok, werde es erst mal in ruhe zusammen löten und wieder berichten, ich glaub der schalter mus auch ein 10k vorwiederstand haben wen ich das richtig gesehen habe.
ja hbe noch die alte control O:)

kann man hier in forum auch bilder einsetzen habe da noch was kurioses wo ich eure hilfe eventuell auch brauche.

cu nene

nene
05.06.2005, 11:53
hi tholan
habe alles gelötet und funst an der hardware, aber bei der simulatin über die giports mit software haut das nicht hin, komich.
aber danke euch allen erstmal für die hilfe.

tholan
06.06.2005, 11:04
Hi nene,
was issn' "Simulation an den Giports"?
Ich nehm immer den DOS- "Compiler".
Der hat keinen Simulator.