PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 I2C Servo Ansteuerung



Pyp3
13.11.2008, 10:41
hallo,
ich habe folgendes mit dem rp6 vor:
er soll wärmequellen aufspüren und dann darauf reagieren. ich habe schon ein paar programme geschrieben und ein wenig mit dem rp6 rumprobiert. nun hab ich da zwei fragen:

1. kann ich den I2C Bus auch ohne erweiterungsplatine nutzen indem ich den bus einfach an den SDA und SCL pins aufbaue?

2. Hier wirds etwas umfangreicher. zur wärmeerkennung möchte ich einen pyro-temperatursensor benutzen der über den I2C bus läuft. dieser sensor kann direkt einen servomotor ansteuern über befehle die er über den I2C bus erhält. hierzu steht im datenblatt:

Befehl
Dezimal / Hex / Aktion
0 / 0x00 / Setzt Servo Position auf Minimum
nn / nn / Setzt Servo Position
31 / 0x1F / Setzt Servo Position auf Maximum

160 / 0xA0 / Erstes Byte in Sequenz zur Änderung Moduladresse
165 / 0xA5 / Drittes Byte in Sequenz zur Änderung Moduladresse
170 / 0xAA / Zweites Byte in Sequenz zur Änderung Moduladresse

Komplette Dokumentation (http://www.roboter-teile.de/datasheets/tpa81.pdf)

Weis damit noch nichts anzufangen. also der compiler gibt ja die hex dateien für den mikrocontroller aus. wie beschreibe ich diese befehle für den servo in C und wie schicke ich sie dann an den sensor?

Für jede hilfe bin ich dankbar. auch beispielprogramme in denen so ähnliche funktionen benutzt werden wären nützlich.

Dirk
13.11.2008, 17:11
@Pyp3:
Zu 1:
Ja, du kannst den Sensor einfach an SCL, SDA anschliessen. Natürlich muss auch GND verbunden werden.

Zu 2:
Sieh dir 'mal die I2C-Beispiele für den RP6 (RP6Base_I2CMaster_0x) an. Da kann man gut sehen, wie ein I2C-Slave (in deinem Fall der Sensor) angesteuert wird.
Einbinden in deine Programme must du die RP6I2CmasterTWI Library des RP6.
Dein Programm muss dann die Bytes senden, die der TPA81 braucht (siehe Datenblatt).

Gruß Dirk