moin allerseits, kennt sich jemand mit dem IO-I2C-Expander MC23017-Board aus ? krieg das Blink-Beispiel Nicht zum Funktionieren : es ist das mcp23xxx_blink.ino im Ordner Adafruit-MCP23017-Library-master/examples/mcp23xxx_blink Weiß nicht, ob ich die ino-Datei von Adafruit hier anhängen darf wg Copyright !? d.h. es gibt keine Fehlermeldung von der IDE, und auch ein Test mit cppcheckgui.exe ergab keine Fehlermeldung oder Warnung.. freue mich über jeden guten Tipp bzw Link..
Wolf F. schrieb: > freue mich über jeden guten Tipp bzw Link.. Schaltplan? DEIN Quellcode? Compiler-Ausgaben?? Sowas würde Leute freuen, die helfen wollen würden...
Wolf F. schrieb: > im Ordner Adafruit-MCP23017-Library-master/examples/mcp23xxx_blink Woher sollen wir wissen, was du auf deinem Rechner installiert hast ;-) Link zur Bibliothek? Hast du einmal einen I2C-Scanner laufen lassen, um zu gucken, ob das Board überhaupt ansprechbar ist und wenn "ja", auf welcher Adresse. Oder fehlen in deinem Aufbau vielleicht Pull-Ups oder andere elementare Dinge?
:
Bearbeitet durch User
Rahul D. schrieb: > Schaltplan? > DEIN Quellcode? > Compiler-Ausgaben?? Wolf F. schrieb: > kennt sich jemand mit dem IO-I2C-Expander MC23017-Board aus ? Welches Board? Ach daaaas .... ja dannnnnnnn .... glücklicher- weise gibt es ja nur das eine Board auf der Welt. Wie Rahul schon schrub fehlt eigentlich alles an Angaben um dir vernünftig helfen zu können.
darf ich denn hier Original-Sketche auflisten und Datasheets anhängen usw ? wg Copyright..
Wolf F. schrieb: > darf ich denn hier Original-Sketche auflisten Wie sollen wir das wissen wenn wir deine Sketche nicht kennen? Schaue in deinem Sketch-Archiv nach was über Copyright oder Copyleft geschrieben steht. Wolf F. schrieb: > und Datasheets ... sind im Allgemeinen sowieso öffentlich zugänglich, und der Hersteller hat ja ein Interesse dass über seine Produkte informiert wird und sie verstanden werden. Hier gleich eine Vorwarnung: Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang. Siehe unter: Wichtige Regeln - erst lesen, dann posten! Sonst werden wir gaaanz böse!
Wolf F. schrieb: > darf ich denn hier Original-Sketche auflisten und Datasheets > anhängen usw ? wg Copyright.. manchmal reicht es auch, Links zu den betreffenden Sachen zu posten.
Was misst du denn mit einem Multimeter am "blink" Pin? Den Code kann man verlinken oder die ino als Datei anhängen. Der Code ist für jeden zu googeln, aber das macht man nicht wenn nicht einmal das blink funktioniert. An welchem i2c master hängt das denn? Das ist eigentlich viel wichtiger.
Soo viele Boards von Adafruit mit MCP23017 gibt es auch wieder nicht: https://learn.adafruit.com/adafruit-mcp23017-i2c-gpio-expander/arduino https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/mcp23xxx_blink/mcp23xxx_blink.ino
Wolf F. schrieb: > darf ich denn hier Original-Sketche auflisten und Datasheets > anhängen usw ? wg Copyright.. Im Zweifelsfall kannst du ja darauf verweisen. Adafruit hat alles im Internet veröffentlicht. Du erinnerst dich: Das Internet ist der große globale Informations-Speicher, der von Verknüpfungen (Links) lebt.
Steve van de Grens schrieb: > Im Zweifelsfall kannst du ja darauf verweisen. Das wird heute (und an anderen Tagen) nix mehr. Die zögerlichen TOs wollen eben mit aller Gewalt sich jeden Popel einzeln aus der Nase ziehen lassen. Provozierte passive Salami-Taktik.
hi db1uk, das ist das ino-file vom github.. "i2c master" : hä ? hab hier nen nano zum testen, da gibts nur pin 4+5 meines wenigen wissens.. und i2c-scanner : hab ich mal gelesen, aber konnt ich nix mit anfangen ??? wegen presse-job und danach noch musikalischem auftritt kann ich erst morgen früh näheres posten..sorry ! 73 von ex dk4oc
Beitrag #7533810 wurde vom Autor gelöscht.
Christoph db1uq K. schrieb: > Soo viele Boards von Adafruit mit MCP23017 gibt es auch wieder nicht: Wer will den hier was von wem?
Wolf F. schrieb: > und i2c-scanner : hab ich mal gelesen, aber konnt ich nix mit anfangen > ??? Eigentlich ist die Funktion doch recht ausführlich beschrieben https://playground.arduino.cc/Main/I2cScanner/ In der Arduino IDE im Menü "Datei" unter Beispiele/Wire/i2c_scanner
:
Bearbeitet durch User
n'abend, noch schnell gemnacht : i2c-scanner .ino (Dankeeee!) gemacht und hier schon mal datasheet zu dem board angehängt.. gute nacht einstweilen
Wolf F. schrieb: > n'abend, > noch schnell gemnacht : i2c-scanner .ino Und - Ergebnis?
:
Bearbeitet durch User
hier der nur geringfuegig von Adafruit-examples geaenderte Code :
1 | // Blinks an LED attached to a MCP23XXX pin.
|
2 | #include <Wire.h> |
3 | // ok to include only the one needed
|
4 | // both included here to make things simple for example
|
5 | //#include <Adafruit_MCP23X08.h>
|
6 | #include <Adafruit_MCP23X17.h> |
7 | |
8 | #define LED_PIN 0 // MCP23XXX pin LED is attached to
|
9 | |
10 | // only used for SPI
|
11 | //#define CS_PIN 6
|
12 | |
13 | // uncomment appropriate line
|
14 | //Adafruit_MCP23X08 mcp;
|
15 | Adafruit_MCP23X17 mcp; |
16 | |
17 | void setup() { |
18 | Serial.begin(9600); |
19 | //while (!Serial);
|
20 | Serial.println("MCP23xxx Blink Test!"); |
21 | |
22 | // uncomment appropriate mcp.begin
|
23 | if (!mcp.begin_I2C()) { |
24 | //if (!mcp.begin_SPI(CS_PIN)) {
|
25 | Serial.println("Error."); |
26 | //while (1);
|
27 | }
|
28 | |
29 | // configure pin for output
|
30 | mcp.pinMode(LED_PIN, OUTPUT); |
31 | |
32 | //Serial.println("Looping...");
|
33 | Serial.println("Setup ready"); |
34 | }
|
35 | |
36 | void loop() { |
37 | mcp.digitalWrite(LED_PIN, HIGH); |
38 | delay(500); |
39 | mcp.digitalWrite(LED_PIN, LOW); |
40 | delay(500); |
41 | Serial.println("loopy"); |
42 | delay(1500); |
43 | }
|
lasse grad mal den i2c-scanner laufen : 08:25:42.550 -> 08:25:42.550 -> I2C Scanner 08:25:42.550 -> Scanning... er scannt noch immer ...
Wolf F. schrieb: > gute nacht einstweilen Wolf F. schrieb: > es gibt keine Fehlermeldung von der IDE Wir wissen immer noch nicht welche IDE du verwendest (da gibt es heutzutage eine Auswahl) und wie du alles verschaltet hast. Nicht umsonst fragte Rahul bereits ganz am Anfang Rahul D. schrieb: > Schaltplan? > DEIN Quellcode? > Compiler-Ausgaben?? nach diesen Angaben. Mit Schaltplan ist im Allgemeinen auch nach einem Aufbau (detailliertes Foto) gefragt bei dem viele Leute Fehler machen können. Natürlich sollte der Aufbau genau deinem verwendeten Schaltplan entsprechen. Bei Compiler-Ausgaben besteht oft das Problem dass Ausgaben von Warnings ausgeschaltet sind und darin oft noch Fehler- quellen vermutet werden können. Dann darf man aufgrund deiner dürftigen Amgaben durchaus mal fragen ob du den Code überhaupt erfolgreich hochgeladen hast. Edit: Letzteres hast du dann offensichtlich getan.
:
Bearbeitet durch User
Wolf F. schrieb: > er scannt noch immer ... Dann wirst du wohl etwas falsch verschaltet haben. Siehe mein Beitrag vorher. Schaltung und Aufbau.
ok,ich prüfe jetzt mal die Schaltung durch..evtl ein Wackler aufm Breadboard.. ausserdem muss ich wohl mal auf die "MC23017-Expansion-Board-Schematic" schauen..na dann..
Wolf F. schrieb: > ausserdem muss ich wohl mal auf die "MC23017-Expansion-Board-Schematic" > schauen..na dann.. Das Ding ist so elementar - da gibt es nicht viel zu schauen. Nochmal: Zeige deinen Aufbau und deinen Schaltplan. Besitzt du irgendwelche Messtechnik?
:
Bearbeitet durch User
so, hab die verdrahtung mal durchgeprüft : der i2c-scanner meldet jetzt eine adresse 0x27 der blink-sketch meldet nun "error" an der klink-buchse (oder wie heisst dat dingen ?) gibt diese pins : VCC GND SDA SCL INT A INT B die ersten 4 pins denke ich sind korrekt verbunden, sonst würde der i2c-scanner keine adresse finden ,ok ? was ist mit den INT.. -Anschlüssen ? die IO-Pins sind PA0..PA and PB1..PB7 Womit muß "pin 0" aus dem Sketch zur LED verbunden werden ? PA..? oder PB..?
nach LEsen der Readme.md hat sich das mit Pin-Benennung der IO-Pins erstmal geklärt;demnach muß die LED mit dem Pluspol via Vorwiderstand an GPA0 angeschlossen werden. Hier ist übrigens VCC = 5V .
Wolf F. schrieb: > hab die verdrahtung mal durchgeprüft : > > der i2c-scanner meldet jetzt eine adresse 0x27 Ach! Das alleinige Überprüfen der Verdrahtung hat den I2C- Scanner schon zum Funktionieren gebracht? Welch Zauberei! Du hast also vorher schon alles richtig verdrahtet, nur die Hardware hat sich magic geweigert korrekt zu arbeiten.
:
Bearbeitet durch User
Wolf F. schrieb: > ok,ich prüfe jetzt mal die Schaltung durch..evtl ein Wackler > aufm Breadboard.. bestimmt sind irgendwo CMOS-Eingänge offen. mfg
Wolf F. schrieb: > der i2c-scanner meldet jetzt eine adresse 0x27 > > der blink-sketch meldet nun "error" Nachforschungen auf https://stackoverflow.com/questions/36954218/how-to-use-multiple-mcp23017-chips-with-the-adafruit-mcp23017-h-library haben ergeben dass man der Software bzw. Lib sagen kann welche Adresse angesprochen werden kann. Das funktioniert (je nach Lib) auf zwei Arten: Probiers doch mal mit
1 | // fuer eine vom I2C Scanner gefundene Adresse 0x27
|
2 | mcp2.begin_I2C( 0x27 ); |
oder
1 | // Alternative fuer eine vom I2C Scanner gefundene Adresse 0x27
|
2 | mcp2.begin_I2C( 7 ); |
laut Readme.md ist 0x27 voreingestellt und braucht Nicht extra als Parameter angegeben werden.. ich habe Nicht geschrieben, daß es schon funktiert !? Da ich selten ungestört über mehr als ne Stunde daran arbeiten kann, ist halt auch das Posten unregelmäßig, sorry !
Wolf F. schrieb: > laut Readme.md ist 0x27 voreingestellt und braucht Nicht extra > als Parameter angegeben werden. Seltsam, in meiner Version des Lib-Archivs steht im Readme.md nichts davon drin. Dagegen finde ich in diesem Archiv die Datei <Adafruit_MCP23XXX.h> mit der Voreinstellung:
1 | #define MCP23XXX_ADDR 0x20 //!< Default I2C Address
|
Da du es aber hartnäckig unterlässt anzugeben welche Lib du wirklich verwendest lässt sich darüber trefflich und länglich streiten.
Wastl, ich blick nicht ganz , was Du da willst : im Ordner steht auch nur "Adafruit-MCP23017-Arduino-Library-master", darin u.a. .github als Ordner und sonst eben die Readme.md und noch n paar Dateien und Ordner, anbei Screenshot..
> adresse 0x27 Laut Datenblatt (oben gepostet) FIGURE 3-4 auf Seite 15 von 42 kann man die Adresse von 0x20 bis 0x27 wählen. Die Adresse wird an Pin 11 bis 13 (A0-A2) des QFN-Gehäuses fest verdrahtet. Achtung, die Anschlüsse der Platine A0-A2 haben damit nichts zu tun! Laut Schaltplan: https://cdn-learn.adafruit.com/assets/assets/000/109/792/original/adafruit_products_mcp23017schem.png?1647544296 ist die Adresse mit drei pull-down-Widerständen nach GND und drei Lötklecks-Jumpern (ADDR0 bis 2) nach plus wählbar. Was da gejumpert ist, ist nicht zu ersehen, sie sitzen auf der Unterseite. Wenn die drei Lötkleckse "bestückt" sind gilt die 0x27, ohne sie 0x20.
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > Was da gejumpert ist, ist nicht zu ersehen, sie sitzen auf der Unterseite. > Wenn die drei Lötkleckse "bestückt" sind gilt die 0x27, ohne sie 0x20. Das ist doch im Moment völlig egal. Da der I2C-Scanner den Chip auf 0x27 findet, wird er wohl dort sein. Wolf F. schrieb: > der i2c-scanner meldet jetzt eine adresse 0x27
:
Bearbeitet durch User
So ein Scanner findet auch bei fehlenden Pull-down-Widerständen und Jumpern irgendeine Adresse, aber es ist doch anzunehmen, dass 0x27 stimmt. Drunterschauen bringt Gewissheit. Jedenfalls scheint Wastls Library mit 0x20 nicht zuzutreffen.
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > So ein Scanner findet auch bei fehlenden Pull-down-Widerständen und > Jumpern irgendeine Adresse Siehst du irgendwo unbestückte Widerstände? > Drunterschauen bringt Gewissheit. Jedenfalls scheint Wastls > Library mit 0x20 nicht zuzutreffen. Das Drunterschauen bring nur etwas, wenn man den richtigen Schaltplan anguckt. Der von dir verlinkte zeigt Pull-Down Widerstände mit Lötjumpern nach VCC, der von Wolf hochgeladene zeigt Pull-Up Widerstände mit Lötjumpern nach Gnd. Falls letzterer stimmt, würde gelten: Wenn die drei Lötkleckse "bestückt" sind gilt die 0x20, ohne sie 0x27. Im hochgeladenen Manual steht auf S.4: "Default address of module is 0x27, you can also change its device address by welding A2, A0, A1. By default, A2, A1, A0 are all High without welded." RTFM Wolf F. schrieb: > Angehängte Dateien: Da könnte man eher mit einem Multimeter nach der Spannung gucken. Aber wozu, wenn der Baustein nachgewiesenermaßen auf 0x27 reagiert, so wie im Manual beschrieben.
:
Bearbeitet durch User
Was ist denn so schwierig mal das Programm mit Adresse 0x20, 0x27, und 0 und 7 auszuprobieren. Ist der Aufwand so gross dass man das nicht durchführen kann? Wastl schrieb: > Dagegen finde ich in diesem Archiv die > Datei <Adafruit_MCP23XXX.h> mit der Voreinstellung: > #define MCP23XXX_ADDR 0x20 //!< Default I2C Address
Wolf F. schrieb: > ich blick nicht ganz , was Du da willst : Du hast dein Adafruit-Archiv nicht hochgeladen, daher wissen wir nicht ob wir genau von der gleichen Version reden. So einfach ist das. Daher wissen wir auch nicht ob der Automatismus mit Adresse 0x27 zutrifft oder nicht. Ausserdem nochmal der Hinweis: Wastl schrieb: > Was ist denn so schwierig mal das Programm mit Adresse > 0x20, 0x27, und 0 und 7 auszuprobieren.
n'abend zusamma, anbei das von mir benutzte Board, bezogen von Fa. Eckstein GmbH Clausthal-Zellerfeld
obwohl wie eben erwähnt bei msp.begin() nichts eingetragen werden müßte, hab ich es doch gemacht msp.begin(0x27) und siehe da ES FUNKTIONIERT
moin, nun muss ich noch das LCD - Display in Gang bringen.. da es standardmäßig auch auf 0x27 daherkommt, ändere ich mcp-Aufruf auf mcp.begin(0x28)..müßte eigentlich klappen..
Wolf F. schrieb: > mcp-Aufruf auf mcp.begin(0x28)..müßte eigentlich klappen.. Wenn du die Adress-Jumper entsprechend setzt und das Board das unterstützt, dann ja. Laut Manual (findest du im Eckstein-Shop aus dem du es hast, ist wohl ein WaveShare-Board) sind aber nur 0x20 bis 0x27 möglich.
:
Bearbeitet durch User
Na endlich ein Foto. Eckstein hat zwei MCP23017-Boards, das von Adafruit und das von Waveshare: https://eckstein-shop.de/search/?qs=MCP23017 und der Schaltplan von Waveshare hat tatsächlich pull-up-Widerstände und Jumper nach GND: https://www.waveshare.com/w/upload/5/54/MCP23017-IO-Expansion-Board-Schematic.pdf Bei Eckstein finde ich aber den Demo-Code von Waveshare nicht. Aber direkt von Waveshare, hier unter Resources/Code: https://www.waveshare.com/wiki/MCP23017_IO_Expansion_Board https://www.waveshare.com/wiki/File:MCP23017-IO-Expansion-Board-Demo-Code.7z 3,85 MByte gezippt, ein .cpp, ein .h und drei Beispiele zu input, output und interrupt. Gut versteckt Ein Adresskonflikt mit dem Display würde auch Probleme erklären.
:
Bearbeitet durch User
Julian L. schrieb: > Wolf F. schrieb: >> mcp-Aufruf auf mcp.begin(0x28)..müßte eigentlich klappen.. > > Wenn du die Adress-Jumper entsprechend setzt und das Board das > unterstützt, dann ja. Nein, 0x28 kann nie funktionieren. Das liegt nicht am Board, sondern am MC23017. Nur die unteren drei Bits der Adresse können konfiguriert werden, also 0x20 bis 0x27 (Datenblatt Kap. 3.3.1).
:
Bearbeitet durch User
Mal angenommen, das Display ist auch von Eckstein gekauft, z.B. https://eckstein-shop.de/Character16x2LCDDisplayModule1602WhiteonBlue5VI2CInterfaceHD44780 das benutzt einen PCF8574 https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf und der hat seine Adressen ebenfalls einstellbar auf 0x20 bis 0x27 (Seite 5 Table 4), würde also hinkommen. Wenn die beide auf 0x27 eingestellt sind und am I2C angeschlossen, findet der Scanner nichts, weil beide auf die Anfrage gleichzeitig reagieren. Die Adresse am Display ist mit drei pull-up Widerständen fest auf 0x27 verdrahtet (-> Dokument: Development Resources -> CO02013 neu.zip -> Schematic.PDF) also muss die am MC23017-Board umgestellt werden auf eine der übrigen, 0x20...0x26.
Christoph db1uq K. schrieb: > Wenn die beide auf 0x27 eingestellt sind und am I2C angeschlossen, > findet der Scanner nichts, weil beide auf die Anfrage gleichzeitig > reagieren. Unsinn - von beiden kommt gleichzeitig ein Ack. Da kommt sich nichts in die Quere. Folglich sieht der Scanner auch, dass jemand unter der Adresse ansprechbar ist.
hi christoph, danke für den tipp mit dem display..da brauche ich also garnicht erst suchen..muß mir das mit dem mcp noch genauer anschauen mit dem umstellen..
Christoph db1uq K. schrieb: > Wenn die beide auf 0x27 > eingestellt sind und am I2C angeschlossen, findet der Scanner nichts, > weil beide auf die Anfrage gleichzeitig reagieren. Nein. Der Scanner findet "etwas" auf dieser Adresse, weil mindestens einer (in diesem Fall beide) die SDA Leitung zum Bestätigen auf LOW zieht. Genau das ist das Signal, dass da "jemand" auf dieser Adresse ansprechbar ist. Sinnvoll benutzen kann es wegen dem Konflikt aber nicht.
ok, die beiden sind jedenfalls nicht benutzbar. Ich habe einen I2C-Scanner zwar mal benutzt, weiß aber nicht mehr, wie er genau abfragt. https://playground.arduino.cc/Main/I2cScanner/ "The i2c_scanner uses the return value of the Write.endTransmission to see if a device did acknowledge to the address." (Schreibfehler - sollte das wire.end heissen?) https://www.arduino.cc/reference/en/language/functions/communication/wire/endtransmission/ hmm
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > sollte das wire.end heissen? Es heißt wire.endTransmission(), und das ist richtig so, weil die Funktion den Wert des ACK/NACK Bits zurück liefert:
1 | Returns |
2 | 0: success. |
3 | 1: data too long to fit in transmit buffer. |
4 | 2: received NACK on transmit of address. |
5 | 3: received NACK on transmit of data. |
6 | 4: other error. |
7 | 5: timeout |
Also ein Schreibfehler im Kommentar. Mein Scanner war auf dem Raspi, vermutlich "i2cdetect" https://learn.adafruit.com/scanning-i2c-addresses/raspberry-pi das ist etwas komfortabler. Gibt es auch für den Arduino: https://github.com/mcauser/i2cdetect "An address in hexadecimal, e.g. "1e", when a chip was found at the address" also etwas mehr als ein detektiertes ACK. Welche Adresse ist das genau?
Christoph db1uq K. schrieb: > "An address in hexadecimal, e.g. "1e", when a chip was found at the > address" also etwas mehr als ein detektiertes ACK. Verstehe ich nicht. Der I²C Scanner von Arduino zeigt doch auch an, welche Adressen er scannt und wo er etwas gefunden hat. > Welche Adresse ist das genau? Die Adresse des I²C Slaves. Vielleicht magst du dir mal anschauen, wie der I²C Bus funktioniert. http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf Kapitel 5.9
Oh ich dachte, die Hexzahl sagt mehr aus, ja klar. Da kann nicht anderes stehen, als schon aus den Skalen hervorgeht: i2cdetect example Scanning address range 0x03-0x77 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- Ich dachte, da wird genauer ermittelt, was dran hängt. Die Linuxreferenz warnt vor dem Scanner, der kann manche I2C-Bauteile verwirren: https://linux.die.net/man/8/i2cdetect
:
Bearbeitet durch User
Der I²C Scanner funktioniert, wie die Anwesenheitskontrolle im Klassenzimmer. Der Lehrer ruft nacheinander alle Namen auf. Wenn jemand "hier" antwortet, hakt er den Namen ab. Genau das gleiche macht der I²C Scanner, nur mit Adressen statt Namen. Er scannt alle möglichen (ca. 100) Adressen ab. I²C Kommunikation läuft nach diesem Muster ab: Lehrer: Achtung (START) Lehrer: Pascal (Adresse senden) Pascal: Jawohl (ACK) Lehrer: Mach das Licht aus (Byte senden) Pascal: Jawohl (ACK) Lehrer: Gut, setz dich wieder (STOP) Oder beim lesen: Lehrer: Achtung (START) Lehrer: Maria (Adresse senden) Maria: Jawohl (ACK) Lehrer: Wie spät ist es? (Byte senden) Maria: Verstanden (ACK) Maria: Es ist 14 Uhr (Byte empfangen) Lehrer: Weiter Maria: und 55 Minuten (Byte empfangen) Lehrer: Weiter Maria: und 27 Sekunden (Byte empfangen) Lehrer: Das reicht (NACK) Lehrer: Gut, setz dich wieder (STOP)
wenn ich mir das mit A0,A1,A2 so anschaue..von Waveshare wurde ja wenigstens das Schema abgedruckt - ein Beispiel wäre evtl auch nett gewesen - , so graut mir nur noch vor dem Lötvorgang, also Überbrücken der jeweils 2 Lötpunkte..bin nicht mehr der Jüngste und smd-Löten ist nicht mein Ding.. was für ne Adresse wird gültig , wenn ich A0 überbrücke ? (steckbare Jumper wären da auch netter gewesen !) bevor ich da was für immer versaue..es soll außer dem Display auch noch ein ein PCA 9685 mit an den I2C-Bus, also insgesamt 3 Boards, muß ich genau wissen, wo der mcp liegt .. also try and fly : A0 brücken und mit dem scanner sehen , wo's landet :-))
Wolf F. schrieb: > so graut mir nur noch vor dem Lötvorgang, also Überbrücken der jeweils 2 > Lötpunkte..bin nicht mehr der Jüngste und smd-Löten ist nicht mein > Ding.. Es ist doch nur ein Tropfen Zinn auf zwei dicht benachbarten Lötflächen. Mit Entlötlitze oder eine Entlötpumpe kannst du es wieder entfernen. Wolf F. schrieb: > was für ne Adresse wird gültig , wenn ich A0 überbrücke ? Vielleicht habe ich was verpasst, aber mir ist immer noch nicht klar, welches Modul du nun genau hast. Wenn die Adresse ohne Brücken 0x20 ist, dann ist sie mit Brücke auf A0 0x21. Wenn die Adresse ohne Brücke 0x27 ist, dann ist sie mit Brücke auf A0 0x26.
> PCA 9685 https://www.nxp.com/products/power-management/lighting-driver-and-controller-ics/led-controllers/16-channel-12-bit-pwm-fm-plus-ic-bus-led-controller:PCA9685 Da sind 6 Adresseingänge, wenn die auf der Platine alle einstellbar sind, sollte das kein Problem sein. Ein Modul von Adafruit: https://learn.adafruit.com/assets/36269 > welches Modul du nun genau hast Er hat das Waveshare-Modul, benutzt aber die Adafruit-Library, daher auch die Verwirrung um die Adresse. https://www.waveshare.com/w/upload/6/69/MCP23018_FAQ.jpg drei SMD-Lötpads für Null-Ohm-Widerstände in 0805 oder 0603? Jedenfalls mit einer spitzen Pinzette und drei Drahtstückchen machbar.
:
Bearbeitet durch User
mcp von eckstein: 1 Pack WS15391 MCP23017 IO Expansion Board, Expands 16 I/O den PCA 9685 hatte ich auf 0x40 bzw den zweiten auf 0x41 angesprochen, also von daher kein Konflikt mit dem LCD und nun auch nicht mit dem mcp... ok, die Löterei mache ich spätabends kurz vor dem Schlafengehen, da sind meine Hände am ruhigsten :-)) nur net hudele..Ergebnis erst morgen mittag wg Job, sorry
:
Bearbeitet durch User
Es geht ja bei mir um zwei kleine Moodellbahnen mit nur jeweils 3 Loks usw. Eure Meinung zu I2C (mit Arduino) generell : das ist wohl mehr für kleinere RPojekte, oder ? sollte man für größere Projekte (z.B. "Wunderland") CAN-Bus verwenden ? märklin hat ja was realisiert.. ist aber auch anspruchsvoller auch fürn Geldbeutel...
http://www.skrauss.de/modellbahn/canbus.html Scheint mir etwas übertrieben. https://www.miniatur-wunderland.de/ Miniatur Wunderland, die größte Modelleisenbahn der Welt in Hamburg! ja dafür... Meine Märklin Spur Null ist Vorkriegsware, ganz ohne Computer. Liegt aber seit Jahrzehnten im Keller. Gleich neben dem Metallbaukasten, der ist aus den frühen 60ern.
:
Bearbeitet durch User
hi christoph, der genannte Artikel ist aus 2015.. nachdem es heute shields usw für Arduino u SPI gibt, scheint sich da was zu tun.. Deine Spur 0 kann heute als Sammlerware viel wert sein : evtl bei "Bares uznd Rares" anbieten und natürlich inden Foren.. warum im Keller verstauben (und verrosten ?) lasse ..
Christoph db1uq K. schrieb: > das benutzt einen PCF8574 > https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf > und der hat seine Adressen ebenfalls einstellbar auf 0x20 bis 0x27 > (Seite 5 Table 4), würde also hinkommen... Obacht, bei Chinaware kann es auch gut mal sein, das da eben mal PCF8574A bestückt werden und der Laie verzeifelt schier daran, das der Typ mit dem Suffix A einen anderen Adressaum hat.
Das ist ja fies, ich hatte schon das "A" bemerkt, mich aber nicht für den Unterschied interessiert. > "Bares und Rares" da bekäm ich bestimmt von Horst und Sven dat Händlerkärchtschen. Für die Waggons habe ich eine Vitrine "angefangen", eines meiner unvollendeten Projekte. Bilderrahmen 70*100cm nach hinten verlängert und mit dünnen Regalbrettern unterteilt (nachdem ich die professionellen Preise für sowas gesehen hatte, gibts alles auch zu kaufen). Für Spur Null gab es eine Website, alle Teile mit Foto, Beschreibung und Preisen, Adresse hab ich verloren. Hier eine ähnliche: http://www.alte-spur-0.de/start
Christoph db1uq K. schrieb: > Da sind 6 Adresseingänge, wenn die auf der Platine alle einstellbar > sind, sollte das kein Problem sein. Hör doch endlich mal auf, Nebelkerzen zu schmeißen. Beim PCA9685 liegt das oberste Adressbit fest auf 1, bei dem MC23017 fest auf 0. Egal, wie man die freien Adressbits konfiguriert, kann also überhaupt keine Überschneidung entstehen.
Vielleicht verrät uns Wolf demnächst noch, was sonst noch für sein Wunderland geplant ist, und welche Adressen da noch gebraucht werden. Aber ok, bisher gab es nur die eine Überschneidung. Man merkt halt, dass Philips den I2C-Bus damals nur für TV-Geräte erfunden hatte, um Kanal, Helligkeit und Lautstärke einzustellen. Dann wurde es immer mehr.
n'abend allerseits, hab jetzt beim mcp23017 A0 "gebrückt" : mit I2C-Scanner meldet er 0x26 und 0x27, letzteres wohl vom angeschlossenen LCD-Display.. wenn ich es abmache ,kommt nur noch 0x26..ist mir klar.. und der Blinktest funzt wieder.. LCD wieder angeschlossen.. aber LCD meldet Staus 253, also irgendwas nicht ok..??? schau mer mal..
Wolf F. schrieb: > vom angeschlossenen LCD-Display.. Ein LCD-Display ist ein Display das ein LCD anzeigt. Wolf F. schrieb: > und der Blinktest funzt wieder. Ich sag's ja immer wieder: Wastl schrieb: > Unfassbar! Wunder der Technik! Wolf F. schrieb: > aber LCD meldet Staus 253, also irgendwas nicht ok..??? Was sagt die Bedienungsanleitung dazu?
soo..habe geschaut und gesehen, daß ich gestern testweise 0x28 fürs LCD-Display eingegeben hatte.. nun mit 0x27 ist die Fehlermeldung weg und Blinktest funzt.. aber es kommt noch keine Meldung aufm Display..??
"Bedienungsanleitung" zum LCD-Display hab ich net.. bei forum.arduino.cc auch nix brauchbares gefunden.. Aufruf geändert..error weg..aber KEIN Text sichtbar mit Code, den ich schon x-mal in anderen Sketchen benutzt habe.. langsam nervt mich der mcp.. hab hier noch PCA 9548 liegen, ist sowas ähnliches wie der mcp.. hab ich damit mehr Glück ?
Wolf F. schrieb: > hab hier noch PCA 9548 liegen, ist sowas ähnliches wie der mcp.. > hab ich damit mehr Glück ? Unwahrscheinlich, solange die Problemursache unbekannt ist.
Wolf F. schrieb: > langsam nervt mich der mcp Das Problem sitzt vor deinem Bildschirm und der Tastatur. Wolf F. schrieb: > langsam nervt mich der mcp.. > > hab hier noch PCA 9548 liegen, ist sowas ähnliches wie der mcp.. > hab ich damit mehr Glück ? Langsam kommt es mir so vor als ob du dich absichtlich dumm anstellst um hier herumzutrollen. Auf Nachfragen von Leuten die dir helfen wollen kommt von dir wenig bis keine Reaktion.
Wolf F. schrieb: > Bedienungsanleitung" zum LCD-Display hab ich net.. > bei forum.arduino.cc auch nix brauchbares gefunden.. Warum kaufst du das dann? Man vergewissert sich vorher, dass alle nötigen Unterlagen vom Händler oder Hersteller bereit gestellt werden. Und ja, das ist bei 90% aller Asia Händler ein K.O. Kriterium. So wie deine Frau keine Dessous bei Conrad Elektronik kauft, so solltest du keine Elektronik bei Dessous-Händlern kaufen.
Du musst doch nur die i2c adressen einstellen und im Programm bei begin. auf diese verweisen. (nebenher: ich lese schon n paar Tage still mit. irgendwann ists aber mal gut) Wir brauchen uns nicht wundern, wenn alle hier fluchtartig die Plattform verlassen oder sich zurückziehen.
Alle auf I2C basierenden Character-LCDs mit 1 bis 4 Zeilen für die Arduino-Welt haben praktisch die gleiche Hardware. Hier eine Beispiel-Anleitung. http://www.handsontec.com/dataspecs/module/I2C_1602_LCD.pdf So etwas kann man auch selbständig suchen und muss nicht in einem Forum um Hilfe bitten. Wer es damit nicht schafft sollte sich ein anderes Hobby suchen. Kegeln, Stricken, Angeln, Häkeln ..... Ausgenommen natürlich Trolle.
Wastl schrieb: > Alle auf I2C basierenden Character-LCDs mit 1 bis 4 Zeilen für > die Arduino-Welt haben praktisch die gleiche Hardware. Das habe ich anders in Erinnerung nämlich so: Beitrag "Re: Schaltplan für i2c Schnittstelle für LCD-Modul"
moin, ich weiß nicht, warum manche sich mit abstrakteren, prinzipiellen Fragestellungen so schwer tun..und was der Ausdruck "herumtrollen" bedeuten soll, ist mir auch unklar ! Wenn ich z.B. einen Schaltplan zeichnen will, muß mir für jede Verbindung klar sein, wozu sie dient. Wenn ich das Nicht weiß, macht das Zeichnen KEINEN SINN ! Man muß erstmal verstehen, was man den Modulen bzw Boards machen kann und soll und was nicht ! Noch habe ich Nicht den großen Überblick, zumal laufend Neues hginzukommt ! Ich weiß nicht, warum in deutschsprachigen Foren oft gleich der große Finger kommt (Zeige..), warum gleich auf dem Fragesteller herumgehackt wird..in den anders-sprachigen Foren kommt das zumindest nicht so oft - wenn überhaupt vor ! Da gibt es noch Toleranz und Respekt ! Schade hier ! und tschüss..
:
Bearbeitet durch User
Angenommen, es sei das I2C-LCD von Eckstein. Hier die Pläne des Moduls, aus den gezippten "Development Resources" entnommen. Ein normales 2*16-stelliges Textdisplay mit 1602-Controller und einem PCF8574 als I2C-Interface. Aber Wolf will uns die genaue Bezeichnung nicht nennen, Schade!
Christoph db1uq K. schrieb: > Aber Wolf will uns die genaue Bezeichnung nicht nennen, Schade! Ja, denn es handelt sich ja um einen Troll der nur Internet- Traffic erzeugen will.
hi , also, daß sich ein Forenbetreiber über zuviel Traffic - also zuviel Beiträge - beschwert, lese ich zum erstenmal ! Ok, werde mir mal die Arbeit machen , alle verwendeten Boards usw zu dokumentieren : - Nummern und Bezeichnungen - Quelle, Beschaffungstermin - Foto kann ein paar Tage dauern,sorry, aber ich schaffen das !
Wolf F. schrieb: > hi , > also, daß sich ein Forenbetreiber über zuviel Traffic - also zuviel > Beiträge - beschwert, lese ich zum erstenmal ! Es geht nicht darum, dass sich der Forehnbetreiber adrüber beschwert, sonderen u.a. darum, dass man Bilder auch komprimieren kann, und sie trotzdem noch aussagekräftig sind. Datenblätter kann man i.d.R. auch verlinken, und muss sie nicht auch noch in Beiträgen hochladen. Dafür gibt es hiner auf der Seite sogar eine Funktion. > Ok, werde mir mal die Arbeit machen , alle verwendeten Boards usw > zu dokumentieren : > - Nummern und Bezeichnungen > - Quelle, Beschaffungstermin > - Foto Dinge, die niemanden interessieren... Wichtig sind dein Schaltplan (und nicht nur Kästchen, die den Namen der Boards enthalten). Schaltpläne sind nun mal ein Kommunikationshilfsmittel für E-Techniker, wie Maßbilder für Mechaniker und Quellcode für Informatiker (Mechatoniker solten mit allen umgehen können ;) )
das mit den Schaltplänen : das Innenleben der auf den Boards verlöteten Chips interessiert wohl eher kaum jemand, ist evtl aufm Datasheet, und aussen herum ? tja, außer evtl Pullup-Widerständen, LED's und Abblock-Kondensatoren sind da nur viele,viele Linien das ist doch lange nicht mehr so wie z.B. bei einem Radioschaltplan (Widerstände, Kondensatoren,Röhren und Transistoren,Spulen,Quarze usw) aber ok,mach ich auch noch ..
mit den Links : ok, mach ich auch noch, weiss jetzt noch nicht, wie das hier geht bin mir aber nicht immer sicher, ob es diejenigen sind , auf die ich mich ggf mal bezogen habe.. da die Modellbahn im Vordergrund stand, hab ich -leider - nix dokumentiert, sondern ,wenns fertig war, gefreut Schande über mich
Wolf F. schrieb: > das Innenleben der auf den Boards verlöteten Chips interessiert wohl > eher kaum jemand Stimmt, aber es interessiert, wie der Portexpander mit dem Display verbunden ist. Denn da gibt es mehrere Varianten im Handel, die zueinander inkompatibel sind.
auweh > es interessiert, wie der Portexpander mit dem Display > verbunden ist. Denn da gibt es mehrere Varianten Hier die acht Ports P0 bis P7 sind mit dem LCD verbunden. Vier Datenbits, RS = Register select, RW = read/write, CS = chip select und P3 schaltet die Hintergrundbeleuchtung ein. Ob die anders verbunden sind, weiß die Software nicht.
nur noch zum lcd-display hd4470 : hatte das bei AZ-Delivery erworben mit der "Huckepack-Platine" und einstellbarer I2C-Adresse; jetzt erscheinen auf deren Webseite 2 davon, kann aber nicht erkennen, worin die sich unterscheiden außer beim preis, und so weiß ich nicht, welche mein Exemplar ist.
Wolf F. schrieb: > moin allerseits, > > kennt sich jemand mit dem IO-I2C-Expander MC23017-Board aus ? > > krieg das Blink-Beispiel Nicht zum Funktionieren : es ist das > mcp23xxx_blink.ino > im Ordner Adafruit-MCP23017-Library-master/examples/mcp23xxx_blink > > Weiß nicht, ob ich die ino-Datei von Adafruit hier anhängen darf wg > Copyright !? > > d.h. es gibt keine Fehlermeldung von der IDE, und auch ein Test mit > cppcheckgui.exe ergab keine Fehlermeldung oder Warnung.. > > freue mich über jeden guten Tipp bzw Link.. So geht das halt wenn man Elektronik mit Lego verwechselt.
Cyblord : ja, auch so kann man Traffic erzeugen. schreibe jetzt hier nix mehr ! Außer dem Tipp mit dem I2C-Scanner NIX, nur zusätzlich nicht anerkannte Arbeit...
Wolf F. schrieb: > Außer dem Tipp mit dem I2C-Scanner NIX, nur zusätzlich nicht > anerkannte Arbeit... Stecke deine Energie in das Verstehen der Dinge mit denen du arbeitest. Weißt du wie I2C funktioniert? Schon mal ins Datenblatt deines Expanders geschaut? VERSTEHEN. Dann Fehlersuche.
:
Bearbeitet durch User
Wolf F. schrieb: > jetzt erscheinen auf deren Webseite 2 davon, Ich sehe im Online Shop von AZ Delivery mehr als zwei. Ich kann nicht für dich raten, was du gekauft hast.
Welches "lcd-display hd4470" ist es hier: https://www.az-delivery.de/pages/search-results-page?q=i2c%20display&page=1&rb_product_type=Displays ich nehme an, das sollte HD44780 heißen, der "Standard" für Textanzeigen. Die Suchfunktion von az ist grauslich, da kommt alles mögliche unsinnige. Grafikanzeigen und ohne I2C-Bus, alles durcheinander. Ist die I2C-Schnittstelle schon auf der Displayplatine enthalten, oder ist das ein "Bundle" mit einer zweiten Platine? Hat es 2*16 Zeichen oder mehr?
moin, nachdem der mcp23017 durch einen kleinen unfall unwiderbringlich kaputt ist und ich diesen Nicht ersetzen werde, hat sich dieser Thread wohl erledigt. Zum Display : hat bei AZ-delivery die Artikelnummer 14-7 . Läuft hier im Solo-Betrieb einwandfrei;das es zusammen mit dem mcp.. Probleme gab, lag wohl mehr am mcp, vermute ich. Vielleicht war das auch "Montagsware" ? Liebäugele momentan mit dem Analog-Multiplexer 74hc4037, gibts aber erst Anfang Dezember.. Einstweilen Gute Zeit !
Wolf F. schrieb: > das es zusammen mit dem mcp.. > Probleme gab, lag wohl mehr am mcp, vermute ich. Mit Sicherheit nicht. > Vielleicht war das auch "Montagsware" ? Sehr unwahrscheinlich. Der MCP23017 ist ein einfaches IC dass sich seit mehr als 10 Jahren bewährt hat.
Bei az-delivery finde ich keine Artikelnummer "14-7" Die haben anscheinend nur ein I2C-Interface namens FC-113: https://www.az-delivery.de/products/serielle-schnittstelle leider ohne Schaltplan, welcher Port an welchen Pin des LCD führt. Bei der Bestellung darf man noch ein "Deutsches eBook mit Einrichtungsanleitung" kostenlos mitbestellen, ein Download ist nicht möglich. Im "Datenblatt"-PDF ist immerhin ein Arduino-Beispielcode abgedruckt, leider nicht kopierbar.
1 | //Arduino Code
|
2 | #include <Wire.h> |
3 | #include <LiquidCrystal_I2C.h> |
4 | |
5 | LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); // Initialize LCD Display at address 0x27 |
6 | // unmodified backpack
|
7 | |
8 | void setup() { |
9 | // activate LCD module
|
10 | lcd.begin (16,2); // for 16x 2 LCD module |
11 | lcd.setBacklightPin(3,POSITIVE); |
12 | lcd.setBacklight(HIGH); |
13 | }
|
14 | |
15 | void loop() { |
16 | lcd.home (); // set cursor to 0,0 |
17 | lcd.print(" Hello, world!"); |
18 | lcd.setCursor (0,1); // go to start of 2nd line |
19 | lcd.print(millis()); |
20 | delay(1000); |
21 | lcd.setBacklight(LOW); // Backlight off |
22 | delay(500); |
23 | lcd.setBacklight(HIGH); // Backlight on |
24 | |
25 | delay(1000); |
26 | } // END |
ich nehme an, "LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE)" beschreibt die Reihenfolge der Ports. https://arduino.stackexchange.com/questions/62317/what-do-the-numbers-behind-lcd-0x27-mean
1 | LiquidCrystal_I2C( |
2 | uint8_t lcd_Addr, |
3 | uint8_t En, |
4 | uint8_t Rw, |
5 | uint8_t Rs, |
6 | |
7 | uint8_t d4, |
8 | uint8_t d5, |
9 | uint8_t d6, |
10 | uint8_t d7, |
11 | uint8_t backlighPin, |
12 | t_backlighPol pol |
13 | );
|
:
Bearbeitet durch User
Wolf F. schrieb: > nachdem der mcp23017 durch einen kleinen unfall > unwiderbringlich kaputt ist und ich diesen Nicht ersetzen werde, Vielleicht solltest du über geeignete Schutzmaßnahmen nachdenken, um "kleinem Unfällen" gar nicht erst eine Chance zu geben. Bestell dir besser einen kleinen Logikanalysator im Gegenwert eines Kantinenessens, um den Signalen auf die Finger gucken zu können und lerne zu verstehen, was du dort machst, statt den Kopf in den Sand zu stecken und zum nächsten Baustein zu wechseln.
Rainer W. schrieb: > lerne zu verstehen, was du dort machst Vorschläge dieser Art stoßen hier nur auf taube Ohren.
> Analog-Multiplexer 74hc4037 gibts nicht, CD4037 war ein "CMOS Triple AND/OR Bi-Phase Pairs" von RCA/Harris. 74HC4067 ist ein Analogschalter mit 16 Eingängen, der hilft auch nicht weiter.
Christoph db1uq K. schrieb: > gibts nicht, CD4037 war ein "CMOS Triple AND/OR Bi-Phase Pairs" von > RCA/Harris. Trolle werfen irgendetwas in den Raum und die hilfsbereiten, mit Scheuklappen ausgestatteten Helferlein lassen sich auf alles ein was ihnen so vorgeworfen wird.
Es ist mir egal ob Wolf ein Troll ist oder einfach etwas hilflos im Umgang mit Computertechnik und dem Internet. Es gibt genügend andere, die vor ähnlichen Problemen stehen und für Hilfe dankbar sind.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.