Forum: Mikrocontroller und Digitale Elektronik Adresse vom DAC herausfinden


von Frank (Gast)


Lesenswert?

Hi,

ich habe meine DAC (MCP4725) von Adafruit an meinen Arduino Due 
(Anschluss SDA1 und SCL1) angeschlossen und versuche vergebens die 
Adresse von dem DAC herauszufinden. Wenn ich meinen DAC an SDA und SCL 
anschließe, weiß ich die Adresse(0x62), aber wie kann ich die an SCL1 
und SDA1 herausfinden?

I2C Scanner funktioniert leider nicht?

von HildeK (Gast)


Lesenswert?

Frank schrieb:
> aber wie kann ich die an SCL1
> und SDA1 herausfinden?

Meinst du die Adresse vom Master? Wozu brauchst du die?
Der Master adressiert seine Slaves und schreibt auf die oder liest von 
denen. Deren Adresse steht im Datenblatt. Der Master hat keine Adresse!

von Frank (Gast)


Lesenswert?

Ich muss ja irgendwie auf meinen DAC zugreifen, aber wenn ich die 
Adresse nicht kenne, kann ich es ja nicht machen.

von Alex (Gast)


Lesenswert?

Die I²C-Adresse des DAC bleibt gleich, den dem DAC ist es völlig egal an 
welchem I²C-Bus er hängt.
Du musst deiner Arduino-SW sagen über welchen Bus sie kommunizieren 
soll.

von Frank (Gast)


Lesenswert?

Alex schrieb:
> Die I²C-Adresse des DAC bleibt gleich, den dem DAC ist es völlig
> egal an
> welchem I²C-Bus er hängt.
> Du musst deiner Arduino-SW sagen über welchen Bus sie kommunizieren
> soll.

Achso und wie kann ich es ihm sagen?

von Chris K. (Gast)


Lesenswert?


von HildeK (Gast)


Lesenswert?

Frank schrieb:
> Achso und wie kann ich es ihm sagen?

Ich kenn die Libs vom Arduino nicht, aber da gibt es sicher was für I2c 
und in der Doku dazu steht, wie man die Adresse eines Slaves angibt. Die 
weißt du ja:

Frank schrieb:
> weiß ich die Adresse(0x62)

von Einer K. (Gast)


Lesenswert?

Die meisten Arduino Libs für I2C Bausteine nutzen die Wire Klasse.

Frank schrieb:
> (Anschluss SDA1 und SCL1)
Hier ist dann Wire1 das Objekt der Begierde.

Frank schrieb:
> Achso und wie kann ich es ihm sagen?
Nutze Wire1.

Evtl/meist muss der vorhandene Code/Lib umgeschrieben werden.

Dass es mehrere I2C Busse an einem µC geben kann, ist noch nicht 
flächendeckend in der Codebasis angekommen.

von Marcus (Gast)


Lesenswert?

Wenn Du auf dem Arduino das I2C Scanner Beispiel startest, muss der 
Baustein  gefunden werden, sonst stimmt was mit dem Anschluss nicht. 
Manchmal haben die Bausteine eine zusätzliche CS-Leitung, die man 
konfigurieren muss ( auch im Scanner ).

Außerdem unterscheidet sich die Herstelleradresse von der Lib-Adresse um 
den Faktor 2.

von Einer K. (Gast)


Lesenswert?

Marcus schrieb:
> Wenn Du auf dem Arduino das I2C Scanner Beispiel startest, muss der
> Baustein  gefunden werden, sonst stimmt was mit dem Anschluss nicht.

Wie gesagt:
Der Scanner wird wohl auf Wire1 umgeschrieben werden müssen.

von Couka R. (Gast)


Lesenswert?

Marcus schrieb:
> Wenn Du auf dem Arduino das I2C Scanner Beispiel startest, muss der
> Baustein  gefunden werden, sonst stimmt was mit dem Anschluss nicht.

Das I2C-Scanner Beispiel scannt afaik nur mit dem "Wire" Objekt. SDA1 
und SCL1 werden aber mit "Wire1" angesprochen.
Ergo: Das Scanner scannt den falschen Bus -> Umschreiben

Edit: ufuf war schneller ;)

von Frank (Gast)


Lesenswert?

Wo kann man denn wire1 herunterladen? Ich finde es irgenwie nirgends!

