AG Mechatronik Verbindung Raspberry mit Arduino

Vorbetrachtungen

Der Arduino/Funduino arbeitet mit einer Spannung von 5 V.
An einem Ausgang kann somit bei H-Pegel eine Spannung bis zu 5 V anliegen.

Der Raspberry arbeitet mit einer Spannung von 3,3 V. Die 5 V Spannung am GPIO sind die Versorgungsspannung aus dem Netzteil.
An einem Ausgang kann somit bei H-Pegel eine Spannung bis zu 5V anliegen.

Man darf einen Pin eines Raspberry nie direkt mit einem Pin des Arduino verbinden.

Ein Spannungsteiler ist die Lösung für unser Problem.

Durch die Verwendung einer LED, deren Flussspannung je nach Farbe mindesten 1,7 V beträgt, wird die Teilspannung über dem Widerstand auf maximal 3,3 V begrenzt.
Im Beispiel ist die Flussspannung 2,08 V, denn 2,08 V + 2,92 V = 5 V.

Diese Lösung birgt die Gefahr der Zerstörung der LED!

Aufgabe 1

Ein Arduino wird mit dem bekannten Blink-Programm gefüttert. Auf dem Steckbrett wird eine LED, wie im Bild ersichtlich, am Pin 13 angeschlossen.

  1. Die Spannung am Spannungsteiler zwischen LED und Widerstand soll über den analogen Eingang A0 des Arduino gemessen und über den "seriellen Monitor" auf den PC ausgegeben werden.
  2. Der Pin 8 des Arduino wird als digitaler Eingang programmiert und darauf die Spannung zwischen LED und Widerstand des Spannungsteilers gelegt.
    Der digitale Eingangswert dieses Pin 8 wird über den "seriellen Monitor" auf den PC ausgegeben.
  3. Pin 7 wird als Ausgang definiert, eine "H-aktive LED" (mit Vorwiderstand) angeschlossen.
    Immer wenn der Ausgang 13 von "L-" auf "H-Pegel" wechselt, soll Pin7 seine Zustand ändern.
    123d.circuits-Projekt
  4. Lerne das Taktzustandsdiagramm für Arduino 1 zu interpretieren!

Aufgabe 2

Ausgangspunkt für diese Aufgabe ist die fertig gestellte Lösung der Aufgabe 1, sowie ein zweiter Arduino, der ebenfalls an deinen oder einen anderen PC angeschlossen werden kann.
Falls zwei Arduino's an einem PC betrieben werden, muss man sich genau bewusst machen, mit welcher COM-Schnittstelle der jeweiligen Arduino verbunden ist.
Ändert man die Portzuordnung, dann gilt dies für alle geöffneten Arduino-Fenster. Somit hat man schnell mal den falschen Arduino umprogrammiert.
Besser ist es, mit zwei PC's zu arbeiten.

  1. Bestücke einen zweiten Arduino mit dem bekannten Blink-Programm, welches die Onboard-LED am Pin 13 mit einer Frequenz von 2 Hz und einem EIN/AUS-Verhältnis von 2:3 blinken lässt.
  2. Der erst Arduino soll ebenfalls mit einer Frequenz von 2 Hz am Pin 13 blinken
  3. Verbinde die GND-Pins der beiden Arduino's miteinander.
  4. Löse in der Schaltung der Aufgabe 1 die Steckverbindung am Pin 13 und verbinde diese mit dem Ausgang Pin 13 des zweiten Arduino's.
    Die gewohnt Funktion sollte auf dem Steckbrett zu beobachten sein.
  5. Was geschieht aber, wenn die Frequenzen unterschiedlich sind bzw. das Tastverhältnis der Signalquelle verändert wird?

    Lies das Taktzustandsdiagramm für Arduino 1. Es arbeiten beide Arduino's synchron!


    Lies das Taktzustandsdiagramm für Arduino 1, es arbeiten beide Arduino's synchron, aber zeitversetzt!


    Lies das Taktzustandsdiagramm für Arduino 1, wenn Arduino 2 schneller als Arduino 1 taktet!
    Vervollständige das Taktzustandsdiagramm! Nutze dieses OpenOffice-Dokument.
    Installiere gegebenenfalls Openoffice.

    Welche Auswirkung hat eine zeitliche Verschiebung des Eingangsignals?
    Nutze das OpenOffice-Dokument.
  6. Hier nun ein Beispielcode für Sender und Empfänger!

    Der Sender überträgt eine Folge von Werten "0" bzw. "1"

    Erarbeite dir diesen Quellcode schrittweise!



      

Aufgabe 3

Der Arduino wird mit dem bekannten Blink-Programm und der Raspberry mit folgenden kleinen Programm gefüttert.
dann der Arduino wie folgt über den Spannungsteiler mit dem Raspberry verbunden.
Jetzt sollte das Pythonprogramm eine Folge von Nullen und Einsen auf den Bildschirm zaubern.

Wir wollen nun die Spannung am Eingang Pin11/GPIO17 des Raspberry mittels des Arduino messen.
Dazu verbinden den analogen Eingang A0 des Arduino mit Pin11 des Raspberry.

Im nächsten Schritt wollen wir den Messwert für die Spannung am Eingang des Pin A0 des Arduino's auf den Raspberry übertragen.

 

Aufgabe 4

Zwischen z.