Hallo zusammen,
Ich bin Anfänger im Bereich AVR-Programmierung. Bisher hatte ich zwar
schonmal öfters veröffentlichte Projekte umgesetzt (OpenDCC.org), aber
jetzt will ich mal was eigenes machen. Ziel ist folgendes: Ich habe
einem Servo die Elektronik entfernt und will mit 2 Tastern zwischen 2
festgelegten Positionen wechseln:
Taster 1 -> Position1
Taster 2 -> Position2
Mit einem Tiny13 in Verbindung einer H-Bridge funktioniert das auch
wunderbar. Nun möchte ich das Erreichen der Soll-Position auch
elektronisch weitergeben, d.h. 2 Ausgänge, von denen einer bei Erreichen
der Sollposition den Wert 0 ausgibt. Dafür hat der Tiny13 aber leider
einen Anschluß zu wenig. Ich brauche folgende Anschlüsse:
2 Eingänge für Taster
2 Ausgänge für Rüchmeldung
2 Ausgänge für Motorsteuerung
1 Analoger Eingang für das Auslesen der IST-Position.
Ich hab noch einen Tiny2313, von dem ich aber irgendwo gelesen habe,
dass er keinen ADC hat (bin mir aber nicht sicher, ob ich das so richtig
verstanden habe)
Nun weiß ich leider nicht, wie ich den richtigen AVR aussuchen kann. Er
soll:
1. die nötigen Anschlüsse haben
2. billig sein
3. leicht zu beschaffen sein
4. ohne externe Beschaltung laufen (interner Osc.)
Vielen Dank im Voraus für die Hilfe
Gruß
Christian
um vielleicht einen Taster zu sparen einen counter hochzählen lassen und
wenn dort 1 drine steht fahre zu Postion1 wenn 2 fahre zu Postion2
sollte der Taster nicht länger als 1s betätigt worden sein wird die
Aufgabe ausgeführt
Ist Minimalistik hier relevant? Wenn nicht, dann wirds die eierlegende
Wollmilchsau Mega88 auch tun. Von dieser Sorte kann man sich auch mal
2-3 zulegen. Klar ist der dann vielleicht zu gross - na und?
Der Tiny2313 hat tatsächlich keinen ADC. Auch hat der Typ noch die
"alte" Pinbelegung mit GND/VCC an gegenüberliegenden Ecken - den Typ
sollte man also für was neues eher meiden, weil die Entkopplung der
Versorgung nicht so einfach und gut geht. Das ist mehr ein Ersatz für
alte AT90S2313 oder 1200.
Leicht zu beschaffen und billig ist eine Frage der Quelle - also da
nachsehen und einen mit genügend Pins finden - einen internen Oszillator
haben alle aktuellen Tyen, einen AD haben die meisten Typen nur gerade
nicht der 2313.
Eine Alternative wäre ggf. noch der Tiny261 mit 20 Pins.
Wow, nach ein paar Minuten sooo viele Antworten, und alle sind
hilfreich! Ich in begeistert. Ich denke, ich werde mich für den Tiny24
entscheiden.
Die Möglichkeit die beiden Taster über einen Port laufen zu lassen ist
nicht der richtige Ansatz, da die Taster letztenendes keine Taster sein
werden, sondern Logische Eingänge, die nunmal vorhanden sind. Genauso
auch die Ausgänge für die Endposition.
Der Tiny24 kostet bei Reichelt 1,10 in der SMD-Version und erfüllt somit
(incl. des Preises) alle Anforderungen.
Nochmals Danke.... Ihr seid Spitze.
Wenn du den Tiny24 willst, dann nimm doch gleich den 84. Der ist
identisch, aber mit mehr Flash, Ram und EEprom. Das schadet nicht.
Preislich gibt es sich auch nicht viel.
Genauso wie wenn du mal einen 8 Beiner willst, dann nimmt nicht den 25
oder 45 sondern gleich den 85.
gruß cyblord
Christian R. schrieb:> Der Tiny24 kostet bei Reichelt 1,10 in der SMD-Version und erfüllt somit> (incl. des Preises) alle Anforderungen.
Das ist nicht der alte ATtiny24, sondern zum Glück der neuere ATtiny24A.
Und cyblord hat recht: besser ist der größere ATtiny84A - sogar
billiger für 1 Euro (DIP-Version):
https://guloshop.de/shop/Mikrocontroller/ATtiny84-A::34.html
Würde den nehmen, der hat 4mal so viel Flash und auch mehr RAM.
Ein Blick lohnt sich auch auf den ATtiny861A mit ebenfalls 20 Pins wie
der ATtiny2313A (bzw. ATtiny4313 ohne A), dafür aber mit ADC.
Und weil du den internen Oszillator nehmen willst: der ATtiny861A ist
neben dem ATtiny85 (und den baugleichen Typen mit weniger Speicher) der
einzige, der intern ganz normal mit 16 MHz getaktet werden kann. Die
anderen schaffen alle nur 8 oder 9.6 MHz
Oder natürlich der ganz neue Tiny841, welcher eine Erweiterung zur
24/44/84 Reihe darstellt. Mit 2x UART und solche Späße ;-)
Grundsätzlich würde ich, wenn das Gehäuse/Pinanzahl/Peripherie
feststeht, immer schauen einen möglichst aktuellen Controller zu nehmen.
Sonst entwickelt man erst auf einem Älteren Modell und ärgert sich
später, weil man in gleicher Größe und zum gleichen Preis mehr Leistung
und Peripherie bekommen hätte.
gruß cyblord
Hallo nochmal,
in meinem Projekt geht es darum, bei meiner Modellbahn die herkömmlichen
Weichenantriebe durch Servomotoren zu ersetzen. Da es ca 35 Stück sind,
und die einmal eingesetzte Elektronik wahrscheinlich nicht mehr
verändert wird, ist hier das ganze als minimalistische Lösung zu
betrachten. Damit meine ich nicht die Bauteilgröße, sondern den Preis.
Zwischenzeitlich bin ich auf den Tiny26 gestossen
(http://www.reichelt.de/Atmel-Attiny-AVRs/ATTINY-26L8-SO20/3/index.html)
der mit 49Cent preislich wohl kaum zu unterbieten ist (oder täusche ich
mich da?). Dazu kommt dann ein L293D als Motortreiber 3-4 Widestände und
ein Billigservo und schon kann ich die tatsächliche Weichenstellung an
den PC zurückmelden.
Gruß
Christian
Dass der 2313 keinen ADC hat muss nicht unbedingt hinderlich sein. Denn
du kannst die Position des Servos auch so abfragen, wie es der C64 mit
Joysticks gemacht hatte:
1
Poti 1k
2
VCC o----[===]---[===]---+-----||----| GND
3
|
4
zum AVR
Programmiere den I/O Pin als Ausgang mit Pegel LOW. Dann programmiere
ihn als Eingang und warte ab, bis er HIGH ist. Die Zeit sagt Dir, in
welcher Position der Motor steht.
Christian R. schrieb:> einen Anschluß zu wenig. Ich brauche folgende Anschlüsse:>> 2 Eingänge für Taster
Nein, brauchst du nicht. Ein IO genügt, um auch mehrere Taster abfragen
zu können. Um zwei Taster abfragen zu können, benötigst du nur einen
Kondensator und zwei Widerstände als zusätzliche Beschaltung.
Ansonsten: Tiny24.
Der Tiny26L8 ist vermutlich ein Restposten, und daher so günstig. Das es
nur die 8 MHz Version (dafür low Voltage) ist sollte hier auch nicht
stören.
Im Prinzip geht der, und reicht auch vom Speicher. Wenn man schon recht
genau weiss was man braucht muss es ja auch kein µC mit 8 K sein. Man
muss aber damit rechnen, dass man in z.B. 3 Monaten oder 1 Jahr oder so
den Tiny26 nicht mehr gut bekommt, sondern nur noch den Nachfolger
Tiny261 oder ähnlich. Ein bisschen anders ist der und braucht ggf. eine
Anpassung beim Programm - die Hardware kann aber so bleiben.
Bei der HW wäre noch zu überlegen, ob man ggf. die Elektronik im Servo
drin lassen kann, und parallel den Poti für die Position noch vom µC
auslesen. Es hängt von der internen Elektronik ab, könnte aber gehen.
Entgegen den anderen Postern wuerde ich zu einem Mega16 oder aeguivalent
dh 16K code im TQFP44 oder DIP40 raten. Das Tiny Zeug ist unwesentlich
guenstiger. Die Ersparnis ist fuer kleine Projekte mit weniger als 1000
stueck unwesentlich. Und hat fuer das naechste Projekt dann zuwenig
Moeglichkeiten.
Denn von einem Controller kauft man ja nicht einen sondern ein paar.
Erst dann kann man das Schema copy/pasten, das Layout copy/pasten.
Christian R. schrieb:> Hallo nochmal,>> in meinem Projekt geht es darum, bei meiner Modellbahn die herkömmlichen> Weichenantriebe durch Servomotoren zu ersetzen. Da es ca 35 Stück sind,> und die einmal eingesetzte Elektronik wahrscheinlich nicht mehr> verändert wird, ist hier das ganze als minimalistische Lösung zu> betrachten. Damit meine ich nicht die Bauteilgröße, sondern den Preis.>> Zwischenzeitlich bin ich auf den Tiny26 gestossen> (http://www.reichelt.de/Atmel-Attiny-AVRs/ATTINY-26...)> der mit 49Cent preislich wohl kaum zu unterbieten ist (oder täusche ich> mich da?). Dazu kommt dann ein L293D als Motortreiber 3-4 Widestände und> ein Billigservo und schon kann ich die tatsächliche Weichenstellung an> den PC zurückmelden.>> Gruß> Christian
Ja,
sehe ich auch hast ADC und genügend Pins um noch mehr machen zu können
(z.B. Signalanlage o.ä.).
Ich würde mit dem USI TwoWire realisieren und da alle Weichen/µC
dranhängen.
Aber wozu brauchst Du bei SERVO eine Vollbrücke ?
kopfkratzer schrieb:> Aber wozu brauchst Du bei SERVO eine Vollbrücke ?
Die braucht er deshalb, weil sein Servo keiner mehr ist, sondern bloß
noch ein Getriebemotor mit angeflanschtem Poti.
Er schrieb im OP, daß er die Elektronik aus dem Teil entfernt hat. Warum
auch immer...
c-hater schrieb:> kopfkratzer schrieb:>>> Aber wozu brauchst Du bei SERVO eine Vollbrücke ?>> Die braucht er deshalb, weil sein Servo keiner mehr ist, sondern bloß> noch ein Getriebemotor mit angeflanschtem Poti.>> Er schrieb im OP, daß er die Elektronik aus dem Teil entfernt hat. Warum> auch immer...kopftisch
OK dann mal z.B.:
https://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung
durchlesen und verstehen wie ein SERVO angesteuert wird um eine
bestimmte Position zu halten ...
Oder gibt's Weichen die "variable" Stellungen habe müssen, z.B. um eine
Entgleisung herbeizuführen (selbst dann kann man die Stellung berechnen
und einstellen) ?
Kann natürlich auch sein das er selber verstehen will wie so ein SERVO
angesteuert wird ?
Hallo,
Ich habe mich dazu entschieden, die Servoelektronik rauszunehmen, weil
die Billig-Servos permanent die Position nachregeln und somit 1. Strom
verbrauchen und 2. Geräusche machen. Damit schien mir die einfachste
Lösung zu sein, den Motor direkt anzusteuern und bei Erreichen der
Endposition ganz abzuschalten.
Trotzdem Danke für die Gedankenanstösse.
Gruß
Christian
Christian R. schrieb:> Hallo,>> Ich habe mich dazu entschieden, die Servoelektronik rauszunehmen, weil> die Billig-Servos permanent die Position nachregeln und somit 1. Strom> verbrauchen und 2. Geräusche machen. Damit schien mir die einfachste> Lösung zu sein, den Motor direkt anzusteuern und bei Erreichen der> Endposition ganz abzuschalten.>> Trotzdem Danke für die Gedankenanstösse.>> Gruß> Christian
Das versteh wer will.
Also man reißt die Elektronik und den Motortreiber raus, um ihn durch
einen anderen zu ersetzen. Schlau.
Natürlich regeln die Servos ständig nach, sollen sie ja auch. Weil ein
Servo seine Position halten soll.
Wenn man das nicht will, dann sendet man einfach keinen Servoimpuls
mehr. Dann wird auch nichts mehr nachgeregelt und der Motor bleibt aus.
Zumindest bei den guten alten analogen Servos in jedem Fall. Bei
digitalen gibts ja noch so FailSave Geschichten.
gruß cyblord
cyblord ---- schrieb:> Wenn man das nicht will, dann sendet man einfach keinen Servoimpuls> mehr.
Ist eine Möglichkeit.
Aber was bitte soll denn eine Servoelektronik nachregeln, wenn es
sowieso schon die Sollposition erreicht hat. Entweder es hat die
Sollposition, dann wird auch nicht nachgeregelt, oder es hat die
Position nicht, dann regelt es nach. In beiden Fällen ist das ja
eigentlich genau das, was man will.
Wenn ein Servo knurrt, dann steht unter Umständen das Rückmeldepoti
etwas schlecht oder es ist auf Anschlag gefahren worden. Letzteres wird
auch nicht besser, wenn man es selbst ansteuert.
Karl Heinz schrieb:> cyblord ---- schrieb:>>> Wenn man das nicht will, dann sendet man einfach keinen Servoimpuls>> mehr.>> Ist eine Möglichkeit.>> Aber was bitte soll denn eine Servoelektronik nachregeln, wenn es> sowieso schon die Sollposition erreicht hat.
Das kommt halt dann wenn die Belastung für das Servo zu hoch ist, oder
man in der Tat extreme billig Servo erwischt hat. Wobei hier der
Kaufpreis nicht mal entscheidend ist. Es gibt hier sehr ordentliche
billige Servos.
Habe auch schon Modellflugzeuge gesehen, da waren innen 8 Digitalservos,
immer 2 gegeneinander verspannt. Das war wie im Bienenkorb das Geräusch.
Naja aber man hat minimales Spiel erkauft durch hohen Stromverbrauch und
kurze Servolebenszeit.
gruß cyblord
Vielleicht ist auch das Signal verrauscht (Schlechte Qualität der
Versorgungsspannung oder Jitter?) und das Servo macht deswegen
"Geräusche".
Jedenfalls finde ich auch, dass das Vorgehen etwas sinnbefreit ist ;-)
Nein, ein analog Servo schnattert unter Last. Die Nachregelung wird alle
50Hz gerechnet und ausgefuehrt. Ein Digitalpot schnattert nicht, weil
der auch regeln kann, ohne ein steuersignal zu bekommen.
Siebzehn mal Fuenfzehn schrieb:> Nein, ein analog Servo schnattert unter Last. Die Nachregelung> wird alle> 50Hz gerechnet und ausgefuehrt. Ein Digitalpot schnattert nicht, weil> der auch regeln kann, ohne ein steuersignal zu bekommen.
Von Last habe ich nichts gelesen, aber Recht hast du natürlich schon.
Du meinst "Digitalservo" nicht "Digitalpot"?
Wenn die Servos nachregeln ist das Stellsignal nicht sauber.
im Zweifel Servo Stellen und Versorgungsspannung wieder abschalten.
dann macht der kein mux mehr.
wird die Weiche wieder umgefahren, Saft drauf umfahren wieder
Abschalten.
Hallo,
nach meiner anfänglichen Freude über die Rege Teilnahme an diesem Thread
verstehe ich nun die abweichende Diskussion nicht mehr. Natürlich wäre
das Ansteuern des Servos im original-Zustand kein Problem und natürlich
kann ich dann den Motortreiber sparen.... Aber das ist hier doch gar
nicht gefragt. Ich hatte eingangs geschrieben, dass ich keine
Programmiererfahrung habe. Mit meinen mangelhaften
Programmierkenntnissen muss ich eben das machen, was ich kann, und PWM
zur Erstellung des Servosignals ist nicht mein Ding. Ich bin froh, dass
ich erreicht habe, was ich brauche.
Gruß
Christian
Christian R. schrieb:> Hallo,>> nach meiner anfänglichen Freude über die Rege Teilnahme an diesem Thread> verstehe ich nun die abweichende Diskussion nicht mehr. Natürlich wäre> das Ansteuern des Servos im original-Zustand kein Problem und natürlich> kann ich dann den Motortreiber sparen.... Aber das ist hier doch gar> nicht gefragt. Ich hatte eingangs geschrieben, dass ich keine> Programmiererfahrung habe. Mit meinen mangelhaften> Programmierkenntnissen muss ich eben das machen, was ich kann, und PWM> zur Erstellung des Servosignals ist nicht mein Ding. Ich bin froh, dass> ich erreicht habe, was ich brauche.>> Gruß> Christian
Hast Du mal in den Link reingeschaut den ich gepostet habe ?
Welchen "großen" Unterschied macht nun die PWM die Du für Deine
Vollbrücke brauchst gegenüber der PWM die den Servo korrekt in Position
hält ?
Entweder man hat das Prinzip der PWM verstanden oder sollte mal
versuchen eine LED passend zum Poti zu regeln ;-)
Und da eine Weiche idR nur zwei Positionen hat würde ein linearer
Aktuator z.B. Magnetriegel o.ä. reichen, Stellung A kein Strom, Stellung
B Strom dann braucht es nur einen digitalen I/O.
Und was hast Du nun "erreicht" die "kaputten" Servos nun selber bis zum
Anschlag zu bringen ?
Christian R. schrieb:> Hallo,>> nach meiner anfänglichen Freude über die Rege Teilnahme an diesem Thread> verstehe ich nun die abweichende Diskussion nicht mehr. Natürlich wäre> das Ansteuern des Servos im original-Zustand kein Problem und natürlich> kann ich dann den Motortreiber sparen.... Aber das ist hier doch gar> nicht gefragt. Ich hatte eingangs geschrieben, dass ich keine> Programmiererfahrung habe. Mit meinen mangelhaften> Programmierkenntnissen muss ich eben das machen, was ich kann, und PWM> zur Erstellung des Servosignals ist nicht mein Ding. Ich bin froh, dass> ich erreicht habe, was ich brauche.
Für das Stellen des Motors ohne die Servoelektronik brauchst du doch
auch eine PWM... Oder denkst du da an Zweipunktregelung?.. Hust hust.
Siebzehn mal Fuenfzehn schrieb:> Nein, ein analog Servo schnattert unter Last. Die Nachregelung wird alle> 50Hz gerechnet und ausgefuehrt. Ein Digitalpot schnattert nicht, weil> der auch regeln kann, ohne ein steuersignal zu bekommen.
Das ist Unfug, ein Digitalservo rattern oftmals sogar mehr, da es
empfindlicher und schneller auf Änderungen reagiert. Gerade wenn dann
die Anlenkungen eben nicht 100% spielfrei und leichtgängig sind kann es
auch ordentlich schwingen. So pauschal kann man das nicht sagen, dass
Digiservos weniger zittern.