Der Scanner auf:
https://playground.arduino.cc/Main/I2cScanner

funktioniert leider nur beim UNO, 2009 und MEGA, deswegen geht es nicht.
Habe es nämlich auch beim SDA und SCL ausprobiert. Ich kann es nicht 
hochladen weil 1000 fehler kommen

von Frank (Gast)


Lesenswert?

Sorry habe gerade gesehen, dass ich wire gar nicht benutze, sondern:

#include <Adafruit_MCP4725.h>

Adafruit_MCP4725 dac;

.....
.....

 dac.setVoltage(ergebnis, false);

von Frank (Gast)


Lesenswert?

Ich fasse mein Problem noch mal zusammen:

Wenn ich meinen DAC(A0 lasse ich offen) mit meinen Due (SDA, SCL) 
verbinde, funktioniert alles ohne Probleme.

#include <Adafruit_MCP4725.h>

Adafruit_MCP4725 dac;

void setup(void) {
  Serial.begin(9600);
  dac.begin(0x62); //Wenn A0 am DAC offen bleibt, wenn ich A0 mit VDD 
verbinde, muss ich 0x63 verwenden

}

void loop(){

 ...........

 dac.setVoltage(ergebnis, false); //Ich bekomme den gewünschten Wert 
raus

}

Wenn ich nun anstatt SDA und SCL, SDA1 und SCL1 benutzen möchte, geht es 
nicht weil ich ja jetzt die Adresse nicht weiß. 0x62 bzw 0x63 
funktioniert dann nicht mehr

Aber es muss doch auch mit SDA1 und SCL1 funktionieren. Die Frage ist 
nur, wie?

von Einer K. (Gast)


Lesenswert?

Frank schrieb:
> Sorry habe gerade gesehen, dass ich wire gar nicht benutze, sondern:
>
> #include <Adafruit_MCP4725.h>

Der Adafruit Code nutzt Wire.
(versuchte ich das nicht schon zu sagen?)

von HildeK (Gast)


Lesenswert?

Frank schrieb:
> Wenn ich nun anstatt SDA und SCL, SDA1 und SCL1 benutzen möchte, geht es
> nicht weil ich ja jetzt die Adresse nicht weiß. 0x62 bzw 0x63
> funktioniert dann nicht mehr
>
> Aber es muss doch auch mit SDA1 und SCL1 funktionieren. Die Frage ist
> nur, wie?

Nochmal: das Softwaremodul aus der Arduinolib, welches du benutzt, 
spricht die falschen Ports am Prozessor des Arduinos an!
Das hat mit der DAC-Adresse nichts zu tun! Und mit A0 am DAC kannst du 
die Adresse, auf die er hört, umstellen - nicht aber die Prozessorports. 
So kann man einfachst am gleichen I2C-Bus zwei dieser DACs ansprechen.

von InFo (Gast)


Lesenswert?

Frank schrieb:
> Wenn ich nun anstatt SDA und SCL, SDA1 und SCL1 benutzen möchte, geht es
> nicht weil ich ja jetzt die Adresse nicht weiß.

Die Adresse von deinem ADC ist nur abhängig vom Pegel an A0. Es ist 
vollkommen egal, wo du den anschliesst. Werfe bitte auch einen Blick ins 
Datenblatt. Da stehen alle (möglichen) Adressen.
Bei Problemen bietet es sich evtl. an A0 auf einen deffinierten Pegel zu 
ziehen.

von Frank (Gast)


Lesenswert?

Achso, ok ich wusste nicht das die Adafruit Bibliothek, Wire nutzt.
Das kann man wahrscheinlich auch nicht ändern auf Wire1 ?

Wire1 kennt mein Arduino nicht. Wo kann man die Bibliothek 
herunterladen?

von InFo (Gast)


Lesenswert?

Vorraussetzung ist natürlich, dass du an der Schnittstelle nach dem 
Device suchst, an der es auch hängt.

von Einer K. (Gast)


Lesenswert?

Frank schrieb:
> Wire1 kennt mein Arduino nicht. Wo kann man die Bibliothek
> herunterladen?
Das glaube ich dir nicht!
Da muss nix runter geladen werden.


Dieser Code kompiliert sauber durch, für den DUE
1
#include <Wire.h>
2
void setup() 
3
{
4
  Wire.begin();
5
  Wire1.begin();
6
}
7
8
void loop() {}

