Hallo,
ich weiß, dass es zum Thema Servoansteuerung schon so viele Threads gibt, nur leider hab ich keinen gefunden wo der Servo mit nem PCF8574 angesteuert wird, und auch keinen wo meine Probleme behandelt werden.
Also ich hab einen RP6 ohne M32 mit einer Erweiterungsplatine wo der PCF8574A drauf ist, andessen seinen I/O Ports die Signalservoleitung liegt.
Mein momentaner Code sieht so aus:
Momentan eben erst mal nur zum Testen, es soll eben nur in Mittelstellung gefahren werden und gehalten werden.Code://Servoansteuerungs Test #include "RP6RobotBaseLib.h" #include "RP6I2CmasterTWI.h" #define PCF8574_Schreiben 0b01110000 void ServoAnsteuern( uint8_t grad) { if(getStopwatch1() >= 20){ // Alle 20 ms Impuls senden setStopwatch1(0); I2CTWI_transmitByte(PCF8574_Schreiben, 0b00001000); // Signal auf High sleep(grad); // Signaldauer I2CTWI_transmitByte(PCF8574_Schreiben, 0b00000000); // Signal auf Low } } void I2C_transmissionError(uint8_t errorState) { writeString_P("I2C ERROR - TWI STATE: 0x"); writeInteger(errorState, HEX); writeChar('\n'); } int main(void) { initRobotBase(); I2CTWI_initMaster(100); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); startStopwatch1(); uint8_t grad = 15; // = 1,5ms -> normalerweise Mittelstellung while(true) { ServoAnsteuern(grad); task_I2CTWI(); } return 0; }
Nun meine Probleme:
1. Einerseits hab ich einen TOP LINE MINI SERVO Y-3009 von Conrad (http://www.conrad.de/ce/de/product/2...archDetail=005) drangehängt. Dieser fährt zwar auf die Position zittert aber ständig + - 10grad hin und her.
2.Andererseits hab ich einen TOP-LINE STANDARD SERVO RS 2 JR ebenfalls von Conrad (http://www.conrad.de/ce/de/product/2...archDetail=005) drangehängt, dieser fährt allerdings nur an den rechten Anschlag und drückt weiter (Ich hab auch schon alle möglichen Impulsdauern ausprobiert, zwichen 0,1 und 10 ms - leider keine Änderung).
Vielen Dank schon jetzt für dei Antworten
MFG DERICH







 
			
			 
					
					
					
						 Zitieren
Zitieren
Lesezeichen