Ich habe gerade entdeckt, das ich 550microsekunden nach der highflanke Eine "schwingende" spitze habe. Kännte das vieleicht der Grund sein?
Wobei 0,5ms das macht selbst für einen Servo nicht viel aus, oder?
Und wie krieg ich das weg?
Bild hier
Danke für deine Antwort.
Die 3 Servos sind parallel an der selben Versorgung (je ca. 10mm von einander enfernt).
Ich habe das Signal auch schon mit angeschlossenem Servo gemessen und es ändert sich eigentlich nicht.
Es ist zum verzweifeln.
Die Punkte sind vom Oszi.
Eine Brücke kann ausgeschlossen werden, ich habe die Schaltung 6mal.
Es muss am Signal liegen....
Ich habe gerade entdeckt, das ich 550microsekunden nach der highflanke Eine "schwingende" spitze habe. Kännte das vieleicht der Grund sein?
Wobei 0,5ms das macht selbst für einen Servo nicht viel aus, oder?
Und wie krieg ich das weg?
Bild hier
Es könnte sein, dass diese Spannungsspitze tatsächlich irgendwas ausmacht, denn was anderes fällt mir da nicht wirklich ein...
Könntest versuchen, einen Widerstand in Reihe zu schalten (größe musst du ausprobieren...kann von 10-1000Ohm liegen).
Wenn das nichts bringt, könnte mans mit einem kleinen Kondensator versuchen (kein Elko!). Der Kondensator sollte sehr klein sein, im Berich pico oder einige nano (musst eben auch ausprobieren)
Hoffe, es hilft was.
Gruß, Yaro
Widerstände sind drin und haben sich eigentlich auch bewährt (also schon länger und auf allen Kanälen)
Ich hab jetzt einmal versucht das Servo auf andere Positionen zu steuern.
Laut Oszi funktioniert das, nur der Servo fährt immer an die selbe Position(An den mech. Anschlag).
Das kann doch nicht sein, dass das Oszi mir ein sauberes Signal anzeigt und der Servo macht was er möchte???
Betreffend der Elektronik.
Ich fahre direkt vom Port auf einen Widerstand und dann auf das Servo,
die Versorgung ist bei allen Kanälen parallel.
Es muss mit der Ansteuerung zusammen liegen.
Die wie folgt aussieht:
Code:ISR(TIMER2_OVF_vect) { TCCR2 = 0x00; } ISR(TIMER_CAPT_vect) { TCCR2 = (1<<WGM20 | (1<<WGM21) | (1<<COM21) | (1<<CS22) | (1<<CS20); } //Initialisierungs Funktion TIMSK |= (1<<TICIE1) | (1<<TOIE2); TCCR1A = (1<<COM1A1) | (1<<COM1B1); TCCR1B = (1<<WGM13) | (1<<CS11); ICR1 = 20000; OCR1A = 1500 //1.5ms OCR1B = 1500; OCR2 = 187; //ca. 1.5ms } Ich habs abgeschrieben, möglich das sich ein Schreibfehler eingeschlichen hat.
Hi,
was du machen kannst ist dieses IC zu nehemen:
74HC 4017
Das macht dir aus einem Summensignal mehrere Kanäle.
Das bedeutet, du kannst für alle Servos (sofern du mehr als einen nehmen willst) das Signal über den TIMER 1 generieren.
Dazu würde man den Timer so aufsetzten, dass er mit möglichst viel auflösung die und dem richtigen Wert für TOP 20ms braucht.
Den Wert in OCR1 würdest du bei jedem Erreichen von Top mit der nächsten Servoimpulsdauer füllen. Das oben genannte IC macht dir daraus dann wieder einzelne Kanäle.
mfg,
The Man
Chuck Norris kann Windows Vista auf einem Atmel in Assembler implementieren!
Chuck Norris coded mit 3 Tasten:"1","0" und "compile"
Wen es irgendwie möglich ist möchte ich die Schaltung mehr oder weniger so belassen wie sie ist.
Aber danke für die Info.
Hmm, das ist ein eriklich interessantes Problem!
An der Software sollte es eigentlich nicht liegen, denn das Oszi zeigt es ja alles richtig an!
Liegt OC2 standartgemäß auf GND?
Also: DDRB &= ~(0x0;
PORTB &= ~(0x0;
Wieso fängt der Impuls auf OC" eigentlich erst nach 10ms an?
Der Software nach sollten die ja beide ziemlich gleichzeitig sein....
Gruß, Yaro
Alle Ports werden als erstes auf GND gelegt.
Wieso OC2 verspätet beginnt habe ich mich auch schon gefragt. erklären kann ich's mir nicht.
Ich habe in der Software auch noch die TWI ISR laufen und dachte die pfuscht vieleicht rein.
Also hab ich das ganze Programm dezimiert bis auf die PWM und das Problem besteht noch immer.
Ich mach kurz Fotos der Platine und stell sie hoch.
Danke für eure Bemühungen
EDIT:
Bild hier
Bild hier
Das Board sieht eigentlich ganz sauber aus. Die Leitung, die beim ISP verläuft berührt die GND-Pins nicht, oder? (kann man schlecht von hier sehen).
ISP ist beim Testen abgeschlossen, oder?
Poste mal dein komplettes (aber auf PWM reduziertes) Programm rein, ich teste es mal bei mir. Wärst du bitte auch so lieb, den Prescaler auf 8MHz umzustellen (beide Timer)?
Hab zwar im mom kein Oszi zur Hand, habe aber andere Möglichkeiten =)
Gruß, Yaro
Die Leitungen berühren sich nicht, und ich habe 6 Stück von diesen Platinen... es funktioniert bei keiner
Der ISP ist weg beim testen.
Ich poste Morgen den Code.
Lesezeichen