von Peter D. (peda)


Lesenswert?

Unter C++ sollte sich doch die Lib für I2C_0 leicht nach I2C_1 portieren 
lassen.

von Einer K. (Gast)


Lesenswert?

Peter D. schrieb:
> Unter C++ sollte sich doch die Lib für I2C_0 leicht nach I2C_1
> portieren
> lassen.

Nicht "leicht", zumindest nicht, wenn man es richtig machen möchte.

Wenn man die Lib nicht kopieren möchte, ist eigentlich ein Umbau auf ein 
Klassen Template nötig. Da leider nicht alle "Wire" Implementierungen 
die gleiche Basisklasse nutzen. Ins Besondere TinyWire und die ESP Wire 
fallen da aus dem Rahmen.

von Frank (Gast)


Lesenswert?

Achso, ich bin so ne Pfeiffe.

#include <Wire.h> reicht ja


Ich wollt gar nicht wissen wie lange ich gebraucht habe den Code zu 
schrieben. Wenn ich es jetzt mit Wire1 den Code schreiben möchte, kann 
ich ja nicht mehr

dac.setVoltage(ergebnis, false);

benutzen.

Habs mit Wire1.write(ergebnis);

versucht. Geht leider nicht.

Jemand ein Tipp?

von Joachim B. (jar)


Lesenswert?

Frank schrieb:
> Jemand ein Tipp?

ja, schreib den Code neu oder gib einen Link zur adafuit LIB

schliesslich kannst du ja immer das *.cpp öffnen alle Vorkommnisse von 
wire & co auf wire1 ändern und als neue LIB 1 speichern.

von Frank (Gast)


Lesenswert?

Danke das war eine gute idee, Wire durch Wire1 zu setzen. Geht es auch 
beide Bibliotheken zu verwendet? Also einen für Wire und einen anderen 
für Wire1 Ich habe es versucht, allerdings ohne Erfolg. Mir wird unter 
Sketch - Bibliotheken einbinden - nur eine Bibliothek angezeigt

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> und als neue LIB 1 speichern.
Überlesen?

Leider kann ich dir nicht sagen, was du falsch machst, da ich von hier 
aus nicht auf deinen Monitor schauen kann.

Ist doch irgendwie logisch, oder?

von Frank (Gast)


Lesenswert?

Arduino F. schrieb:
> Joachim B. schrieb:
>> und als neue LIB 1 speichern.
> Überlesen?
>
> Leider kann ich dir nicht sagen, was du falsch machst, da ich von hier
> aus nicht auf deinen Monitor schauen kann.
>
> Ist doch irgendwie logisch, oder?

So dumm bin dann auch net. Hab natürlich alles geändert. Meine Frage 
war, ob es überhaupt möglich ist? Es gibt ja noch andere Dateien wie zum 
Beispiel library.properties die es vielleicht verhindern

von Einer K. (Gast)


Lesenswert?

Frank schrieb:
> Meine Frage
> war, ob es überhaupt möglich ist?

Gähn...
Ja sicher, sonst würde es ja nicht soooo viele verscheidene Libs in der 
Arduino Welt geben.

Frank schrieb:
> Es gibt ja noch andere Dateien wie zum
> Beispiel library.properties die es vielleicht verhindern

Keinen Texteditor zur Hand, um da mal eben rein zu schauen?



IDE mal neu gestartet?

von Frank (Gast)


Lesenswert?

Die Bib heißt Adafruit MCP4725. Irgendwo muss man doch den Namen ändern 
können. Ich ändere den Namen der Zip Datei, den Ordner der drinne ist, 
den Name der cpp & h Datei. Den gesamten Inhalt der cpp & h Datei und 
trotzdem wird der Bib. Name "Adafruit MCP4725" nicht verändert

von Frank (Gast)


Lesenswert?

Arduino F. schrieb:
> Frank schrieb:
>> Meine Frage
>> war, ob es überhaupt möglich ist?
>
> Gähn...
> Ja sicher, sonst würde es ja nicht soooo viele verscheidene Libs in der
> Arduino Welt geben.
>
> Frank schrieb:
>> Es gibt ja noch andere Dateien wie zum
>> Beispiel library.properties die es vielleicht verhindern
>
> Keinen Texteditor zur Hand, um da mal eben rein zu schauen?
>
> IDE mal neu gestartet?

