ich möchte von den Pins 30-41 eine 12Bit Binärzahl einlesen. Diese möchte ich anschließend in eine Dezimalzahl umwandeln und weiterverarbeiten.
Mit digitalRead() könnte ich die einzelnen Pins auslesen, aber wie setze ich diese 12 Werte zu einer Binärzahl zusammen?
Und wie kann ich diese Binärzahl wiederum in eine Dezimalzahl umwandeln? (Arduino Due)
Eleganter geht sowas wenn man die I/O Ports direkt anspricht und an einem Stück ausliest (statt Pin für Pin), aber ich weiß nicht wie das auf dem Due geht.
arduino13:
ich möchte von den Pins 30-41 eine 12Bit Binärzahl einlesen. Diese möchte ich anschließend in eine Dezimalzahl umwandeln und weiterverarbeiten.
Mit digitalRead() könnte ich die einzelnen Pins auslesen, aber wie setze ich diese 12 Werte zu einer Binärzahl zusammen?
Und wie kann ich diese Binärzahl wiederum in eine Dezimalzahl umwandeln? (Arduino Due)
Das dürfte auf einem DUE kaum anders funktionieren als auf einem anderen Arduino (mit ausreichender Pin-Anzahl):
int number=0;
for (int i=0;i<12;i++) bitWrite(number,i,digitalRead(i+30));
Serial.print("Zahl dez: ");Serial.println(number);
Serial.print("Zahl bin: ");Serial.println(number,BIN);
Übrigens: Eine Zahl ist eine Zahl ist eine Zahl.
Da gibt es nichts umzuwandeln an der "Zahl", sondern allenfalls bei der "menschenlesbaren Ausgabe" der Zahl wird dieselbe Zahl eben entweder in Dezimaldarstellung oder in Binärdarstellung auszugeben. Die Zahl, die ausgegeben wird, ist dabei dieselbe.