Allgemein

BMW e36 Tacho TFT mit i2c an zweitem Arduino


Da der Radioschacht von meinem Cockpit ja noch ungenutzt ist und ich ja auch nur analoge Abzeigen habe, dachte ich mir ich baue mir noch ein Display für weitere Informationen ein.
Zur besseren Verwaltung habe ich einen zweiten Arduino angeschlossen an dem derzeit zu testzwecken ein 1.8 Zoll SPI TFT angeschlossen ist.

Möglich wäre auch ein anderes Display mit Touch und/oder SD-Card um verschiede informationen abrufen zu können.

Eine recht einfache Möglichkeit mehrer Arduinos zu verbinden, bietet der i2c (I2C-Bus), da nur 2 Kabel für SDA, SDC benötigt werden.
Die Stromversorgung teilt sich selbiger mit dem ersten (Master) Arduino.

An diesem “Bus” konnen bis zu 112 Arduinos angeschlossen und über einen USB-port angesprochen werden.

Transfer rate: 10 Kb/s (low speed) – 100Kb/s
SDA – Serial Data line
SCL – Serial CLock line
128 possible addresses
16 reserved addresses
112 devices max
Devices have to share both 5V (Power) and GND (Ground)

Es müssen nur A4, A5 (Leonardo: A2,A3, Due/Mega: A20,A21) der Arduinos verbunden werden.
Jeweils zwischen den Leitungen zur 5v muss ein 1,5 KOhm Widerstand (nicht benötigt beim Mega) eingesetzt werden.

Erste Test sind abgeschlossen und ich werde mir jetzt erstmal ein grösseres 3.2 Zoll TDT mit Touch und SD bestellen.

BMW Tacho mit Led TFT

Arduino mit Arduino verbinden I2C

Eine recht einfache Möglichkeit mehrer Arduinos zu verbinden, bietet das i2c (I2C-Bus), da nur 2 Kabel benötigt werden.

An diesem „Bus“ konnen bis zu 112 Arduinos angeschlossen und über einen USB-port angesprochen werden.

  • Transfer rate: 10 Kb/s (low speed) – 100Kb/s
  • SDA – Serial Data line
  • SCL – Serial CLock line
  • 128 possible addresses
  • 16 reserved addresses
  • 112 devices max
  • Devices have to share both 5V (Power) and GND (Ground)

Es müssen nur A4, A5 (Leonardo: A2,A3, Due/Mega: A20,A21) der Arduinos verbunden werden so wie jeweils zwischen den Leitungen zur 5v ein 1,5 KOhm Widerstand (nicht benötigt beim Mega).

Arduino i2c Master Slave

 

Arduino IDE – Code::Blocks

Alternative IDE

Wem die schlichte Entwicklungsumgebung der Arduino IDE nicht reicht, sollte sich unbedingt mal Code::Blocks ansehen.

codeblocks

LCD mit I2C

Der Vorteil eines I2C-Moduls liegt klar auf der Hand… 2 statt 5 Kabel, somit sind mehr Pins frei.
Will man mehr als ein LCD ansteuern, kein Problem….. es bleiben 2 Kabel 🙂

Board I2C an pin:
Uno, Nano, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1

#include 
#include 

LiquidCrystal_I2C lcd1(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack
LiquidCrystal_I2C lcd2(0x20,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack

void setup()
{
  // activate LCD 1 module
  lcd1.begin (16,2); // for 16 x 2 LCD module
  lcd1.setBacklightPin(3,POSITIVE);
  lcd1.setBacklight(HIGH);

  // activate LCD 2 module
  lcd2.begin (16,2); // for 16 x 2 LCD module
  lcd2.setBacklightPin(3,POSITIVE);
  lcd2.setBacklight(HIGH);
}

void loop()
{
  lcd1.home (); // set cursor to 0,0
  lcd2.home (); // set cursor to 0,0

  lcd1.print("LCD 1"); 
  lcd2.print("LCD 2");

  lcd1.setCursor (0,1);        // go to start of 2nd line
  lcd1.print(millis());
  lcd2.setCursor (0,1);
  lcd2.print(millis());
  delay(1000);
}
12
WP2Social Auto Publish Powered By : XYZScripts.com