Doch klar hab reingeschaut. Wenn ich was ändere, wird die Bib. nicht 
geladen

von Frank (Gast)


Lesenswert?

Ich habe es hingekriegt.

Danke für eure Hilfe!

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Frank schrieb:
> Wenn ich meinen DAC(A0 lasse ich offen) mit meinen Due (SDA, SCL)
> verbinde, funktioniert alles ohne Probleme.
A0 offen ergibt ein zufallsbedingtes Verhalten, der gehört definiert an 
GND oder VCC. Das habe ich vor ein paar Wochen in einem anderen Thread 
beschrieben, weil ich an der Stelle Ärger hatte.

InFo schrieb:
> Die Adresse von deinem ADC ist nur abhängig vom Pegel an A0. Es ist
> vollkommen egal, wo du den anschliesst. Werfe bitte auch einen Blick ins
> Datenblatt.
"Ein Blick ins Datenblatt" ist der einzig sinnvolle Teil Deiner Aussage!

"Nur abhängig vom Pegel an A0" ist Quark, hier würde ein Blick ins 
Datenblatt helfen: Es gibt Varianten des 4725 mit unterschiedlichen 
Basisadressen, A0 ändert diese lediglich um eins.

Als Bastler ist mir das egal, beim Schlitzauge kaufen, I2C-Scanner 
drüber und gut, sind eh nur Einzelstücke. Für eine Serie müsste ich 
gucken, welchen genauen Typ des 4725 ich bekomme.

von Frank (Gast)


Lesenswert?

Wie kommst du drauf, dass es Probleme gibt, wenn ich A0 offen lasse?

Auf der Seite wird das so beschrieben:

https://learn.adafruit.com/mcp4725-12-bit-dac-tutorial/wiring

Auf deinen Bild sehe ich einen anderen Hersteller.
Dieses ADDR finde ich auf meiner Platine gar nicht

von Dietrich L. (dietrichl)


Lesenswert?

Frank schrieb:
> Wie kommst du drauf, dass es Probleme gibt, wenn ich A0 offen lasse?

Wenn man den Chip MCP4725 alleine betrachtet, muss man A0 beschalten.

Auf den Adafruit-Board sind neben dem MCP4725 aber noch 3 Widerstände 
und ein Kondensator eingebaut. Dabei ist der Widerstand R3 (10kOhm) ein 
Ziehwiderstand an A0 nach GND.

Daher ist es richtig:
- beim MCP4725 darf man A0 nicht offen lassen
- beim MCP4725-Board von Adafruit darf man A0 offen lassen. Dann ist 
A0=0.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Frank schrieb:
> Ich habe es hingekriegt.
>
> Danke für eure Hilfe!

na also, warum nicht gleich so?

von Peter D. (peda)


Lesenswert?

Frank schrieb:
> Ich habe es hingekriegt.

Diese Antwort wird natürlich jedem, der auch das Problem hat, prima 
helfen.
Bloß nicht selber was zum Forum beitragen.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Peter D. schrieb:
> Frank schrieb:
>> Ich habe es hingekriegt.
>
> Diese Antwort wird natürlich jedem, der auch das Problem hat, prima
> helfen.
> Bloß nicht selber was zum Forum beitragen.

Ach...
Dass muss man hier nicht so Ernst nehmen.

Dieses finde ich viel interessanter:
Frank schrieb:
> Auf deinen Bild sehe ich einen anderen Hersteller.
> Dieses ADDR finde ich auf meiner Platine gar nicht

Aus meiner bescheidenen Betrachtungsweise, hat der TE mitzuteilen, 
welches Board verwendet wird.
Alles in allem, sind das Zeichen dafür, dass die Sozialisierungsphase 
noch nicht abgeschlossen ist, oder irgendwie in die Irre gelaufen ist.

Leider habe ich weder einen DUE, noch den DAC im Zugriff..

Hier also eine völlig ungeprüfte Variante.
Der Code stammt aus der Adafruit Lib, nur grob zurechtgestutzt, damit er 
in dieses Korsett passt.

