Hallo, ich habe folgendes Problem mit dem SD20: Nach mehrmaligen Verkabeln (3 Versuche: 2 Platinen + nur noch Kabel angelötet) funktioniert der Controler immer noch nicht:
Beim Anlegen der Spannung zucken die Servos (normal) - Stromversorgung soweit an allen notwendigen Pins getestet.
Gibt es ein Kontrollprogramm , welches den SD20 auf sein korrektes Funktionieren überprüfen kann (Antwort über das terminal ausgeben)? Weitere Lösungsvorschläge für mein Problem wären sehr hilfreich. (mittlerweile schon zu viel Zeit damit verbracht - sehe keinen Fehler)
Zum kurzen Verwendungszweck: Es sollen lediglich 2 Servos von einer C-Control 1 auf dem Application Board angesteuert werden (mit einer möglichst präzisen Positionsangabe für einen 3dScanner) - Position soll per Comport mit einem Delphi Programm übermittelt werden ( als Sensoren sind ein GP2D12 u. GP2D120 montiert - funktionieren)
getestete Servos:
Graupner JR C507 @4.8V
Conrad ES-05 TopLine (2 verschiedene)
Wie folgt verkabelt:
C-Control1 auf Application Board
DigitalPorts 1/2 (7/8 oder 15/16 (An die Stiftleiste der C-Control angelötet))
z.zt:
DigitalPort 7 an SD20 Port 15
DigitalPort 8 an SD20 Port 14
C-Control GND an SD20 Port 19 sowie Port 8, Servo Farbe Schwarz(Conrad)/Braun(Graupner) , Mittelanschluß des Keramikresonator
C-Control 5V an SD20 Port20 sowie Port 1, Servo Farbe Rot (Conrad/Graupner)
Servo gelb/weiß an SD20 Port 3 (oder Port 1 od. 2 - beides getestet)
100nF (2 verschiedene getestet) an SD20 Port 19 zu 20
mitgelieferten Resonator Außenpole an SD20 Port 10 u. 9 (andere Anschlussrichtung getestet - horizontal um 180° gedreht)
Desweiteren habe ich einen eigenen Stromanschluss für die Servos angebracht - 6V (Am Akku oder mit Netzgerät), Ergebnis ist gleichbleibend.
'*********** Hauptprogramm********************************
#Main
gosub I2C_Start ' I2C-Startbedingung
I2C_Daten=194 ' Adresse des SD20 am I2C Bus
gosub I2C_Write ' Adresse übertragen
I2C_Daten = 3' Register des Servos, der angesprochen werden soll schreiben
gosub I2C_Write ' Register übertragen
I2C_Daten = 0' Winkel auf den dieser Servo drehen soll schreiben
gosub I2C_Write ' Winkel schreiben
gosub I2C_Stop ' I2C-Stopbedingung.
Return
'*********** I2C Bus Standard Routinen********************
#I2C_Start
SDA=OFF
SCL=OFF
return
#I2C_Stop
SDA=OFF
SCL=ON
SDA=ON
return
#I2C_Write
for N=1 to 8 ' 8 Bit schreiben in For-Next-Schleife
SDA=OFF
if (I2C_Daten and 12 =128 then SDA=ON
pulse SCL
I2C_Daten=I2C_Daten shl 1
next
pulse SCL
Return
#I2C_Read
I2C_Daten=0
deact SDA
for n=1 to 8 ' 8 Bit lesen in For-Next-Schleife
I2C_Daten=I2C_Daten shl 1
SCL=ON
if SDA then I2C_Daten=I2C_Daten+1
SCL=OFF
next
Return
Hello,
It could be that you are using an SD20 with Revision 2 software.
Writing a “0” as servo position will deactivate (turn off) the servo.
Try writing a “1” instead.
Success!
Greetings,
H.J. Windt
Hello,
I have uploaded my E-I2C DEVICE SEEK software for you to try. https://www.roboternetz.de/phpBB2/dl...le&file_id=311
This software will check all the I2C 7 bit addresses for any device connected to the E-I2C bus and display the address(es) on a terminal program.
This way we can make sure that the SD20 is reacting.
My software uses port[1] as SDA and port[2] as SCL.
Make sure to disconnect the servo first and let me know if the terminal program displays any found I2C devices.
Greetings,
H.J. Windt
Hello,
I’m sorry to hear that you C-Control is malfunctioning.
I have created a small test program for you to try.
You will need to use a terminal program because the program will ask you for a servo number and a servo position.
Make sure to use 2 power supply’s, 1 power supply for the C-Control and SD20(+5V from C-Control), the other power supply for your servo.
Remember to connect all the power supply GND’s (-) together.
Greetings,
H.J. Windt
Lesezeichen