PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Digitaler Trimmer...wer kann helfen?



mhc2004
25.06.2008, 07:27
Hallo,

ich bin auf der Suche nach einer Lösung, oder einer Schaltung ohne viel Bauteile.

Ich beschreib mal was ich meine:

Also, ich habe eine Schaltung (hab Sie mal angehangen) in welcher der Kondensator der parallel zum Widerstand sitzt angibt in welcher Zeit x das Signal geschalten wird.

Um die Zeit zu verkürzen oder zu verringern müsste der Wert des C verändert werden.Also mehr oder weniger Kapazität.
Nun möchte ich das aber nicht manuell machen (Kondensator jedesmal tauschen) sondern per IC mit Programm.(Zukunftsmusik)
Welche Möglichkeiten habe ich?
Oder muß ich wirklich so wie ich vermutet habe ne Menge Kondensatoren auf die Platine bringen und die dann einzeln an- bzw. abwählen mit einem IC?

Gibt es bessere Möglichkeiten dies zu realisieren?
Wer kann mir ein paar Tips dazu geben?


Gruß
Maik

fhs
25.06.2008, 08:13
Hallo Maik,

was Du unter "Zukunftsmusik" erwähnst, geht (zumindest für kleine Kapazitäten) mit einem "programmable capacitor", z.B. dem MAX1474: http://datasheets.maxim-ic.com/en/ds/MAX1474.pdf

Gruß

Fred

mhc2004
25.06.2008, 09:13
Das sieht Klasse aus.
Vielen Dank... :D

Laut Datenblatt kann ich damit im Bereich von 6,4pF - 6,9pF schalten und die Schaltstufen also Inkremente wären 0,22pF. Liege ich da richtig oder falsch?

fhs
25.06.2008, 09:31
... kann ich damit im Bereich von 6,4pF - 6,9pF schalten und die Schaltstufen also Inkremente wären 0,22pF. Liege ich da richtig oder falsch?

Hallo Maik,

der Kapazitäts-Bereich ist 6,4 pF bis 13,3 pF in Schritten von 0,22 pF. Das ist bei ICs von anderen Herstellern ähnlich, z.B. http://www.intersil.com/data/fn/fn8156.pdf (Intersil X90100, 7.5 pF bis 14,5 pF).

Gruß

Fred

mhc2004
25.06.2008, 09:45
Echt Supi.

Wie kann ich nun mit diesem IC arbeiten.
Laut Datenblatt brauch der MAX1474 am DAT Eingang Impulse um eine Gewisse Kapazität zu realisieren.
Am CP und CM Pin nehm ich an ist die Kapazität abgreifbar.
Vdd ist Plus und Vss Minus zusammen mit CM.

Die Frage ist ob er die Impulse ständig braucht oder innerhalb eines bestimmten Zeitfensters.Die nächste Frage die sich mir stellt mit welchen Chip kann ich Impulse schicken den ich programmieren kann. (sicherlich einen Atmel, aber welchen)

Kannst Du mir ein Aufbaubeispiel geben?

Bluesmash
25.06.2008, 10:09
Wenn du trozdem ein Mikroprozessor verwenden wilst kanst du ja die zeitverzögerung deiner schaltung gleich komplett mit dem Mikroprozessor machen, ohne kondensatoren und so...

gruss bluesmash

fhs
25.06.2008, 10:10
Hallo Maik,

auf S. 5 des MAX1474 steht, dass "EN" und "DAT" beim Einschalten zunächst "L-Pegel" haben müssen. Dann legst Du "EN" auf "H" und gibst auf "DAT" die gewünschte Anzahl von L->H-Flanken aus. Danach schaltest Du "DAT" und "EN" wieder auf "L", und der gewählte Kapazitätswert bleibt erhalten, bis Du die obige Sequenz mit einer anderen Impulszahl auf "DAT" wiederholst. Auf Seite 7 ist auch erklärt, dass Du mehrere dieser ICs parallel schalten kannst. Auf Seite 2 steht, wie schnell die DAT-Signale sein dürfen.

Sicher reicht dafür der allerkleinste AVR (zur Kapazitätssteuerung werden ja nur 2 Pins verwendet); allerdings hängt die Controller-Wahl natürlich primär davon ab, was der uC sonst noch tun soll und wie er "erfährt", welche Kapazität er einstellen soll.

Gruß

