Serielle Schnittstelle / Schnittstellen... Info´s?

Hallo,

Im Vorhein, bitte um Verständnis zu meinen Fragen. Habe schon gegoogelt und auch die Suchfunktion benutz, bin aber leider nicht zu meinen gewünschten Antworten gekommen...
daher bitte ich um eure Hilfe. Bin in dieser Welt noch Anfänger :roll_eyes:
Bin aber auch schon auf ähnliche Themen gestoßen, jedoch hat mich das nur verwirrt.

Es geht um Serielle Schnittstellen (Bsp. Arduino Uno R3) und zwar habe ich mich jetzt einwenig mit der
I2C (A4/A5) Schnittstelle beschäftigt (Wii Nunchuk angeschlossen).
Jetzt möchte ich Bluetooth & Serielle Datenübertragung in Angriff nehmen.
Daher kommen jetzt meine Fragen :slight_smile:

1. I2C
Kann man an einer I2C Schnittstelle, mehrere Teilnehmer anschließen?
Ist dies überhaupt eine Richtige Busschnittstelle?
(Bsp. WiiNunchuk + LCD Display+Sensor)

2. TX/RX
Pin 0 & 1, werden von der USB Schnittstelle benutzt.
Aber auch von einem Bluetooth Modul (bsp. HC-06).
Tipp von andere, einfach an einem anderen Digigtalen Pin anschließen und dort eine Serielle Schnittstelle definieren.
Was ist aber, wenn ich es an TX & RX Anschließe und gleichzeitig Porgrammiere bzw. kann man im Programmiermodus
einfach das Bluetooth Modul wegschalten? Bzw. wie mach ihr das?

Kurzes Projekt Beispiel (in Planung)
2x Servos die einen Laser in 2 Achsen bewegen
Steuerung mittels Wii Nunchuk
Positionsdaten ausgabe auf LCD (16x2)
Weitere Steuerung mittels Android Smartphone, Verbindung über Bluetooth
(Wii Nunchuk fällt dann weg, bzw. kann dazugeschalten werden)
Möchte dann noch LED´s, Pizo Summer, usw anschließen... bin aber schon ziemlich mit den IO´s begrentz...
Dh Display --> I2C Schnittstelle (damit Pin´s frei werden)
Bluetooth Parallel zur USB Schnittstelle (zum Programmiern und Daten Spielen)

Hier mein Projekt

Zusammengefasst möchte ich gern einfach ein paar Info´s zum Anschluss mehrerer Teilnehmer an den Seriellenschnittstellen des Arduion´s und wie diese gehandhabt werden.

Meine derzeitigen Programmiererfahrungen, beschränken sich auf Arduino Tutorial´s und auf SPS Porgrammieren.
Vielen Dank schonmal im Vorraus :slight_smile:

Schpiza:
1. I2C
Kann man an einer I2C Schnittstelle, mehrere Teilnehmer anschließen?
Ist dies überhaupt eine Richtige Busschnittstelle?

Ja. Ein Master + 127 Slaves. Bei I2C Devices und ICs kann man die Adresse i.d.R. über Jumper und Adress-Eingänge einstellen. Jeder Teilnehmer hat dann eine andere Adresse.

2. TX/RX
Tipp von andere, einfach an einem anderen Digigtalen Pin anschließen und dort eine Serielle Schnittstelle definieren.

Das ist aber nur eine Software Emulation und keine Hardware Schnittstelle. Entsprechend ist sie weniger zuverlässig und verbraucht CPU Ressourcen. Es kommt auf die Anwendung an ob das richtig geht. Manchmal gibt es Probleme damit. Es gibt noch die AltSoftSerial Lib, welche einen Timer verwendet um die Zeiten strikt einzuhalten. Die ist besser, aber geht nur an bestimmten Pins:
http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
Das ist nicht unbedingt nötig. Muss man ausprobieren

Der Mega hat mehrere Hardware Schnittstellen.

EDIT:
Bluetooth Module über SoftSerial anzusprechen scheint aber in der Tat Standard zu sein.

Wenn du mehr Pins brauchst gibt es außerdem Port Expander ICs wie den PCF8574. Ebenfalls über I2C angesteuert. Macht dir 8 weitere I/Os. Gibt es für 1-2€ und lässt sich kaskadieren. Oder den MPC23017 für 16 Bit.

Serenifly:
Wenn du mehr Pins brauchst gibt es außerdem Port Expander ICs wie den PCF8574. Ebenfalls über I2C angesteuert. Macht dir 8 weitere I/Os. Gibt es für 1-2€ und lässt sich kaskadieren. Oder den MPC23017 für 16 Bit.

Den PCF8574 kann man nicht kaskadieren. Mit 3 Adressbytes und dem PCF8574A mit anderer Basisadresse kann man aber bis zu 16 Expander am I2C Bus anschließen.
Der I2C Bus kann auf keine großen Distanzen funktionieren (max einige Meter, je anchdem wieviele Geräte angeschlossen sind).
Grüße Uwe

Danke mal für die Info´s :slight_smile:

Von den Strecken her, würde es max. einige cm sein, also auf die längen würde ich nie kommen.
Werde mir mal anhand euerer Info´s dies genauer ansehen, derweil fehlt noch Hardware :wink: