Go Down

Topic: LCD-Display 20X4 ohne I2C-Schnittstelle (Read 1 time) previous topic - next topic

my_xy_projekt

Wie deklariere ich die Pins A4 und A5 um? Hier wurde schon öfters gesagt, dass das gehen soll.
Gar nicht.

Die PIN stellen unterschiedliche Funktionen zur Verfügung.
Schau Dir mal an, was ein ARDUINO UNO so alles an seinen PINs kann.
http://diwo.bq.com/pinout-uno/

Eine genaue Übersicht, welche Funktionen der AVR kann, kannst Du im Datenblatt nachlesen. Da ist jeder PIN dargestellt

Welche Funktion der PIN tatsächlich hat, wird durch Auswahl und Einstellung in der Software erledigt.
Im Falle des (Hardware-)I2C und Benutzung einer entsprechenden lib, werden die PIN im Prozessor eingestellt und der kümmert sich dann um (fast) alles allein. Dann bist Du an die 2 PIN gebunden.

Im Falle eines Software-I2C kannst Du jeden xbeliebige PIN-Kombi nehmen. Dann muss aber die Software (lib) aber auch alles selber organisieren. Das ist umfangreicher und aufwändiger.

nutzi

Wenn ich jetzt also die Anschlüsse SDA und SDL des Adapters am Display durch z.B. Pin 8 und Pin 9 ersetzen wollen würde, würde mein Scetch so aussehen:

Code: [Select]


#define SDL_PIN 8

#define SDA_PIN 9

#include <SoftI2CMaster.h>



Liege ich da richtig? Steht zumindest so im Beispiel:

https://michaelsarduino.blogspot.com/2016/02/software-i2c.html

my_xy_projekt

Wenn ich jetzt also die Anschlüsse SDA und SDL des Adapters am Display durch z.B. Pin 8 und Pin 9 ersetzen wollen würde, würde mein Scetch so aussehen:

Code: [Select]


#define SDL_PIN 8

#define SDA_PIN 9

#include <SoftI2CMaster.h>



Liege ich da richtig?
fast.
Das ist kein Sketch.
Aber so kannst Du die Nutzung einleiten.
Bitte auch auf das i2c_init() und i2c_start() achten.

Aber Du solltest auch - siehe weiter vorher - jetzt unter DATEI - BEISPIELE deine lib und darunter kurze Sketches finden.

nutzi

Hallo,

Ich probiere gerade mit besagtem Display rum. Ich habe es erstmal mit den analogen Pins versucht und SDA an A4 und SCL an A5 angeschlossen. Dann hab ich das "Hello World"-Beispiel aus der Bibliothek benutzt:

Code: [Select]


//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}



Es funktioniert aber nicht.

Der Scetch lädt, aber mit folgender Warnung:
WARNUNG: Bibliothek LiquidCrystal_I2C behauptet auf avr Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf sam Architektur(en) ausgeführt wird.

Was kann ich tun?

HotSystems

#34
Jun 02, 2020, 12:47 pm Last Edit: Jun 02, 2020, 12:58 pm by HotSystems
Wenn das die richtige Fehlermeldung ist, dann solltest du dieser auch glauben.

Du verwendest offensichtlich keinen AVR Uno o.ä., sonder ein anderes Board zu dem die Library nicht kompatibel ist.

Edit:
Soweit ich erinnere verwendest du einen DUE, da musst du auch die passende Library nutzen.
Z.B. diese hier.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

nutzi

Habe die Kabel von den analogen Pins umgesteckt auf 20 (SDA) und 21 (SCL) und jetzt tut mein Beispiel, auch mit meiner Bibliothek. Aber auch diese beiden Pins habe ich belegt. Ich habe aber immer noch nicht verstanden, wie ich das mit beliebigen digitalen Pins mache.

Bitte auch auf das i2c_init() und i2c_start() achten.


Was ist das?

Bitte einfach erklären, wie ich das Display mit z.B. Pin 8 und 9 ans Laufen kriege. Das "warum" ist mir nicht so wichtig, sondern nur, dass es funktioniert.

HotSystems

Bitte einfach erklären, wie ich das Display mit z.B. Pin 8 und 9 ans Laufen kriege. Das "warum" ist mir nicht so wichtig, sondern nur, dass es funktioniert.
Steht das nicht im Beispiel zu "SoftwareI2C" ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

nutzi

Steht das nicht im Beispiel zu "SoftwareI2C" ?

Ne, zumindest nicht für mich verständlich.

HotSystems

Ne, zumindest nicht für mich verständlich.
Ich habe mir das angesehen, ist doch genau beschrieben.

Was verstehst du denn nicht ?

Wenn du uns das nicht mitteilst, können wir nicht helfen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

nutzi

In welchem Beispiel steht denn

Code: [Select]


#define SDL_PIN 8

#define SDA_PIN 9

#include <SoftI2CMaster.h>






oder etwas Ähnliches?

Was verstehst du denn nicht ?

Wenn du uns das nicht mitteilst, können wir nicht helfen.

Ich kann nicht beschreiben, was ich nicht verstehe, wenn ich nix verstehe. Ich kann auch, wie schon mal gesagt, nicht gut Englisch.

Wenn es so einfach ist, wieso kann man hier nicht einfach schreiben, wie es gemacht wird?

HotSystems

Wenn es so einfach ist, wieso kann man hier nicht einfach schreiben, wie es gemacht wird?
Und wieso sollen wir alles wiederholen, was schon geschrieben steht ?

Was das Englisch betrifft, gibt es online Übersetzer.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

nutzi

In welchem Beispiel steht es denn?

Was das Englisch betrifft, gibt es online Übersetzer.

Die funktionieren oft nicht gut, gerade bei Fachbegriffen.

Tommy56

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

nutzi

Und wieso sollen wir alles wiederholen, was schon geschrieben steht ?



Weil es mir helfen würde. Und WO steht es?

HotSystems

#44
Jun 03, 2020, 08:43 am Last Edit: Jun 03, 2020, 09:01 am by HotSystems
Was ist das?

Bitte einfach erklären, wie ich das Display mit z.B. Pin 8 und 9 ans Laufen kriege. Das "warum" ist mir nicht so wichtig, sondern nur, dass es funktioniert.
Ok.....dieser Satz war jetzt für mich entscheidend.
Der sagt aus, du willst es nicht lernen, willst aber von uns eine Lösung.

Sorry, aber da bin ich jetzt raus.

Fällt mir gerade ein, du hast doch einen DUE ?
Warum nimmst du da nicht die Pins 20 und 21 für I2C, da brauchst du doch keine analogen Pins bzw. mit SoftwareI2C arbeiten.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up