Fred

PS: Ich stimme bluesmash vollkommen zu - aber dazu müsstest Du uns noch etwas mehr über das Gesamtprojekt verrraten.

mhc2004
25.06.2008, 10:36
Dann verrate ich es. Ist ja kein verraten in dem Sinne.
Also was ich vorhab passt wahrscheinlich vom Grundprinzip nicht wirklich hierher aber da es sich doch um programmieren und der dazu benötigten Hardware beschäfftigt dachte ich, ich bin hier gut aufgehoben.

Die Geschichte:
Ein guter Freund von mir fährt jedes Jahr bei einem Motoradrennen mit.
Fast Retro, dass heisst MZ, und die Kunst dabei liegt darin das das Motorad nur von den Grundzügen des Rahmens nicht verändert werden darf,und der Motor muss äußerlich der orginale sein.
Was man dann macht, Antrieb, Elektronik, Zündung etc. ist einem selbst übelassen.

Mit dem Eagle Layouteditor habe ich nun schon eine Elektronische Zündung entworfen(nach einem Schaltplan aus dem I-Net) die es dem Motorad ermöglicht auch über 9000 U/min zu drehen weil ja bekanntlich der Unterbrecher irgendwann durch die Fliehkräfte nicht mehr schließen würde.
Um dann die optimalen Ergebnisse beim zünden zu erreichen möchten wir den Zündzeitpunkt verschieben.Denn der ist nunmal abhängig von Drehzahl und Wettereinflüssen.

Das ist die ganze Geschichte.
Den Schaltplan zur entworfenen Zündung hab ich mal angehängt.
Die CYN37 Gabellichtschranke sitzt also auf der Kubelwelle und gibt der Schaltung die Impulse zum zünden.
Vieleicht könnt ihr mir ja sagen wie ich den Zeitpunkt auch ohne den programmiebaren Kondensator verschieben kann.Vieleicht so wie es Bluesmash schon erwähnt hat.
Und vor allen Dingen muß es progammierbar sein vieleicht mit nem kleinen VB6 Programm welches ich mir dann dafür schreiben kann.

Das wär ganz super!

fhs
25.06.2008, 10:48
Hallo Maik,

dafür bietet sich, wie bluesmash schon schrieb, auf jeden Fall eine rein digitale Lösung an. Ich programmiere nur in C und Assembler, kann Dir deshalb mit Basic nicht weiterhelfen.

Im Prinzip soll einfach nach jedem Impuls von der Lichtschhranke mit einer einstellbaren Verzögerung ein weiterer Impuls abgegeben werden? Wie soll die Verzögerung verstellt werden (Tabelle/berechnet/manuell/anders)?

Gruß

Fred

mhc2004
25.06.2008, 11:57
Es müsste ein µC sein den ich mit VB steuern kann, da findet sich sicherlich was.

Ja, und vom Schalthergang sollte es dann so gehen.
Die Lichtschranke gibt ein Signal aus und der µC fängt es ab, lässt eine Zeit verstreichen und gibt das Signal dann weiter.

So klingt es für mich logisch.
Einstellungstechnisch müsste es erstmal manuell geschehen da ja erst zur passenden Drehzahl der optimalere Wert gefunden werden muß.
Später dann die definierten Zündzeitpunkte zur Drehzahl fest machen.
Soll heißen das man dann evtl. 5-10 Punkte hat die man wählen kann.
Die Drehzahl lässt sich ja dann auch super mit dem µC einlesen da es ja nur 1 und 0 Signale sind die von der Lichtschranke kommen.
Also könnte man später mal eine Formel erstellen die die Punkte berechnet anhand der Drehzahl.

Ich weiß soetwas gibt es mit sicherheit schon zu kaufen, aber der Erfolg der dabei evtl. zusatande kommt und das fummeln an solchen Dingen reitzt eben und es soll ja auch Spass machen.

Vieleicht kennt ja jemand einen µC den man mit VB ansprechen kann.

MeckPommER
25.06.2008, 12:33
warum soll der unbedingt mit vb ansprechbar sein? es gibt für die AVR µC von Atmel eine schlanke Basic-Variante, die sich Bascom nennt. Die Hardware zum Programmieren kostet keine 10 Euro mit selbstgemachtem Programmieradapter und so ein einfaches Programm kann selbst die kostenlose Demoversion von Bascom compilieren und dir auf den µC schreiben.

