//---------------------------------------------------------------------- // Servo Georg //---------------------------------------------------------------------- #include <Servo.h> Servo servo; // Der Taster muß den Pin auf Ground/Masse/Minus schalten, /*** Atmega328 Konfiguration hier!!! ***/ /* #define tasterPin1 8 //Taster1 an Pin 8 angeschlossen #define tasterPin2 9 //Taster2 an Pin 9 angeschlossen #define Servo_Pin 12 //Servo an Pin 12 */ /*** Alternative 8-pinnige ATtiny45 Anschlusskonfiguration hier ***/ // von hier... #define tasterPin1 8 //Taster1 an IC Pin 2 des Attiny 45 #define tasterPin2 9 //Taster2 an IC Pin 3 des Attiny 45 #define Servo_Pin 12 //Servo an IC Pin 5 des Attiny 45 // bis hier
int Stellung1 =50; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 165; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu); //------------------------------------------------------------- void setup() { pinMode(tasterPin1, INPUT); //tasterPin1 (Pin 8) wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren servo.attach(Servo_Pin); servo.write(Stellung_bisher); Serial.begin(9600);
Stellung_bisher=Stellung1; // Ruhestellung } //------------------------------------------------------------- void loop() { if (digitalRead(tasterPin1) == LOW) Servo_move(Servo_Pin, Stellung1); if (digitalRead(tasterPin2) == LOW) Servo_move(Servo_Pin, Stellung2); delay(20); servo.write(Stellung_bisher); } //------------------------------------------------------------- /*** Ab hier nichts ändern, bestimmt das Timingverhalten!!! ***/
void set_value(int pos){ //Funktion zum umgehen von Fehler meldung servo.write(pos); }
Ist ohne eeprom! Was du auf jeden fall übenehmen solltes ist der Präprozessor #define befehl:http://arduino.cc/en/Reference/Define um Pins zu benennen Speicher für Int zu reservieren ist nicht optimal, du willst es später ja eh nicht ändern.
Dann habe ich das ganze mit der Servo lib gelöst, der auruf servo.write hat allerdings direkt in deiner Funktion eine fehler erzeugt, das muss ich mir noch mal ansehen, da ich das nicht verstehe... Vieleicht hat hier ja jemand eine idee
Zitat von Eisenhorn.....Was du auf jeden fall übenehmen solltes ist der Präprozessor #define befehl:http://arduino.cc/en/Reference/Define um Pins zu benennen Speicher für Int zu reservieren ist nicht optimal,....
Zitat aus obigem Link (http://arduino.cc/en/Reference/Define): "In general, the const keyword is preferred for defining constants and should be used instead of #define." Im angegeben Link zu #define wird empfohlen, #define nicht zu verwenden.
Zitat von Z-Welt...... Betätige ich den Taster für Tor zu, bewegt sich das Tor noch weiter auf (( ca, 3Grad )) und geht dann aber langsam , wie es soll, in Stellung Zu.......
Kann ich mir nicht erklären.... Vielleicht stellst Du nochmal den kompletten geänderten Sketch ein.
Zitat von Eisenhorn.....Was du auf jeden fall übenehmen solltes ist der Präprozessor #define befehl:http://arduino.cc/en/Reference/Define um Pins zu benennen Speicher für Int zu reservieren ist nicht optimal,....
Zitat aus obigem Link (http://arduino.cc/en/Reference/Define): "In general, the const keyword is preferred for defining constants and should be used instead of #define." Im angegeben Link zu #define wird empfohlen, #define nicht zu verwenden.
Jup wenn man damit zum Beispiel rechnet, oder Verwechslunggefahr durch Bezeichnung besteht. Aber ich habe mal gelernt die Pin zuweißung immer durch #define zumachen, spart ja auch Speicher!
Hallo, hier ist noch mal der Sketch, stelle Montag oder Dienstag noch mal ein Video vom Ablauf ein. Trotzdem schon mal Danke an alle Beteiligte, es ist doch ein interessantes Thema. Programmierung hat doch viele Wege. MfG Georg
#include <EEPROM.h>
int tasterPin1 = 8; //Taster1 an IC Pin 2 des Attiny 45 int tasterPin2 = 9; //Taster2 an IC Pin 3 des Attiny 45 int Servo_Pin = 12; //Servo an IC Pin 5 des Attiny 45
int Stellung1 =0; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 92; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu);
void setup(){ pinMode(tasterPin1, INPUT); //tasterPin1 (Pin wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren pinMode(Servo_Pin,OUTPUT);
Entferne mal vor der Setup-Routine die Zeile: void Servo_move(int servo,int Stellung_Neu);
Ansonsten fällt mir nichts auf..... (Höchstens in der letzten Zeile sollte bei EEPROM.write anstelle Stellung_bisher besser Stellung_neu stehen, was aber eigentlich nichts ausmachen sollte, da an dieser Stelle des Programmablaufs beide Werte gleich sein müssten.)
Entferne mal vor der Setup-Routine die Zeile: void Servo_move(int servo,int Stellung_Neu);
Ansonsten fällt mir nichts auf..... (Höchstens in der letzten Zeile sollte bei EEPROM.write anstelle Stellung_bisher besser Stellung_neu stehen, was aber eigentlich nichts ausmachen sollte, da an dieser Stelle des Programmablaufs beide Werte gleich sein müssten.)
Moin,
Dann aber die ganze Funktions beachreibung hoch kopieren!
So wie ist es jetzt ist ist es meiner Meinung nach besserer Programmierstil. Aber die Pin Namen als int würde ich ändern, Das ist ganz schlechter Stil und kann bei großen Projekten schnell Fehler finden
etwa so : Sketch nur geändert, aber noch nicht getestet, erst Montag oder Dienstag
#include <EEPROM.h>
int Stellung1 =0; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 92; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu);
void setup(){ pinMode(tasterPin1, INPUT); //tasterPin1 (Pin wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren pinMode(Servo_Pin,OUTPUT);
etwa so : Sketch nur geändert, aber noch nicht getestet, erst Montag oder Dienstag
// Servo Georg //----------------------------------------------------------------------
// Der Taster muß den Pin auf Ground/Masse/Minus schalten, /*** Atmega328 Konfiguration hier!!! ***/ /*
int Stellung1 =0; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 92; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu); //------------------------------------------------------------- void setup() { pinMode(tasterPin1, INPUT); //tasterPin1 (Pin wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren pinMode(Servo_Pin,OUTPUT);
Stellung_bisher=Stellung1; // Ruhestellung } //------------------------------------------------------------- void loop() { if (digitalRead(tasterPin1) == LOW) Servo_move(Servo_Pin, Stellung1); if (digitalRead(tasterPin2) == LOW) Servo_move(Servo_Pin, Stellung2); delay(20); } //------------------------------------------------------------- /*** Ab hier nichts ändern, bestimmt das Timingverhalten!!! ***/ ab hier Zeile entfernt { int Schritt; if (Stellung_neu == Stellung_bisher) return; Schritt = (Stellung_neu > Stellung_bisher) ? 1 : -1; while(Stellung_bisher != Stellung_neu){ Stellung_bisher+=Schritt; // Servo stellen digitalWrite(servo,HIGH); delayMicroseconds((Stellung_bisher * 10)+500); digitalWrite(servo,LOW); delay(Warten); } }
Das wird noch funktionieren da der Compiler nun nicht weiß welche Anweisung zu der Funktion gehört
int tasterPin1 = 8; //Taster1 an IC Pin 2 des Attiny 45 int tasterPin2 = 9; //Taster2 an IC Pin 3 des Attiny 45 int Servo_Pin = 12; //Servo an IC Pin 5 des Attiny 45
int Stellung1 =0; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 92; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu);
void setup(){ pinMode(tasterPin1, INPUT); //tasterPin1 (Pin wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren pinMode(Servo_Pin,OUTPUT);
War wohl etwas missverständlich formuliert. Die rot markierte Zeile sollte raus.
(Klar könnten die int auch als byte deklariert werden, aber Speicher ist ja üppig übrig... und einen Eleganzwettbewerb wollen wir auch nicht gewinnen. )
int tasterPin1 = 8; //Taster1 an IC Pin 2 des Attiny 45 int tasterPin2 = 9; //Taster2 an IC Pin 3 des Attiny 45 int Servo_Pin = 12; //Servo an IC Pin 5 des Attiny 45
int Stellung1 =0; //ServoStellung 1 (Einstellbar zwischen Min 0° bis max.180° Winkel, auf) int Stellung2 = 92; //ServoStellung 2 (Einstellbar zwischen Min 0° bis max.180° Winkel, zu) int Stellung_bisher; // Für Vergleich const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern! void Servo_move(int servo,int Stellung_Neu);
void setup(){ pinMode(tasterPin1, INPUT); //tasterPin1 (Pin wird als INPUT definiert pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 9) wird als INPUT definiert digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren pinMode(Servo_Pin,OUTPUT);
War wohl etwas missverständlich formuliert. Die rot markierte Zeile sollte raus.
(Klar könnten die int auch als byte deklariert werden, aber Speicher ist ja üppig übrig... und einen Eleganzwettbewerb wollen wir auch nicht gewinnen. )
Auch das dürfte nicht funktionieren da die Funktion aufgerufen wird bevor sie definiert ist!
Zum int ich finde halt das der Datentyp dafür nicht da ist, und Pins werden so wie ich es gelernt habe immer per define definiert.
Edit: Gerade mal in die Andruino IDE eingegeben, damit geht es merkwürdiger weiße. Wieder mal wieder ein fehler meinerseits direkt im avr gcc logischer weiße nicht:D:D
Zitat von Eisenhorn....... Auch das dürfte nicht funktionieren da die Funktion aufgerufen wird bevor sie definiert ist!
Zum int ich finde halt das der Datentyp dafür nicht da ist, und Pins werden so wie ich es gelernt habe immer per define definiert.
Edit: Gerade mal in die Andruino IDE eingegeben, damit geht es merkwürdiger weiße. Wieder mal wieder ein fehler meinerseits direkt im avr gcc logischer weiße nicht:D:D
Wir reden von Arduinos. Keine C++ Programmierung - für gestandene gelernte Programmierer sicher gewöhnungsbedürftig. Aber für Einsteiger ganz praktikabel. Die IDE nimmt einem eben vieles ab. (Und macht manchmal unerwartete Dinge...)
Es geht aber nicht um "Besserwisserei" sondern um die Lösung des Problems von Georg. Um bei dem Problem der "3Grad" eine Lösung zu finden, ist mir nur die rot markierte Zeile aufgefallen, vielleicht startet die ArduinoIDE bei der (in der Arduinoumgebung nicht nötigen) Definition schon einen Aufruf.....
Hallo, ich habe diesen Sketch vom (( Uli )) --- So 5. Okt 2014, 21:17 Uhr. mit der rot gezeichneten entfernten Zeile in den Arduino geladen. Arduino an ein Netzgerät gehängt. Funktion getestet , einmal mit Einschalten und aufgeregelter Spannung und einmal direkt eingeschaltet mit 7,5 Volt, hier bei zuckt das Servo und bei geöffnetem Tor zuckt das Servo kurz um dann das Tor zu schließen. in den nächsten Tagen mal einen ATtiny 45 bespielen. MfG Georg
Ich habe mir das Video mal genauer angesehen. Meine Beobachtung: Beim Einschalten (Tür in Stellung zu) zuckt das Servo und macht die Tür etwas weiter zu und steht bei einem Winkel etwas größer als im EEPROM gespeichert. Kommt jetzt ein auf-Befehl springt es schnell auf die gespeicherte zu-Stellung um dann normal aufzugehen. Das schnelle Springen auf die gespeicherte Stellung fällt nicht auf, da es in der Bewegungsrichtung liegt. Beim Einschalten (Tür in Stellung auf) zuckt das Servo und macht die Tür etwas zu und steht wieder bei einem Winkel etwas größer als im EEPROM gespeichert. Kommt jetzt ein zu-Befehl springt es schnell auf die gespeicherte auf-Stellung um dann normal zuzugehen. Das schnelle Springen auf die gespeicherte Stellung fällt jetzt auf, da es entgegen der Bewegungsrichtung liegt. Das Problem ist somit das Einschaltzucken des Servos. Zu dieser Frage gab es aber schon einige Threads - siehe mein früherer Hinweis. Ein Problem könnte auch sein, dass das Servo nur nach Tastendruck ein Signal bekommt - bei Servo_move -, ansonsten wird kein ServoSignal ausgegeben. Wird ein Servo über Timer gesteuert, erhält es permanent ein Steuersignal. Evtl. sollte man den Sketch dahingehend abändern, dass man die servo-lib verwendet.
Zitat von Eisenhorn....... Auch das dürfte nicht funktionieren da die Funktion aufgerufen wird bevor sie definiert ist!
Zum int ich finde halt das der Datentyp dafür nicht da ist, und Pins werden so wie ich es gelernt habe immer per define definiert.
Edit: Gerade mal in die Andruino IDE eingegeben, damit geht es merkwürdiger weiße. Wieder mal wieder ein fehler meinerseits direkt im avr gcc logischer weiße nicht:D:D
Wir reden von Arduinos. Keine C++ Programmierung - für gestandene gelernte Programmierer sicher gewöhnungsbedürftig. Aber für Einsteiger ganz praktikabel. Die IDE nimmt einem eben vieles ab. (Und macht manchmal unerwartete Dinge...)
Es geht aber nicht um "Besserwisserei" sondern um die Lösung des Problems von Georg. Um bei dem Problem der "3Grad" eine Lösung zu finden, ist mir nur die rot markierte Zeile aufgefallen, vielleicht startet die ArduinoIDE bei der (in der Arduinoumgebung nicht nötigen) Definition schon einen Aufruf.....
Bin kein gelernt Programmierer und die Librarys sind intern C++ Ne aber das mit int kann bei größeren Projekten schon zu Problemen führen.
Zum Thema:
Zitat von spielbahnIch habe mir das Video mal genauer angesehen. Meine Beobachtung: Beim Einschalten (Tür in Stellung zu) zuckt das Servo und macht die Tür etwas weiter zu und steht bei einem Winkel etwas größer als im EEPROM gespeichert. Kommt jetzt ein auf-Befehl springt es schnell auf die gespeicherte zu-Stellung um dann normal aufzugehen. Das schnelle Springen auf die gespeicherte Stellung fällt nicht auf, da es in der Bewegungsrichtung liegt. Beim Einschalten (Tür in Stellung auf) zuckt das Servo und macht die Tür etwas zu und steht wieder bei einem Winkel etwas größer als im EEPROM gespeichert. Kommt jetzt ein zu-Befehl springt es schnell auf die gespeicherte auf-Stellung um dann normal zuzugehen. Das schnelle Springen auf die gespeicherte Stellung fällt jetzt auf, da es entgegen der Bewegungsrichtung liegt. Das Problem ist somit das Einschaltzucken des Servos. Zu dieser Frage gab es aber schon einige Threads - siehe mein früherer Hinweis. Ein Problem könnte auch sein, dass das Servo nur nach Tastendruck ein Signal bekommt - bei Servo_move -, ansonsten wird kein ServoSignal ausgegeben. Wird ein Servo über Timer gesteuert, erhält es permanent ein Steuersignal. Evtl. sollte man den Sketch dahingehend abändern, dass man die servo-lib verwendet.
Wie das ganze mit der servo lib aussehen könnte hatte ich ja schon gepostet, bin mir aber nicht sicher ob es das Problem löst, muss gerade für ein Projekt mit einem Arduino rum spielen, dabie ist mir aufgefallen das die OUT Pins immer gleich VDD anliegen haben eventuell könnte der servo das schon als Stellsignal deuten, dann würde das bei mlangsamen hochregeln nicht auftreten, da der Kontroller schon bei niedrigeren Spannungen(3.3V) anfängt zuarbeiten. Die Schaltschwelle für den Servo aber noch nciht erreicht ist.
gegen unkontrollierte Bewegungen schalte ich über ein Relais die Servospannung erst ein, wenn der Arduino komplett gestartet und die Grundstellung vorgegeben ist:
Servo sperrsignal_1; // create servo object sperrsignal_1 to control Sperrsignal Gleis 1 Servo hauptsignal_1; // create servo object to control a servo Servo sperrsignal_2; // create servo object to control a servo Servo hauptsignal_2; // create servo object to control a servo
int const sperrsignal_1_pin = 9; int const sperrsignal_1_sh0 = 135; int const sperrsignal_1_sh1 = 70; int sperrsignal_1_pos = 135;
int const hauptsignal_1_pin = 10; int const hauptsignal_1_hp0 = 175; int const hauptsignal_1_hp1 = 90; int hauptsignal_1_pos = 175;
...
int const servos_relais_pin = 7;
...
void setup() { sperrsignal_1.attach(sperrsignal_1_pin); // attaches sperrsignal_1 on pin 9 hauptsignal_1.attach(hauptsignal_1_pin); // attaches hauptsignal_1 on pin 10 sperrsignal_2.attach(sperrsignal_2_pin); // attaches sperrsignal_2 on pin 11 hauptsignal_2.attach(hauptsignal_2_pin); // attaches hauptsignal_2 on pin 12 pinMode(servos_relais_pin, OUTPUT); // Relais-Pin Servo-Spannung sperrsignal_1.write(sperrsignal_1_sh0); // Sperrsignal Gleis 1 in Grundstellung (SH0) hauptsignal_1.write(hauptsignal_1_hp0); // Hauptsignal Gleis 1 in Grundstellung (HP0) sperrsignal_2.write(sperrsignal_2_sh0); // Sperrsignal Gleis 2 in Grundstellung (SH0) hauptsignal_2.write(hauptsignal_2_hp0); // Hauptsignal Gleis 2 in Grundstellung (HP0) digitalWrite(servos_relais_pin, HIGH); // Servo-Spannung einschalten }
Hier der dazugehörige "Prinzip-Schaltplan". Leider habe ich in Fritzing keine besseren Komponenten (Relais/Servo) gefunden (und den Stützkondensator vergessen) - bei den handelsüblichen Servos ist natürlich "+5V" in der Mitte und "Pulse" gegenüber von Masse, die anderen Transistoren des Arrays werden für die Weichenansteuerung benötigt und das ULN2803A passt so schön neben die Arduino-Pins ...:
Sofern die Signale beim Abschalten der Spannung in Grundstellung liegen, ist ein leichtes Zucken nur spürbar, aber an den Signalen nicht sichtbar. Ansonsten natürlich auch hier Anfahren der Soll-Position mit Höchstgeschwindigkeit - aber mit dem EEPROM-Thema werde ich mich dann beschäftigen, wenn der Rest funktioniert.
Wenn das auch noch bei allen vier Signalen reproduzierbar so funktioniert, werde ich auch nach jeder Fahrstraßenschaltung die Servospannung wieder abschalten, um "Stör-Zucken" zu unterbinden.
Viele Grüße, Bodo
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)
Hallo, es ist ja nun schon eine gewisse Zeit vergangen... Gibt es neuste Erkenntnisse?? Wie wurde das "Problemzucken" gelöst? Würde mich Interessieren. Gruß
die Zuckungen hatte ich bei einigen CN-Servos auch mal, meistens beim Einschalten. Abhilfe schaffte ein 4,7 K Widerstand vom Steueranschluß des Servos nach 5V.
Weitere Abhilfe schaffte eine Änderung des Sketches, damit der Servo nicht bis an die Endanschläge fährt, hier hatte ich die meisten Zuckungen.
Meine kleine Parkettbahn "Bärlin", neu: Gleisplan #024 mit BR 023, 80 und 218 . Dieser Beitrag endet hier. Sie können noch bis zum nächsten Beitrag mitlesen.
Hi, Ganz einfach - CN Servos sind Servos aus ChiNa, dort Recht günstig zu bekommen, aber die gleichen/selben Servos sind auch von deutschen Händlern zu zum Teil horrenden Preisen erhältlich.
Und schon geht die Diskussion wieder los - China ja nein Billigheimer Lohndumping ich-kaufe-nur-deutsche-artikel usw.
Hi, also ich nutze die Moba-Tools und bei mir zappelt nix. Ich setze Franz-Peters (Microbahner) DCC Decoder als Servodecoder für Weichen und Signale sowie einige Gimmicks ein, und da machen die Servos genau das was sie sollen, da gibt's kein Eigenleben.
Hallo Ulrich, danke für die Erläuterung. Billig-Servos haben mir in RC-Cars nur Probleme bereitet. Z.B. von Carson Modelsport: Langsam, zittrig und laut. Zucken beim Einschalten, Zentrierung driftet mit der Zeit ab. So etwas miserables war ich z.B. von Acoms nicht gewöhnt.
Nutze darum inzwischen nur noch welche von Futaba und Savöx. Die sind ihren Preis wert. Verrichten ihren Dienst unauffällig und zuverlässig. In meinen älteren Modellen stecken auch noch Standardservos von Acoms, Tamiya (Futaba) und Graupner (JR).
Vorsicht, Ebay ist mit gefälschten Markenservos von sehr schlechter Qualität überschwemmt. Üblicherweise kommen die von chinesischen Händlern. Bei Futabas Standardservo S3003 gibt es mehr Fälschungen am Markt als Originale, ähnlich ist es bei TowerPro-Servos. Die Links enthalten Vergleichsbilder Original Vs. Fälschung.
Eine Einführung zu Servos von chinesischen Herstellern mit Empfehlungen und Warnungen.
Meine kleine Parkettbahn "Bärlin", neu: Gleisplan #024 mit BR 023, 80 und 218 . Dieser Beitrag endet hier. Sie können noch bis zum nächsten Beitrag mitlesen.
Hallo, wie macht Ihr das im Einzelnen, mit der Spannungsversorgung??? Arduino und Servo getrennt oder beides nur Zeitverzögert von einer Spannungsversorgung? Ich gehe davon aus, das getrennt optimaler ist?? Gruss