Das habe ich auch gedacht, dass alles ganz einfach ist. Eigentlich ist das Programm logisch. Aber trotzdem leuchten die LED's in der Praxis qreuz und quer auf. Nimmt man aber nur einen Ausgang der Picaxe, dann funktioniert es. Wie z. B. etwa so:
main: let dirs=%11111111 let pins=%00000000 pause 500 high 2 pause 500 high 4 pause 500 low 2 pause 500 high 2 goto main
Sobald man aber noch einen weiteren Ausgang mit hinzu nimmt, ist sense. Naja, war ja nur eine Spielerei. Gruß Harry
also ich habe diese Schaltung aufgebaut. Theoretisch sollte es ja so sein, dass wenn Pin0 high ist und Pin4 low ist, die Diode, die mit ihrer Anode an Pin0 liegt leuchten soll. Tut sie auch. Dann kehre ich das ganze um, Pin0 auf low und Pin4 auf high, und siehe da, die Diode, die mit ihrer Kathode an Pin0 liegt, lechtet auf. Soweit so gut. Wenn ich nun das Programm erweitere, dass auch Pin1 und Pin2 mit einbezogen werden, blinken alle kreuz und quer. Auch nach einigen Programmänderungen komme ich zu keinem anderen Ergebnis. Bevor ich nun völlig verzweifle, muss ich zugeben, dass ich mit dieser Schaltung kein Lauflicht hin bekomme. Entweder mache ich einen Fehler, oder das Ganze kann so nicht funktionieren. Aber vielleicht ist das jemand, der eine Lösung parat hat. Gruß Harry
das mit den 6 LED's an der 08m2 verstehe ich nicht. Diese Picaxe hat doch nur 4 Output-Pins. Oder kann man den Serin und Pin3 auch als Output konfigurieren?
Thema von harry02 im Forum Projekte von User für...
Hallo zusammen,
aus Langeweile habe ich mir ein einfaches Lauflicht aufgebaut, das mit einer Picaxe 08m2 gesteuert werden kann.
Hier die Schaltung
[[File:Lauflicht.JPG|none|auto]]
Dazu die Wahrheitstabelle von CD4028
A B C D Pin 0 0 0 0 0 X 0 0 0 1 0 X 0 0 2 X X 0 0 3 0 0 X 0 4 X 0 X 0 5 0 X X 0 6 X X X 0 7 0 0 0 X 8 X 0 0 X 9
Und letztendlich noch das Programm
'Lauflicht mit Picaxe 08m2 und CD4028
main: let b0 = 50 let dirs=%11111111 let pins=%00000000 pause b0 let pins=%00000001 pause b0 let pins=%00000010 pause b0 let pins=%00000011 pause b0 let pins=%00000100 pause b0 let pins=%00000101 pause b0 let pins=%00000110 pause b0 let pins=%00000111 pause b0 let pins=%00010000 pause b0 let pins=%00010001 pause b0 goto main
Mit dem Wert von "b0" kann die Geschwindigkeit des Lauflichts beeinflusst werden.
mit einem Taster an Pinc.1 wird das Programm gestartet. An Pinc.3 habe ich einen einfachen Drucktaster angebracht. Am Ausgang c.0 hängt eine LED, die so lange leuchtet, wie Count geöffnet ist. In meinem Beispiel sind das 5 Sekunden. Innerhalb der 5 Sekunden drücke ich dann den Taster an Pinc.3 so oft, bis ich die gewünschte Frequenz habe. Einmal, dreimal oder mehr. Mit einem Oszyloskop an Pinc.2 habe ich die Frequenz gemessen.
Eigendlich war das Programm nur so eine Spielerei. Wenn man aber mal schnell eine bestimmte Frequenz braucht, kann man das Programm dementsprechend ändern, oder auf weitere Frequenzen erweitern. Der Taster an Pinc.3 sollte mit einer kleinen Entprellschaltung ausgestattet werden. Auch könnte man einen einfachen Zähler mit einer 7-Segment-Anzeige an den Taster anschließen, um die Tastendrücke optisch dazustellen. Aber das wäre dann schon wieder Luxus für so eine einfache Schaltung.
Ich habe die Lösung gefunden. Man kann pwmout wieder abschalten, indem man eingibt "pwmout c.2, 0, 0". Habe diesen Zeilen nach Main eingefügt und noch ein Pause von 1 Sek. eingefügt. Nun funktioniert alles wie gewünscht. Das sieht dann so aus:
'Rechteckgenerator mit festen Werten
main: b0 = 0 pinc.1 = 0 pause 1000 pwmout c.2, 0, 0 do loop until pinc.1 = 1
high c.0 pause 100 count c.3,5000,b0 low c.0
Grüße Harry
So nebenbei ist mir bei der Programmentwicklung noch ein Problem aufgetreten, das mich lange beschäftigt hat. Die Variable "b0" wollte keine Werte speichern. Ich war schon fast am verzweifeln. Dann habe ich eine andere Picaxe genommen, und siehe da, b0 war wieder normal. Anscheinend war da ein Speicher defekt.
Das mit c.2 auf Null setzen habe ich schon probiert. Es hat aber nichts geändert. Die Idee war ja, wenn ich die Taste von c.1 drücke, dass dann aus der jeweiligen Schleife raus und zum Anfang gesprungen wird. Seltsamerweise geht das auch, aber die 100 Hz bleiben erhalten. Nun habe ich mit überlegt, dass ich nach "main" c.2 kurz blinken lasse. Vielleicht wird dann pwmout gestoppt. Ich werde das später mal probieren und dann über das Ergebnis berichten. Grüße Harry
Hallo liebe Picaxe-Freunde Im alten Jahr muss ich doch noch etwas los werden.
Nachdem es mir nun endlich nach vielen Versuchen gelungen ist, den AXE027-Treiber auf meinem Windows10-Rechner zum Laufen zu bringen, wollte ich endlich mal wieder etwas Programmieren. Herausgekommen ist ein weiterer Rechteckgenerator, mit dem man mit nur 2 Tasten und einem dynamischen Programm viele Frequenzen erzeugen kann.
Aber bitte wegen dem Programn nicht lachen. Es gibt sicher noch einfachere Möglichkeiten, so etwas zu programmieren. Ich fand es jedenfalls gut, wenn man mit einer Taste innerhalb einer gewissen Zeit (count = 5000, also 5 Sekunden) zu bestimmten Frequenzen springen kann. Das Programm funktioniert soweit so gut. Was ich aber nicht verstehe ist, wenn ich aus der do - loop - Schleife mit Pinc.1 zurück zu main springe, dass dann am Pinc.2 immer noch 100 Hz anliegen. Ich komme einfach nicht dahinter, wie man das PWMout wieder abstellen kann. Vielleicht gibt es da einen einfachen Befehl.
Das wars für heute wieder mal. Ich wünsche allen einen guten Rutsch ins Neue Jahr, und hoffe, dass es bald wieder mehr Projekte in diesem Forum gibt.
Grüße Harry
Und hier ist das Programm
'Rechteckgenerator mit festen Werten #pixaxe 08m2
main: b0 = 0 pinc.1 = 0
do loop until pinc.1 = 1
high c.0 pause 100 count c.3,5000,b0 low c.0
if b0 = 1 then goto frequenz1 endif
if b0 = 2 then goto frequenz2 endif
if b0 = 3 then goto frequenz3 endif
if b0 = 4 then goto frequenz4 endif
if b0 = 5 then goto frequenz5 endif
frequenz1: do pwmout pwmdiv64, C.2, 155, 311 '100 Hertz loop until pinc.1 = 1 goto main
frequenz2: do pwmout pwmdiv16, C.2, 124, 249 '500 Hertz loop until pinc.1 = 1 goto main
frequenz3: do pwmout pwmdiv4, C.2, 249, 499 '1 Khz loop until pinc.1 = 1 goto main
frequenz4: do pwmout C.2, 199, 399 '5 Khz loop until pinc.1 = 1 goto main
frequenz5: do pwmout C.2, 99, 199 '10 Khz loop until pinc.1 = 1 goto main
Danke für diesen Beitrag. Ich habe mir doch gleich das Heft mit dem Picaxe-Programmierbord bestellt. Wie es dort heißt, soll man damit nur mit einem normalen USB-Anschluss (ohne das USB-Picaxe Programmierkabel von Education) eine Picaxe programmieren können. Seit ich einen Rechner mit Windows10 habe, kann ich den Treiber für das Education-Kabel nicht mehr aktivieren. Deshalb hoffe ich, dass ich mit dem jetzt bestellten Programmierbort mehr Glück habe. Danke und Grüße an die Picaxe-Gemeinde.
Danke BBM für Deinen Tip. Aber nach vielen Versuchen und Fehlschlägen gebe ich jetzt erst mal auf. Der Treiber will einfach nicht erkannt werden. So ist es halt mit der Technik. Es wird immer komplizierter und zum Schluss geht garnichts mehr. Zum Glück habe ich noch einen alten Laptop, mit dem ich noch die Programme in die Picaxe schreiben kann. Aber wenn der auch mal seinen Geist aufgibt, dann ist eben sense. Schade eigentlich... Gruß Harry
Leider hat sich bei mir die Programmiereei mit der Picaxe erledigt. Seit ich einen neuen PC mit Windows10 habe, bekomme ich das AXE027 Kabel nicht mehr zum Laufen. Es wird einfach nicht mehr erkannt, egal welchen Treiber ich installiere. Vielleicht weiß aber doch jemand, was man noch machen könnte, oder wie man einen funktionierenden Treiber finden kann. Ich wäre für jeden Tip dankbar, Gruß Harry
Thema von harry02 im Forum Projekte von User für...
Etwas zum Spielen und Ausprobieren
Man kann auch mit einer Blitzschaltung und einer Picaxe eine einfache Fernbedienung aufbauen.
Impulsgeber:
[[File:Impulsgeber.JPG]]
Mit der obigen Schaltung werden durch Drücken der Taster entweder 5 Hz oder 10 Hz erzeugt. Diese Blitze werden auf den LDR der Picaxe gelenkt. Dort werden die Blitze innerhalb einer Sekunde mit dem Befehl „count“ gezählt und ausgewertet. Wenn 10 Blitze gezählt werden, geht Pin2 auf high und wenn 5 Blitze gezählt werden, geht Pin1 auf high.
Dazu folgendes Programm:
main: pause 100 count 3,1000,b0 if b0 >=9 then high 2 endif if b0 >3 and b0 <6 then high 1 endif pause 1000 low 2 low 1 b0 = 0 goto main
Ich habe zum Beispiel eine Dimmschaltung angeschlossen.
Thema von harry02 im Forum Projekte von User für...
Zugegeben, es handelt sich hier nicht gerade um ein Superprojekt. Aber vielleicht wird der eine oder andere Jungbastler ein bisschen angespornt, sich mit der Picaxe und der einfachen Elektronik zu befassen.
Bei dem vorgestellten Projekt handelt es sich um eine einfache Tonerzeugung. Aendert man in der Programmzeile "tune" die Daten ein wenig, kann man sich seine eigenen Melodien zusammenstellen.
Ich habe mir hier eine elektronische Fahrradklingel aufgebaut. Sobald man den Taster drückt, wird ein "tatütatü" erzeugt.
Hier das Programm:
main: if pin1 = 1 then goto piep else goto main endif
durch Deinen Beitrag habe ich mich auch wieder an meine Anfänge der Elektronikbastelei erinnert. So um 1973 habe ich ebenfalls aus der Topp-Buch-Reihe Wanzen und Minisender nachgebaut. Auch die Schaltung weiter oben, die mit 1,5 Volt bestens funktionierte. Es waren damals schöne Zeiten, mit einem einfachen UKW-Radio diese Schaltungen zu testen. Nun ja, die Zeiten haben sich rasend entwickelt und heute schaut man der Technik nur noch hinterher. Die Picaxe kann ja viel, aber trotzdem frage ich mich, wie kommt man auf die Idee, mit der Picaxe ein eingeschaltetes Handy zu detektieren? Wie BBM gesagt hat, wäre dazu ein Vorschaltgerät notwendig. Aber immerhin, die Idee steht im Raum. Würde mich interessieren, ob der eine oder andere eine Idee hat, so etwas zu kreieren. Möglichkeiten gibt es ja zuhauf. Gruß Harry
Hab mir mal auf der unten stehenden Web-Adresse die Beschreibung und die Ansteuerung des MAX7219 angeschaut. Ist schon sehr komplex für meine Kenntnisse. Aber ich sehe, dass man mit Programmieren viel damit anstellen kann, wenn man programmieren kann.
Hallo BBM, Urlaub ist rum, und ich befasse mich wieder mit Deinem Beitrag. Ich habe genau das Teil, das Du als Bild hier eingestellt hast. Obwohl ich alle 3 Codes ausprobiert habe, bleiben die Segmente dunkel. Kein Flimmern, nichts, einfach dunkel. Entweder ist das Teil defekt, oder ich habe etwas falsch angeschlossen. Ehrlich gesagt verstehe ich die Steuerprogramme nicht. Dafür habe ich einfach nicht die volle Programmierkenntnis. Mir ist einfach nicht klar, wie man die einzelnen Digids oder Segmente ansteuern kann. In Deinem Video sieht alles so leicht aus. Ich werde aber trotzdem nochmal verschiedene Möglichkeiten ausprobieren, um die Digids zum Leuchten zu bringen. Gruß Harry
Hallo BBM, bin gerade im Urlaub und kann Dir erst wieder berichten, wenn ich wieder zuhause bin. Musst Dich noch ein bisschen gedulden. Ich melde mich aber auf jeden Fall. Gruß Harry02
Hallo BBM, danke für dein Programm. Aber im Grunde funktioniert es wie meines. Vielleicht habe ich mich falsch ausgdrückt. Ich wollte eigentlich im Aufdimm- oder Abdimm-Modus mit der Taste für Pin4 zurück zu Main springen, damit ich die Lampe wieder aus- oder anschalten kann. Wenn ich jetzt im Dimm-Modus bin, dann komme ich da nicht mehr raus. Deshalb habe ich gefragt, ob es eine Möglichkeit gibt, von da wieder zu main zurück zu kommen. Gruß Harry
habe mir ein kleines Programm geschrieben, das folgende Funktionen erfüllen soll: Mit 2 Tasten eine Lampe ein- und auszuschalten und mit der 3. Taste die Lampe zu dimmen. Bis dahin klappt das Programm. Jetzt wollte ich aber wieder zurück zum Mainprogramm springen, um die Lampe wieder ein- oder auszuschalten. Doch da liegt der Hase im Pfeffer. Egal wo ich die Zeilen
if pin4 = 1 then goto main endif
einfüge, es gibt einfach kein zurück mehr nach main.