Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hi Ulli, > > > > sind die Pullup-Widerstände unbedingt notwendig? Ich habe schon öfter hier im Forum gelesen, dass > > man noch zusätzliche Pullup-Widerstäde einbauen muss, wenn man die I2C-Schnittstelle nutzt. > > Warum eigentlich? > > > > Hättest du Lust, mir deinen Quellcode mal zu schicken? > > > > Gruß > > Sebastian > > > > > > > > Hi, > > > > > > > > hat jemand schon mal die I2C-Schnittstelle des Boards verwendet und wäre bereit, mir > > > > (gegen Bezahlung) ein paar Tipps zu geben, wie man so etwas genau macht. Irgendwie stehe ich bei > > > > diesem Thema noch wie der Ochse vorm Berg, obwohl ich schon seit über zwei Wochen daran sitze. > > > > > > > > Ich möchte gerne mehrere Ultraschallsensoren zum Laufen bringen, die über eine I2C-Schnittstelle > > > > verfügen. > > > > > > > > hier mal das Datenblatt der Sensoren: > > > > > > > > <a href="http://www.robotikhardware.de/download/srf10doku.pdf" target="_blank">http://www.robotikhardware.de/download/srf10doku.pdf</a> > > > > > > > > Das Demoprogramm, das hier beiliegt, habe ich schon so weit übertragen. Aber im Moment klappt > > > > es noch nicht. Ich bin mir auch nicht sicher, ob ich den Sensor überhaupt richtig am Board > > > > angeschlossen habe. > > > > > > > > Da bräuchte ich schon mal den ersten Tipp. > > > > > > > > Wenn sich jemand bereit findet - Meine E-mailadresse habe ich oben angegeben. > > > > > > > > Sebastian > > > > > > > > > > > > > > > > > > > > > > Hallo Sebastian, > > > > > > wo genau hängt es den? > > > Ich hatte mal Probleme mit den Firmware Abfrage bei Sensor bereit für Messung. > > > Setz dafür mal ein AbsDelay(60) ein. > > > > > > Prüfe auch mal di e Pullup Widerstände nach. > > > > > > Ansonst müsste das ganze funktionieren, ich selber benutze meist die SRF02 Sensoren. > > > > > > Grüße Ulli > > > > > Hallo Sebastian, > > hier der Code zum SRF02 > > '---------------------------------------------------------------------------------- > '----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- > '---------------------------------------------------------------------------------- > 'Projektname: SRF02.cprj > 'Benötigte Libs´s: IntFunc_lib.cc > 'Routinen: SRF02.cbas > 'Autor: Ulli Sommer > 'Datum: 04.04.2008 > 'Funktion: SRF02 der Fa. Devantech auslesen (Ultraschall Sensor) > ' > ' > '---------------------------------------------------------------------------------- > > > Dim SRF02_Slaveid As Byte > Dim LSB As Byte > Dim MSB As Byte > Dim Entfernung As Word > Dim Ausgabe As Word > Dim Bezeichner(10) As Char > > > > Sub main() > > I2C_Init(I2C_100kHz) > SRF02_Slaveid = &HE0 > > Bezeichner = " cm" > > Do While True > > Ausgabe = SRF02_Entfernung(SRF02_Slaveid) > > Msg_WriteWord(Ausgabe) > Msg_WriteText(Bezeichner) > Msg_WriteChar(13) > 'AbsDelay(100) > > End While > > End Sub > > > Sub SRF02_Entfernung(Slaveid As Byte) As Integer > > Dim Lob As Byte > Dim Hib As Byte > Dim Firmware As Byte > Dim Temp As Byte > Dim Slaveid_read As Byte > Slaveid_read = Slaveid + 1 > > 'Messvorgang in starten > I2C_Start() > I2C_Write(Slaveid) > I2C_Write(0) > I2C_Write(81) > I2C_Stop() > > AbsDelay(250) 'Warte auf Messung > > I2C_Start() > I2C_Write(Slaveid) > I2C_Write(2) > I2C_Stop() > > I2C_Start() > I2C_Write(Slaveid_read) > MSB = I2C_Read_ACK() > LSB = I2C_Read_NACK() > I2C_Stop() > > Entfernung = Makeint(LSB , MSB) 'Bytes zusammenfassen > > Return Entfernung > > End Sub > > > 'Sub-Routine um High-Byte und Low-Byte zusammenzufügen > Sub Makeint(A As Byte , B As Byte) As Word > Dim tmp As Word > tmp = A 'High-Byte übernehmen > tmp << 7 'um 7 Bit nach links schieben > tmp = tmp + B 'Low-Byte hinzufügen > Return tmp > End Sub > > > Grüße Ulli