naja, warum denn das, die relais einfach mit transistoren ansteuern, und schon iss geregelt
Druckbare Version
naja, warum denn das, die relais einfach mit transistoren ansteuern, und schon iss geregelt
@x-ryder
auch dann erzeugen induktive Lasten negative Spanungsspitzen je nach Induktivität und Ausschaltflanke (Zündspule).
Bau die dinger für x und paar Pfennige ein und geh auf sicher.
reichen schon 1N4001 oder für schweres 1N4007
ersparen echt Ärger
Hallo zusammen,
nach einer längeren Zwangspause habe ich mein kleines Steuerungsprojekt wieder aufgenommen. Da ich mit den Portpins tatsächlich nicht ausgekommen bin, habe ich auf Eure Empfehlung gehört und ein 2* 4 Bit Latch (CD4508B) benutzt. Leider klappt es nicht so wie erwartet. Die angeschlossenen LEDs lassen sich nicht gezielt schalten.
Die Schaltung sieht so aus:
Die Ports d.4 bis d.7 liegen parallel an der LCD Anzeige und den Eingängen der beiden 4 Bit Latches. Also d.4 an D1A und D2A e.t.c.
Die beiden Output Disable- und Resetpins der Latches liegen auf Masse.
Die beiden Strobe Eingänge habe ich auf Pin d.0 und d.1 gelegt.
So wie ich die Chip Dokumentation verstehe sollte also das Bitmuster, das ich an die Pins d.4 bis d.7 anlege durch einen positiven Puls an der Strobeleitung dazu führen, das das an den Eingängen angelegte Bitmuster "gelatched" wird und die an die Ausgänge angeschlossenen LEDs entsprechend dem Bitmuster leuchten.
Tatsächlich leuchten die (4* 2 Farben LEDs) willkürlich, die LCD Anzeige funktioniert aber tadellos. Schaltungsfehler wie Kurzschluss, Verwechselung und Unterbrechung kann ich weitestgehend ausschließen, da mindestend 20 mal "durchgehupt" mittels Multimeter. Einen Oskar habe ich leider nicht.
Gesagt sei noch, das die Leitungslänge zwischen Mega8 und LCD /Latch etwa 40 cm beträgt.
Das auf das wesentliche reduzierte Programm hänge ich an.
Ich würde mich über eine Idee sehr freuen.
Gruß
Pöler
Mehrere Taster parallel zur LCD zu schalten ist ganz einfach. Die Leitungen D4-D7 der LCD-Anzeige werden mit einem Widerstand von 1 KiloOhm an den Taster und die Taster dann an Ground angeschlossen. Die LCD wird nicht beeinflusst. Der Strom an den Ports erhöht sich auf 5 mA solange eine Taste gedrückt ist, wenn der Ausgang 1 ist. Es gibt weder einen Kurzschluß noch eine falsche Anzeige. Die Tasten werden einfach mit Debounce abgefragt:
'Taster abfragen
Config Portd.4 = Input 'Portd.4 als Eingang definieren
Config Portd.5 = Input 'Portd.5 als Eingang definieren
Config Portd.6 = Input 'Portd.6 als Eingang definieren
Config Portd.7 = Input 'Portd.7 als Eingang definieren
Portd.4 = 1 'Pullup-Widerstand einschalten
Portd.5 = 1 'Pullup-Widerstand einschalten
Portd.6 = 1 'Pullup-Widerstand einschalten
Portd.7 = 1 'Pullup-Widerstand einschalten
Debounce Pind.4 , 0 , Label_1 'wenn Taste gedrückt nach Label_1 springen
Debounce Pind.5 , 0 , Label_2 'wenn Taste gedrückt nach Label_2 springen
Debounce Pind.6 , 0 , Sub_1 'wenn Taste gedrückt zur Subroutine Sub_1 springen
Debounce Pind.7 , 0 , Sub_2 'wenn Taste gedrückt zur Subroutine Sub_2 springen
Config Portd.4 = Output 'Portd.4 als Ausgang definieren
Config Portd.5 = Output 'Portd.5 als Ausgang definieren
Config Portd.6 = Output 'Portd.6 als Ausgang definieren
Config Portd.7 = Output 'Portd.7 als Ausgang definieren
Mit den Datenleitungen D4-D7 funktioniert das auf jeden Fall, ob es auch mit der RS-Leitung geht, habe ich noch nicht getestet.
felack
zum Schluss noch das Schaltbild:
Hallo Felack,
danke für Deinen Tipp. Leider habe ich schon das Tasterproblem mittels Analogtaster gelöst (Tipp kam aus dem Forum).
Das klappt hervorragend mit 4 Tastern.
Zwischenzeitlich habe ich wie oben beschrieben parallel zu den LCD Datenleitungen ein 2*4 Bit Latch (CD4508B) angeschlossen,
mit dem ich 4 Zweifarben LEDs ansteuere.
Leider leuchten die LEDs zufällig nach dem Reset rot grün oder gelb.
Ich kann mir das nicht erklären. Kann es eventuell ein Pegelproblem (CMOS) sein?
Die relevanten Programmabschnitte habe ich oben zum Download abgelegt.
Die Pins "Disable" und "Reset" des Latches sind auf Ground gelegt, die Pins "Strobe" jeweils auf einen Port,
der zur Datenübernahme kurz auf "H" gelegt wird und die Datenleitungen liegen natürlich an den LCD Datenleitungen.
Wenn jemand eine Idee zu dem Problem hat; Ich bin für alles dankbar.
Gruß
Pöler
Anderer Gedankengang:
Es fehlen Ports :-$ und Mega 32 kostet keine 300 euro , keine 30 Euro , ich bekomme die für ca 3 Euro.
Erspart dazubasteln diverser CD's
Gento
Hallo Pöler!
Ich bin ein PIC Benutzer. Das einzige, was mir einfällt ist, dass das Strobe Impuls zu kurz seien könnte. Laut Datenblatt muss es min. 140 ns lang sein.
MfG :)
Hallo Gento,
der Preis ist nicht das Problem. Das Projekt ist halt stetig gewachsen und jetzt den M32 einzusetzen würde ein neues Gehäuse, neue Platine e.t.c. erfordern.
Hallo PICture,
ich habe mit waitms 1 und waitms 10 beim Toggeln des Strobes experimentiert. War leider nichts.
Habt Ihr mal meine Programmschnipsel angeschaut. Vielleicht liegt ja da der für mich unsichtbare Fehler?
Danke und Gruß
Hallo Pöler!
Mit Deinem Program kann ich Dir leider nicht helfen, da ich PICs in ASM programmiere. Von Basic kenne ich nur QBasic. Ich habe mir zwar Dein Programm angeschaut, aber verstehe ich nicht alles. Ich habe nirgendwo gesehen, dass Du von Dir ärwähntes Bitmuster an die Pins vom Latch schickst. Aber wie gesagt, nicht alles ist mir klar.
MfG :)