analog-pins A0-A7 einschl sind in Benutzung, darüber hinaus sind sie noch frei.
Alles was mit eigener Hardware-Entwicklung und -Programmierung zu tun hat, ist aber zu kompliziert, der TI Chip erledigt das ja alles intern, vom Port-Switching bis hin zum Level-Shifting.
Übrigens wird mir für ein paar sehr spezielle Sensoren, die nur mit 9.6k laufen, von vielen Seiten bitbang empfohlen - das wäre eine gute Alternative.
Ich bräuchte nur dafür eine fertige lib, die folgendes über entsprechende API Funktionen problemlos portieren kann (für 1 von den 8 Sensoren, Rest entsprechend):
Code:
// US sensor reading test
#include <Wire.h>
#define devaddr_US 0x02
byte US_readbytes[4];
void setup()
{
Wire.begin(); // join I2C bus
Serial.begin(9600); // start serial for output
}
void loop() {
byte bbuf, i;
Wire.beginTransmission(devaddr_US);
Wire.write(0x41); // send the ping command to write reg
Wire.write(0x01); // single shot mode
Wire.endTransmission();
delay(50); // give sensor time to do the ping
Wire.beginTransmission(devaddr_US);
Wire.write(0x42); // select read register
Wire.endTransmission();
Serial.println(" echo 0 1 2 3");
Wire.requestFrom(devaddr_US, 4); // request 4 bytes from slave device
while (Wire.available()) { // slave may send less than requested
bbuf= Wire.read(); // receive a byte
US_readbytes[i++] = bbuf; // store the byte
Serial.print(bbuf); // print the byte
Serial.print(" ");
}
Serial.println();
delay(50);
}
ceterum censeo: dass man hier nicht standardmäßig Code-Tags im Editor hat, finde ich reichlich doof, ehrlich gesagt.
Lesezeichen