Oder gibt es einen zwingenden Grund für VB?

Gruß MeckPommER

Majuz
25.06.2008, 13:18
Dann könnte man einfach zwei Taster anschließen, mit denen man die Verzögerung erhöhen oder verringern kann. Die Werte dann in das EEPROM schreiben und wenn man das Optimum erreicht hat den Wert mit dem PC aus dem EEPROM auslesen. Das ganze für ein paar Drehzahlen wiederholen, und schon hat man die Kurve die man dann noch in ein neues Programm schreibt und Fertig.

Gock
25.06.2008, 14:04
Also ein NE555 oder ein 74xx123 mit und ein Poti würden es wahrscheinilich auch tun. Du musst normalerweise nämlich nicht den Kondesator verändern, sondern dessen Zeitkonstante zum Laden/Entladen. Diese ist T=RxC und lässt sich auch mit R ändern. Dazu gibt es Potentiometer...
Gruß

niki1
25.06.2008, 14:29
Ich versteh nicht wieso du nicht einfach einen verstellbaren Kondensator nimmst?

Dann wäre die ganze µC Geschichte abgehackt. Und es ist billig.
Oder den Widerstand verändern der den C auflädt.

Mfg niki1

dremler
25.06.2008, 20:09
wenn du einen µC nimmst solltest du die abschirmung nicht vergessen...nicht dass es bei 9000 umdehungen pro minute wegen der funken zu einem aussetzer kommt.....das bezahlt dir dann auch keine versicherung..

mhc2004
27.06.2008, 09:42
Hallo,

das ist alles ganz gut gemeint.

