Habe Verständinis dafür, das Du das Layout nicht ändern willst. Ich sehe ja jetzt, das noch andere Interesse an der Sache haben. Bin richtig überrascht. Zur Platine: Also wenn Du von hier keine Verbesserungen oder Änderungswünsche mehr bekommst, würde ich gerne ein 4 fach Layout nutzen wollen, da ich ja 3 Platinen einsetzen werde. Die eine übrige Platine kann ich ja weitergeben wenn einer Interesse hat. Wer dann zuerst an mich mailt der hat den Zuschlag. Wenn Du mir das 4fach Layout in PDF zukommen läßt, dann würde ich beim Platinenbelichter.de bestellen. Für den Bezug der Bauteile ist wohl Reichelt die erste Wahl oder?
Treppenhaus Beleuchtung zeitversetzt?
-
-
Hier mal das Eagle Board-File. Das PDF ist leider zu groß zum Anhängen, gibts bei Bedarf dann per eMail. Ich würde allerdings das Eagle-File bevorzugen, weil dort auch die Infos zum Bohren enthalten sind.
-
Danke für die schnelle Bedienung. Werde das Eagle-File zur Bestellung nutzen. Bin aber neugrierg auf das 4fach Layout. Kann Dein Eagle-File aber nicht öffnen, da ich nicht das Programm habe. Send mir bitte bei Gelegenheit das PDF-File per Mail. Dank Dir im Vorraus.
-
-
Die eine übrige Platine kann ich ja weitergeben wenn einer Interesse hat.
Oder Du schickst sie dgoersch für seine aufopfernde Arbeit. Zumindest anbieten könntest Du es, auch wenn er sie nicht nimmt.
Aber das bleibt Dir natürlich freigestellt.
(soll jetzt keine Aufforderung oder Kritik sein! Wäre lediglich eine nette Geeste)Habs hier auch von Anfang an verfolgt und finde das Ergebnis echt gut. Leider fehlt mir der passende Einbauort..
-
-
Danke nochmal für Schaltplan und Stückliste
Jetzt brauch ich nur noch eine Treppe wo sich der Einbau lohnt -
Danke erst mal für das PDF per Mail.
Und noch was:
Ich möchte dem Vorschlag von TImbuk2 folgen. Für mich wäre es eine Ehre die 4 Platine dem Schöpfer dieser Sache zu geben. Ich habe so ein Teamwork wie ich es hier erlebe noch nirgend wo erlebt. Ich arbeite in einem amerikanischen Konzern der mir jeden Tag vorgibt was Teamwork heißt. Aber das hier ist ohne Gleichen. Ich hätte nie gedacht das Dominique mich so unterstüzt in der Sache. Ich wurde erst durch Dominique motiviert diese Sache auch in die Realität umzusetzen. Danke hierfür.
Aber jetzt gehts erst mal ans Platinen beschaffen und bestücken.
-
Die vierte Platine nehme ich gerne an. Ich hab zwar keine Treppe, aber ein Board mit 24ch und ULNs als Ausgangstreiber kann man ja auch für anderes brauchen. Danke dafür, und für die Blumen
-
Das ist das mindeste was ich bis jetzt tun kann für Dich. Werde heute die Bestellung aufgeben und die Teile beschaffen.
-
Dann hoffe ich mal, dass alles auch in der Praxis so funktioniert wie geplant
-
Huhu
habe ich als kompletter C nixwissen eine chance das nachzubauen?
Also wenn ich mir auch die platine bestellen würde und und den chip beschreibe würde es dan laufen?
hab da nur etwas muffen vor weil wenn ein fehler drin ist kann ich nichts im programm ändern oder umschreiben.
wo im progtramm steht welches pin an welche LED angeschlossen ist? hab das immer noch nicht gefunden
Kann ich das C programm auch über Bascom auf den chip schieben?
oder noch vieeel besser, wird es das programm auch in boscom geben ? irgendwann?
würde gerne eins aber vernünftig können
Gruss Gregor
-
Nachdem ich bisher weder Platine vorliegen habe, noch die Software auf der Platine testen konnte, kann ich natürlich keine Garantie dafür übernehmen, dass alles funktioniert. Ich sehe allerdings keinen Grund, warum die Software so wie sie ist nicht ohne irgendwelche großen Änderungen oder Anpassungen laufen sollte.
wo im progtramm steht welches pin an welche LED angeschlossen ist? hab das immer noch nicht gefunden
Zeile 38-40 ist die "Patchtable". In den Schleifen wird die der Reihe nach durchlaufen, durch umsortieren kann man die Reihenfolge der Ausgänge auf die Hardware anpassen. Die Zahlen von 0-23 stehen dabei für PortA0..7, PortB0..7 und PortC0..7. Die PWM selber ist in einer anderen Datei ausgelagert, weshalb du in meinem Codefragment keinen Zugriff auf die Hardwaere findest. Hänge dir unten mal die soft-pwm.h und soft-pwm.c an.
Nachdem ich die Belegeung der Ports bei der Platine so gemacht hab, wie es im Layout am Besten auskommt, muss ich das auch noch anpassen, mache ich aber erst wenn ich Uwes Platine vorliegen habe. Für den Fall habe ich die "Patchtable" extra vorgesehen.
Kann ich das C programm auch über Bascom auf den chip schieben?
Nein, ich kann dir aber gerne ein Hex-File für den Controller den du verwendest erstellen, welches du dann zB mit Ponyprog oder avr-dude flashen kannst.
oder noch vieeel besser, wird es das programm auch in boscom geben ? irgendwann?
Von mir nicht. Ich hab bisher auch viel in Bascom gemacht, weil ich aus der Basic-Ecke komme, "quäle" mich aber nun absichtlich damit, meine Projekte in C zu realisieren.
C
Alles anzeigen/* * pwm.h * * Created on: 14.10.2010 * Author: Domi */ #ifndef PWM_H_ #define PWM_H_ #ifndef F_CPU #define F_CPU 16000000L // Systemtakt in Hz #endif #define F_PWM 100 // PWM-Frequenz in Hz #define PWM_STEPS 256 // PWM-Schritte pro Zyklus(1..256) #define T_PWM (F_CPU/(F_PWM*PWM_STEPS)) // Systemtakte pro PWM-Takt #if (T_PWM<(93+5)) #error T_PWM zu klein, F_CPU muss vergrösst werden oder F_PWM oder PWM_STEPS verkleinert werden #endif #include <stdint.h> #include <avr/io.h> #include <avr/interrupt.h> volatile uint8_t pwm_setting[24]; // Einstellungen für die einzelnen PWM-Kanäle #endif /* PWM_H_ */
C
Alles anzeigen/* * pwm.c * * Created on: 14.10.2010 * Author: Domi */ #include "soft-pwm.h" ISR(TIMER1_COMPA_vect) { static uint8_t pwm_cnt=0; uint8_t tmp[3] = {0,0,0}; OCR1A += (uint16_t)T_PWM; if (pwm_setting[0] > pwm_cnt) tmp[0] |= (1<<0); if (pwm_setting[1] > pwm_cnt) tmp[0] |= (1<<1); if (pwm_setting[2] > pwm_cnt) tmp[0] |= (1<<2); if (pwm_setting[3] > pwm_cnt) tmp[0] |= (1<<3); if (pwm_setting[4] > pwm_cnt) tmp[0] |= (1<<4); if (pwm_setting[5] > pwm_cnt) tmp[0] |= (1<<5); if (pwm_setting[6] > pwm_cnt) tmp[0] |= (1<<6); if (pwm_setting[7] > pwm_cnt) tmp[0] |= (1<<7); if (pwm_setting[8] > pwm_cnt) tmp[1] |= (1<<0); if (pwm_setting[9] > pwm_cnt) tmp[1] |= (1<<1); if (pwm_setting[10] > pwm_cnt) tmp[1] |= (1<<2); if (pwm_setting[11] > pwm_cnt) tmp[1] |= (1<<3); if (pwm_setting[12] > pwm_cnt) tmp[1] |= (1<<4); if (pwm_setting[13] > pwm_cnt) tmp[1] |= (1<<5); if (pwm_setting[14] > pwm_cnt) tmp[1] |= (1<<6); if (pwm_setting[15] > pwm_cnt) tmp[1] |= (1<<7); if (pwm_setting[16] > pwm_cnt) tmp[2] |= (1<<0); if (pwm_setting[17] > pwm_cnt) tmp[2] |= (1<<1); if (pwm_setting[18] > pwm_cnt) tmp[2] |= (1<<2); if (pwm_setting[19] > pwm_cnt) tmp[2] |= (1<<3); if (pwm_setting[20] > pwm_cnt) tmp[2] |= (1<<4); if (pwm_setting[21] > pwm_cnt) tmp[2] |= (1<<5); if (pwm_setting[22] > pwm_cnt) tmp[2] |= (1<<6); if (pwm_setting[23] > pwm_cnt) tmp[2] |= (1<<7); PORTA = tmp[0]; PORTB = tmp[1]; PORTC = tmp[2]; if (pwm_cnt==(uint8_t)(PWM_STEPS-1)) pwm_cnt=0; else pwm_cnt++; }
-
Suche gerade die Bauteile zusammen. Hatte noch einiges bei mir rumliegen. Dabei ist mir aufgefallen, das in der Materialliste von Dominique ein paar Sachen zu ergänzen sind. Habs als TXT-Datei angehängt, da ich scheinbar zu untalentiert bin so eine PNG Datei wie es Dominique macht anzuhängen. Vielleicht kann mich jemand aufklären. Beim Quarz bin ich mit nicht sicher.
-
ohaaa
ich habe mir das ganze Projekt doch wohl einwenig zu leicht vorgestellt
Wo ich Bascom gesehen habe, habe ich mir noch gedacht " juhu "
Hatte mir das ganze so vorgestellt:
Wenn pin1 strom bekommt dan zähle stufe 1 von 0 auf 255 hoch....
und das so weiter bis alle stufen an sind, aber mittlerweile finde ich nichtmal ein eifachen einstieg ins soft-pwm *grr*
da tauchen manchmal klamotten auf wo ich nichts mit anfangen kann aber der author schon weil er ja weiss wie er sich das gedacht hat.
Ich bleibe weiter daran und hoffe das ich die Treppe dieses Jahr noch fertig bekommen werde...ansonsten erstmal ohne pwm
Ich möchte es unbedingt in Bascom machen um erstmal den Grundverstand zu bekommen.
Darf ich hier meine Lösungsansätze posten? Jemand was dagegen?Vllt kann mir hier ja der ein oder andere mal helfen oder behilflich sein einen Fehler zu finden...
Arbeitet noch jemand daran es in Bascom zu realiesieren?
Blöde Treppe!
Gruss Gregor
-
Ich schon wieder...Ich habe versucht den Lauflichtcode so zu ändern das die Leds erst dan einen zyklus laufen wenn ich den taster gedrückt habe aber die laufen auch so! ohne das ich irgendwas mache! Saubande die
Für mein Verständnis is das programm richtig aber anscheinen ist da ja was falsch weil es nicht das nacht was ICH will *grml*
Code
Alles anzeigen$regfile = "m16def.dat" 'ATMega16 $crystal = 8000000 'Quarz 8 MHz Config Porta = Output Config Pinc.0 = Input 'Ein Pin (PC0) wird als Eingang definiert Pinc.0 = 0 Do If Pinc.0 = 1 Then Led1 Alias Porta.0 Led2 Alias Porta.1 Led3 Alias Porta.2 Led4 Alias Porta.3 Led5 Alias Porta.4 Led6 Alias Porta.5 Led7 Alias Porta.6 Led8 Alias Porta.7 Dim Zeit As Byte Zeit = 10 Do Led1 = 1 Waitms Zeit Led1 = 0 Led2 = 1 Waitms Zeit Led2 = 0 Led3 = 1 Waitms Zeit Led3 = 0 Led4 = 1 Waitms Zeit Led4 = 0 Led5 = 1 Waitms Zeit Led5 = 0 Led6 = 1 Waitms Zeit Led6 = 0 Led7 = 1 Waitms Zeit Led7 = 0 Led8 = 1 Waitms Zeit Led8 = 0 Led7 = 1 Waitms Zeit Led7 = 0 Led6 = 1 Waitms Zeit Led6 = 0 Led5 = 1 Waitms Zeit Led5 = 0 Led4 = 1 Waitms Zeit Led4 = 0 Led3 = 1 Waitms Zeit Led3 = 0 Led2 = 1 Waitms Zeit Led2 = 0 Else Porta = 0 'Pin wird auf Low, also 0V geschaltet End If Loop Loop End 'end program
-
Nimm' doch mal Zeile 26 und 72 raus....
EDIT: Und der Taster schaltet schon nach Vcc..? - Pulldown ist dran...? - einfacher wäre es, den nach GND schalten zu lassen und den internen Pullup zu verwenden...
Domi: Da das hier so eher ein allgemeiner Frage-/Spekulier-Thread ist, wie wäre es, wenn Du Deine Steuerung in einem extra Thread vorstellst, am besten wohl in der Lobby...?
Weil das ja nun mit fertigem Layout und SW doch ein recht ausgefeiltes Gerät ist, das durchaus öfter mal gefragt sein könnte... - wäre auch ne gute HW-Grundlage für weitere Lauflicht-/Blinkersteuerungen...
-
hi Pesi
Code
Alles anzeigenConfig Pinc.0 = Input 'Ein Pin (PA0) wird als Eingang definiert Pinc.0 = 1 'Interner Pullup Widerstand ein Do If Pinc.0 = 1 Then Led1 Alias Porta.0
Hab es jetzt so, aber wenn ich das lauflich unterbrechen will muss ich den Taster festhalten.Der soll ja andersrum laufen: 1 mal drücken und dan einamal rauf und runterlaufen ...
Warum kann man Bascom nicht mit löffeln fressen, dann wäre ich jetzt schon viel weiter...
-
wie genau ist der Taster angeschlossen?
Ich hab deinen Code mal etwas geändert:
Code
Alles anzeigen$regfile = "m16def.dat" 'ATMega16 $crystal = 8000000 'Quarz 8 MHz Config Porta = Output Config Pinc.0 = Input 'Ein Pin (PC0) wird als Eingang definiert Pinc.0 =1 Led1 Alias Porta.0 Led2 Alias Porta.1 Led3 Alias Porta.2 Led4 Alias Porta.3 Led5 Alias Porta.4 Led6 Alias Porta.5 Led7 Alias Porta.6 Led8 Alias Porta.7 Dim Zeit As Byte Zeit = 1 Do If Pinc.0 = 0 Then Gosub Licht: Else Porta = 0 End If Loop End Licht: Led1 = 1 Wait Zeit Led1 = 0 Led2 = 1 Wait Zeit Led2 = 0 Led3 = 1 Wait Zeit Led3 = 0 Led4 = 1 Wait Zeit Led4 = 0 Led5 = 1 Wait Zeit Led5 = 0 Led6 = 1 Wait Zeit Led6 = 0 Led7 = 1 Wait Zeit Led7 = 0 Led8 = 1 Wait Zeit Led8 = 0 Led7 = 1 Wait Zeit Led7 = 0 Led6 = 1 Wait Zeit Led6 = 0 Led5 = 1 Wait Zeit Led5 = 0 Led4 = 1 Wait Zeit Led4 = 0 Led3 = 1 Wait Zeit Led3 = 0 Led2 = 1 Wait Zeit Led2 = 0 Return
-
Nachdem ich die Belegeung der Ports bei der Platine so gemacht hab, wie es im Layout am Besten auskommt, muss ich das auch noch anpassen, mache ich aber erst wenn ich Uwes Platine vorliegen habe. Für den Fall habe ich die "Patchtable" extra vorgesehen.
Hey Dominique,nachdem ich nun das hier lese und ich noch meinen Adapter bauen muß können wir festlegen, das IC3 LED1 bis 8, IC4 LED 9 bis 16 und IC5 17 bis 24 ansteuert.