Sechs DACs am Arduino DUE
2 davon stecken im µC selber
1
#include <Wire.h>
2
3
4
void setVoltage(TwoWire & wire, const uint8_t address, const uint16_t output, const bool writeEEPROM )
5
{
6
  const byte MCP4726_CMD_WRITEDAC        = 0x40;  // Writes data to the DAC
7
  const byte MCP4726_CMD_WRITEDACEEPROM  = 0x60;  // Writes data to the DAC and the EEPROM (persisting the assigned value after reset)
8
  wire.beginTransmission(address);
9
  wire.write(writeEEPROM?MCP4726_CMD_WRITEDACEEPROM:MCP4726_CMD_WRITEDAC);
10
  wire.write(output / 16);                   // Upper data bits          (D11.D10.D9.D8.D7.D6.D5.D4)
11
  wire.write((output % 16) << 4);            // Lower data bits          (D3.D2.D1.D0.x.x.x.x)
12
  wire.endTransmission();
13
}
14
15
void setup() 
16
{
17
  Wire.begin();
18
  Wire.setClock(400000UL);
19
  Wire1.begin();
20
  Wire1.setClock(400000UL);
21
  analogWriteResolution(12); // DUE DAC
22
}
23
24
25
void loop() 
26
{
27
  // Saegezahn auf 6 DACs
28
  static int i = 0;
29
  setVoltage(Wire,  0x62, i, false);  // MCP4726
30
  setVoltage(Wire,  0x63, i, false);  // MCP4726
31
  setVoltage(Wire1, 0x62, i, false);  // MCP4726
32
  setVoltage(Wire1, 0x63, i, false);  // MCP4726
33
  analogWrite(DAC0, i);        // DUE DAC
34
  analogWrite(DAC1, i);        // DUE DAC
35
  if( ++i > 4095) i = 0;
36
}

von Joachim B. (jar)


Lesenswert?

Arduino F. schrieb:
> Hier also eine völlig ungeprüfte Variante.
> Der Code stammt aus der Adafruit Lib, nur grob zurechtgestutzt, damit er
> in dieses Korsett passt.

ging es nicht um die Verwendung von wire1?

gehört nicht überall wire1 geschrieben?

Arduino F. schrieb:
> #include <Wire.h>
>
> void setVoltage(TwoWire & wire, const uint8_t address, const uint16_t
> output, const bool writeEEPROM )
> {
>   const byte MCP4726_CMD_WRITEDAC        = 0x40;  // Writes data to the
> DAC
>   const byte MCP4726_CMD_WRITEDACEEPROM  = 0x60;  // Writes data to the
> DAC and the EEPROM (persisting the assigned value after reset)
>   wire.beginTransmission(address);
>   wire.write(writeEEPROM?MCP4726_CMD_WRITEDACEEPROM:MCP4726_CMD_WRITEDAC);
>   wire.write(output / 16);                   // Upper data bits
> (D11.D10.D9.D8.D7.D6.D5.D4)
>   wire.write((output % 16) << 4);            // Lower data bits
> (D3.D2.D1.D0.x.x.x.x)
>   wire.endTransmission();
> }

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> ging es nicht um die Verwendung von wire1?
>
> gehört nicht überall wire1 geschrieben?

Arduino stellt Wire und Wire1 bereit, in der Funktion wird wire 
verwendet.
(beachte klein/groß Schreibung)


Das Wire, oder Wire1 Objekt wird der Funktion als Referenz/Parameter 
übergeben.
Der Programmierer kann also frei wählen welches Wire er verwenden 
möchte...

Das sollte so mit allen SAM und AVR Mega Arduinos funktionieren.

Mit Tinys allerdings immer noch nicht, da dort eine andere Basisklasse 
verwendet wird.

von Joachim B. (jar)


Lesenswert?

Arduino F. schrieb:
> Arduino stellt Wire und Wire1 bereit, in der Funktion wird wire
> verwendet.

das weiss ich doch,

der TO fragt wie er auf wire1 umstellt und du bringst ein Beispiel mit 
wire

DAS meinte ich, aber egal er hat es ja gelöst, also sinnlos hier weiter 
zu diskutieren

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> DAS meinte ich, aber egal ...
Nee, die kleine Denkhürde schaffst du!
Kneifen gilt nicht!
Habe vertrauen, lese im Schritttempo.


Joachim B. schrieb:
> der TO fragt wie er auf wire1 umstellt
Nein!
Der TO möchte Wire UND Wire1 verwenden.
Von wire oder wire1 war nie die Rede

