SRF02 Library für Arduino 1.0

Der Compiler findet ein Wire.write() mit einem Parameter, den er als "int" identifiziert. Ich würde spontan mal auf die per "#define" definierten Werte tippen, die sind nämlich zunächst erstmal typenlos. Da es keine Funktion für int als Parameter gibt, meckert er rum ,weil es zwei mögliche Lösungen gibt die Wire.write(uint8_t) und die Print::write(const char*). Versuch mal die Werte auf einen Typ zu casten.
Also

int getRange(){                                   // This function gets a ranging from the SRF08
  ...
  Wire.write((uint8_t)cmdByte);                             // Send Command Byte
  ...
  Wire.write((uint8_t)0x51);                                // Send 0x51 to start a ranging
  ...
  Wire.write((uint8_t)rangeByte);                           // Call the register for start of ranging data
  ...
}

Damit sagst Du dem Compiler welchen Typ der Wert hat und er weiss, welche Funktion er nehmen muss.
Alternativ könntest Du auch Variablen vom Typ "uint8_t cmdByte= 0x00;" definieren. Anhand des Typs der Variablen weiss der Compiler dann auch was er nehmen muss. Allerdings "verbrennt" das dann auch wieder 3 Byte :slight_smile:

Mario.