@niki1 ...weil man während des Rennens nicht am Drehkondensator schrauben kann 8-[
@Majuz ...das ist ne klasse Idee...nur ist das alles so einfach gesagt.
@MeckPommER...Habe mir die kostenlose Version von Bascom mal geladen.Das Problem ist das es dazu leider keine deutsche Anleitung gibt oder nen paar Beispiele wie man Anfängt mit Bascom zu programmieren.Oder ich hab nicht richtig geschaut.
Kann ich denn auch mit Bascom eine Oberfäche für den PC bauen so das ich evtl. Kurven, Drehzahlen und andere Dinge anzeigen lassen kann?
Es soll so werden das ich den Laptop anschließen kann und zumindest Drehzahlen erstmal auslesen kann.Dazu müsste ich mir ja eine Programmoberfläche bauen können.Leider wäre Bascom komplettes Neuland.

Aber vieleicht gibt es ja doch deutsche Tutorials dazu, was man kann das kann man, und wenn ich es lernen kann bin gern bereit dazu.

Gruß
Maik

Bluesmash
27.06.2008, 10:15
Bascom ist "nur" dazu da den Controller zu Programmieren für den Anfang würde ich dir mal das Wiki empfehlen hier findest du ein paar beispiele und weiterführende Links: https://www.roboternetz.de/wissen/index.php/Bascom

Um die Daten am Laptop anzeigen zu können würde für ein paar Zahlen theoretisch ja schon ein einfaches Terminalprogramm reichen. einfach den Mikroprozessro über einen pegelwandler an die RS232 des Laptops anschliessen, Terminal starten und du kannst vom Mikroprozessor direkt aufs Terminal "printen".
für kompliziertere anzeigen oder Werteveränderungen müstest du ein VB oder ähnliches programm schreiben welches mit dem Mikroprozessor kommuniziert und die daten austauscht...

gruss bluesmash

mhc2004
27.06.2008, 10:51
Also erstmal Danke für deine Antwort.

Mit dem Pegelwandler meinst Du doch bestimmt den MAX232 oder?
Der als Schnittstelle zwischen µC und Pc(RS232) dient.

Mal angenommen ich würde mir dies Board hier zulegen: RN-Control 1.4 Mega32
Damit könnte ich in Bascom ein Programm schreiben welches mir den Zündzeitpunkt auf einen bestimmten festen wert einstellt.Mal Taster zum verstellen weggelassen.
Wenn ich diesen aber mit dem Pc ändern möchte fangen die Probleme schon an.Denn ich möchte schon eine grafische Oberfläche bauen können die das Einstellen möglich macht.Gibt es eine Verbindung zwischen Bascom und VB?

Gruß
Maik

Majuz
27.06.2008, 11:46
Wie Bluesmash schon geschrieben hat ist Bascom nur dazu da, ein Programm zu schreiben, das nachher auf dem µC läuft. Damit können keine Windows-Programme geschrieben werden. Um z.B. die Drehzahl anzuzeigen muss man im µC (Bascom-Programm) die Drehzahl ermitteln und diese dann per Print-Befehl über RS232 an den PC übertragen. Dort kann man es entweder mit einem selbstgeschriebenen VB-Programm oder einem normalen Standardterminal empfangen. Ganz ohne PC wäre auch möglich. Indem man ein Text-LCD an den µC anbaut. Um das anzusteuern gibt es schon vorgefertigte Routinen in Bascom. Auf dem RN-Board ist meines Wissens auch schon ein Anschluss dafür vorgesehen. Für das Rennen könnte es ja wieder entfernt werden. Auf dem Display könnte man dann die Drehzahl und die aktuelle verzögerung anzeigen lassen.

Also vom Ablauf her stell ich mir das dann so vor:
1. Programm für µC in Bascom schreiben für Drehzahlermittlung und Verzögerungsverstellung mit Anzeige auf LCD
2. Per ISP-Kabel auf µC übertragen
3. An Motorrad anschließen
4. Motor mit bestimmter Drehzahl laufen lassen
5. Verzögerung optimal einstellen und Wert mit zugehöriger Drehzahl aufschreiben
6. 4. und 5. für verschiedene Drehzahlen wiederholen
7. Die entstandene Kurve in einem neuen Programm für den µC abbilden (Per Formel oder Tabelle)
8. neues Programm auf µC per ISP-Kabel überspielen
9. LCD entfernen und µC einbauen
10. Fertig

Für jemanden der Erfahrung mit der Programmierung in VB hat ist es sicher kein Problem Bascom zu lernen.

Just my 2 Cents

mhc2004
27.06.2008, 14:05
Ich danke Dir für die ausführliche Erklärung.

Inzwischen hab ich mich hier ein wenig belesen und einen entscheidenden Beitrag gefunden der mir das Pc anschließen aus dem Kopf verjagt hat.

Es gibt ja die Möglichkeit ein Menü zu schreiben welches dann auf dem Display angezeigt wird.Und in diesem Menü könnte ich dann, zwar nur programmierte, Werte verändern so wie ich es brauch.

Eine Frage stellt sich mir aber gleich.
Was für Display's kann ich überhaupt anschließen?Sicher nur welche die einen eigenen Controler besitzen.
Könnt ihr mir sagen welche Grafikdisplay's ich an das RN-Control 1.4 Mega32 anschließen kann?



Gruß
Maik

Majuz
27.06.2008, 14:38
Gern geschehen, freut mich immer, wenn ich helfen kann :-)

Klar kannst du ein Menü schreiben und dann die Werte ändern, aber ich denke mal das ist etwas "oversized", weil du ja eigentlich nur einen einzigen Wert ändern musst. Auf dem Board sind übrigens schon die Taster drauf mit denen du dann den Wert ändern kannst. Falls du doch mehrere Werte ändern möchtest kannst du es auch erst mal so machen dass du einen Taster hast um den Wert auszuwählen (Cursor draufsetzen) und dann mit den andern beiden erhöhen oder verringern.

Also als LCD könntest du z.b. dieses nehmen:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=178
Mit dieser Adapterplatine lässt es sich am einfachsten an die RN-Control anschließen:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=179

Von Grafikdisplays hab ich keine Ahnung, aber ich weiß dass die ziemlich schwer anzusteuern sind. Ein Textdisplay würde ja aber wahrscheinlich auch reichen. Nur mal nicht übernehmen beim ersten Versuch mit µCs, sonst ist die Lust gleich wieder weg.

Mitch64
12.07.2008, 10:37
Hi zusammen,

was ist denn das hier für eine Quatsch-Schaltung.
Wozu denn dieser Opto-Koppler? Soll der etwa galvanisch Trennen?
Und was soll der Schalten?

Wenn die obere Leitung Versorgungsspannung ist, ist der Optokoppler ständig aktiv und die transistor wird auch nie angesteuert.

Sollte die obere Leitung etwas anderes sein (Signalleitung)? Wozu dann der Opto-Koppler?

Also die Logik muß mer erst mal einer erklären!

Mitch.