Joachim B. schrieb:
>  und du bringst ein Beispiel mit wire
Ja!

Aber vielleicht ist das alles zu wirr für dich?
;-) ;-) ;-)

von Joachim B. (jar)


Lesenswert?

Arduino F. schrieb:
> Nein!
> Der TO möchte Wire und Wire1 verwenden.
> Von wire oder wire1 war nie die Rede

oh doch (wenn man den Wire & Wire1 nimmt)

Dein Beispiel ist für Wire1 nicht nutzbar mangels 1

Arduino F. schrieb:
> #include <Wire.h>
>
> void setVoltage(TwoWire & wire, const uint8_t address, const uint16_t
> output, const bool writeEEPROM )
> {
>   const byte MCP4726_CMD_WRITEDAC        = 0x40;  // Writes data to the
> DAC
>   const byte MCP4726_CMD_WRITEDACEEPROM  = 0x60;  // Writes data to the
> DAC and the EEPROM (persisting the assigned value after reset)
>   wire.beginTransmission(address);
>   wire.write(writeEEPROM?MCP4726_CMD_WRITEDACEEPROM:MCP4726_CMD_WRITEDAC);
>   wire.write(output / 16);                   // Upper data bits
> (D11.D10.D9.D8.D7.D6.D5.D4)
>   wire.write((output % 16) << 4);            // Lower data bits
> (D3.D2.D1.D0.x.x.x.x)
>   wire.endTransmission();
> }

:P

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> Dein Beispiel ist für Wire1 nicht nutzbar mangels 1
Da steckst du ganz tief in einem Irrtum.
Und dein, an dieser konkreten Stelle deplatziertes, Selbstvertrauen 
steht der Erkenntnis im Wege.


Auch wenn du nicht zwischen wire und Wire unterscheiden willst, der 
Kompiler tut das.
Der Kompiler gehorcht mir.

von Joachim B. (jar)


Lesenswert?

Arduino F. schrieb:
> Wie gesagt:
> Der Scanner wird wohl auf Wire1 umgeschrieben werden müssen.

Arduino F. schrieb:
> Der Kompiler gehorcht mir

aber nicht wenn du Wire1 ansprechen willst und nur Wire in deinem 
Beispiel schreibst :P

so wird das nix auch nicht als Arduino Fan

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> aber nicht wenn du Wire1 ansprechen willst und nur Wire in deinem
> Beispiel schreibst :P
Ich habe in meiner Funktion wire geschrieben, und nicht Wire.

Joachim B. schrieb:
> so wird das nix auch nicht als Arduino Fan
:-)
Achte drauf, das geht ganz fürchterlich nach hinten los.
Du wirst zu Kreuze kriechen, und mich um Verzeihung bitten.
Freiwillig.

Tipp:
Schaue dir den ersten Parameter der Funktion an.
Schaue ihn dir ganz genau an.
Einmal bitte bei der Funktionsdefinition, und auch da, wo sie aufgerufen 
wird.

Auf Fachchinesisch heißt das Verfahren "Dependency Injection", wenn ich 
mich nicht irre.

von Einer K. (Gast)


Lesenswert?

Nachtrag:

Ich versuchs mal noch klarer zu sagen....

Das ursprüngliche Problem war, dass die Adafruit Lib fest an Wire 
gekoppelt war/ist.

Diese feste Koppelung habe ich gelöst, in dem ich eine Referenz auf die 
konkret genutzte I2C Schnittstelle, in die Funktion injiziere.

Lose Koppelung, vs. starre Koppelung.

von Joachim B. (jar)


Lesenswert?

Arduino F. schrieb:
> Diese feste Koppelung habe ich gelöst,

ah OK
DAS ist mir entgangen, du trägst deinen stolzen Namen zu Recht, ich 
verneige mich, Hauptsache bleibt Arduino wird hier nicht verteufelt, ich 
mag die kleinen Biester echt.

von Einer K. (Gast)


Lesenswert?

;-)

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Arduino F. schrieb:
> setVoltage(Wire,  0x62, i, false);  // MCP4726
> setVoltage(Wire,  0x63, i, false);  // MCP4726
> setVoltage(Wire1, 0x62, i, false);  // MCP4726
> setVoltage(Wire1, 0x63, i, false);  // MCP4726

Tja, und jetzt noch den genauen Typ des Käfers - Anhang!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.