I2C Problem

Hallo Ich möchte von einem Arduino UNO 2 Karten mit ATmega16 ( als Slave Adresse 30 und 32 )
ansprechen. Die Karten antworten nicht, da der Pegel auf SCL und SDA sich komisch verhält.
Die Adresse liegt schon an, aber wenn ich mit dem Skope die Signale ansehe werden die Bits
zB. bei Adresse 32 nicht richtig auf Low gezogen. Mir scheint als wären die Pins A4 und A5 nicht als
Ausgänge konfiguriert.
#include <Wire.h> und Wire.begin(); // join i2c bus (address optional for master)
ist vorhanden. Vielleicht kann mir jemand einen Tip geben.
MfG John

Hast Du die Massen verbunden?

Ja Masse und Speisung von 5Volt liegen an den Slavekarten an.
Müsste nicht ein sauberes TTL Signal am Arduino anliegen, ohne dass
die Slave Karten angeschlossen sind ?

Müsste nicht ein sauberes TTL Signal am Arduino anliegen, ohne dass
die Slave Karten angeschlossen sind ?

Ja müßte.

Sorry alles ok mit der I2C Schnittstelle. Die Slaveboard's sind in Bascom
programiert und haben ein anderes I2C Protokol.
Mein Problem was ich jetzt noch habe ist folgendes:
ich lese einen Analogwert ein, teile Ihn durch 100 um den realen Wert zu
erhalten und will ihn zu einem String hinzufügen.

z.B 386 = 3.68

int akkuwert = analogRead(1);
float akkuwert2 = akkuwert / 100.0;
dataString = dataString + String(akkuwert2);
dataString = dataString + " ";

dabei erscheint folgende Fehlermeldung :

call of overloaded 'String(float&)' is ambiguous

Danke für Hilfe

call of overloaded 'String(float&)' is ambiguous

avr-gcc kennt wohl keine String(float&) Funktion, und weiss daher nicht, welche andere, evtl. String(int) , am besten geeignet ist.
float auf Arduino wird nicht richtig unterstützt, aber String auf Arduino ist noch viel schlechter :frowning:
( memory leak in einer mcu sollte ja eigentlich total tabu sein ).

Danke Michael dann muss ich mir andere Wege überlegen.
MfG John

Such mal nach den c Funktionen

dtostrf() oder dtostre()