Projekt 60: Messplatine fuer Arduino

Aus HSHL Mechatronik
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Vollständige Messplatine auf Arduino MEGA2560 Mikrocontroller

Einleitung

Projekt aus Angewandte Elektrotechnik Praktikumim Ingenieurswissenschaftliche Vertiefung II.

Projektmitglieder:
Betreuer: Prof. Dr. Mirek Göbel
Betreuer: Prof. Dr. Ulrich Schneider
Autor: Sergej Krause
Autor: Steffen Schulze Middendorf

mit freundlicher Unterstützung von Assad Al-Suleihi & Ansgar Rahmesohl

Motivation, Aufgabenstellung & Vorgaben

Schaltplan Skizze
Arduino Mega2560

Ziel des Praktikums ist es anhand eines aus einer Liste gewählten Mini-Projektes Erfahrungen im Bereich Elektrotechnik zu vertiefen. Der fachliche Fokus unterscheidet sich von Projekt zu Projekt. Im ausgewählten Projekt 60: "Messplatine für Arduino" ging es darum anhand eines vorgegeben Schaltplans eine Messplatine zu entwerfen, erstellen und zu testen. Achtung der vorgegebene Schaltplan hat bei I²C Schnittstelle einen Fehler, 5V und GND liegen auf der gleichen Line. Dies wurde in unserer Multisim Schaltung bereits berichtigt. Wir haben uns als eigenes Ziel gesetzt die Platine als Shield für den Arduino auszuführen. Dies erlaubt die einfache Steckmontage auf dem Mikrocontroller. Die Datenblätter der zu nutzenden Bauteile finden sich in den Downloads. Nachdem die Fertigung der Platine abgeschlossen ist, soll ein Video erstellt werden, welches die Funktion und Möglichkeiten veranschaulicht.



Projektzeitplan

Vorgang Abgeschlossen bis
Semsterstart KW38 / 2016
Themenauswahl KW40 / 2016
Informationen sammeln - Einarbeitung KW41 / 2016
Schaltplan in MULTISIM2014 erstellen KW41 / 2016
BOM erstellen und bestellen KW45 / 2016
Platinenlayout in ULTIBOARD2014 erstellen KW45 / 2016
Platine auf Fräsbohrplotter erstellen KW47 / 2016
Bestücken und Löten der Platine KW48 / 2016
Fehlerbehebung und Programmierung KW51 / 2016
Projektmesse mit Präsentation KW02 / 2017
Wiki-Artikel finalsieren - Dokumentation KW04 / 2017
Semesterende KW09 / 2017

Multisim Schaltung

Schaltplan in Multisim

Zunächst haben wir die Schaltung entsprechend der Vorgabe in MULTISIM2014 umgesetzt. Zur besseren Übersicht und zur sicheren Verbindung der richtigen Pins am Arduino haben wir ein Template des vorhanden Pinouts des Arduino Mega2560 eingesetzt. Das Template lässt sich entweder auf der Homepage von National Instruments downloaden oder aus den Downloads im Wiki beziehen. Zusätzlich haben wir mit möglichst vielen Verknüpfungen(in MULTISIM heißen diese: allgemeine Steckverbinder) gearbeitet um die Übersicht gegenüber einem komplett verdrahteten Schaltplan zu erhöhen. Der Stromlauf lässt sich so für die einzelnen Stromkreise leicht nachvollziehen. Genutze Steckverbinder werden dabei mit ausgefüllten Rautensymbolen dargestellt. Noch nicht genutze Verbinder sind nicht gefüllt. Grundsätzlich erfüllt die Schaltung mehrere Funktionen:

  • Ansteuerung RS485 Schnittstelle

Standartmäßig verfügt der Arduino MEGA2560 über eine native RS232 Schnittstelle. Diese setzen wir über den oben gannten IC in eine RS485 Schnittstelle um. Damit lassen sich leicht entsprechende Sensoren anschließen. Somit lässt sich beispielsweise Kontakt zu einer SPS aufnehmen.

  • I²C Schnittselle

Sensoren lassen sich häufig über eine I²C Schnittstelle ansprechen. Die einfach Verkabelung über 2 Drähte macht diese Verbindungstechnik intressant.

  • Hall-Sensor

Hall-Sensoren reagieren auf Änderung des umgebenden magnetischen Feldes. Verwendet wird dies z.B. im Projekt: 49 schwebende Kugel.

  • Motorsteuerung

Mikrocontroller haben an Ihren Ausgangspins nur eine geringe Ausgangsleistung, für den Arduino empfiehlt sich eine Ausgangsleistung von 20mA pro Pin nicht zu überschreiten. Soll jetzt ein Aktuator mit größerer Leistung angesprochen werden(z.B. der verw. Motor mit etwa 80mA) muss auf eine externe Spannungsversorgung zurückgegriffen werden. Die Steuerung wird über ein MosFet realsiert. Die Funktion gleicht der eines Transistors. Eine große Last kann mit der Ausgangsspannung des Arduino gesteuert werden.

  • Drucksensor

Luftdrucksensoren haben vielfältige Einsatzmöglichkeiten. An der Messplatine könne bis zu 5 gleichzeitig angeschlossen und ausgelesen werden.

Bauteile & BOM

Nach Erarbeitung der Schaltung konnte die Bestellliste gefüllt werden. Die sogenannte "BOM" - Bill of Materials enthält alle benötigten Bauteile um das Projekt erfolgreich fertig zu stellen. Es war ein maximum von 20€/Projekt vorgegeben. Einige teurere Sensoren konnten aus dem Bestand der Hochschule zur Verfügung gestellt werden. Es bietet sich immer an kritische Materialen in mehrfacher Ausführung zu bestellen, damit bei evtl. Lötfehlern nicht erst auf neues Material gewartet werden muss.

Nummer Bauteilgruppe Bezeichnung Anzahl
1 IC MAX 485 CPA, RS485/422 Transceivcer, DIP-8 1
2 MOSFET IRLIZ 44N 1
3 Drehpotentiometer PC20BU-10K-LIN OMEG - Bestand HSHL 1
4 Gleichrichterdiode BY 329/1000, DO220, 1000V, 8A 1
5 Hall-Sensor TLE 4905 L 3.5 - 24 V PSSO 3-2 - Bestand HSHL 1
6 Wiederstände 120 Ohm, 1,0 K-Ohm, 10 K-Ohm, 2,4 Ohm, 1,0 Ohm 1, 1, 1, 1, 1
7 Kondensatoren 470pF, 4,7nF 5, 2
8 Lüfter 40x40x10mm, 12V, 0,08A 5,2
9 Drucksensor Bestand HSHL 5
10 Platine Fräsbohrplotter zsm. mit Herrn Rahmesohl, Material wurde gestellt.
11 Stromsensor LEM LTS-6-NP - Bestand HSHL 1
12 Kabel, Jumper Wire Male-Male, Female-Female 10, 10
13 Header & Pins 1", 1/2" 20, 20

Die Bom findet sich auch in Excel-Form im SVN-Ordner.

Ultiboard Aufbau

ULTIBAORD2014 3D-Ansicht

Nachdem die Schaltung in MULTISIM2014 erstellt wurde, kann diese über den Reiter "Übertragen" --> "in Ultiboard 2014 übertragen" in ULTIBOARD2014 exportiert werden. Auch hier haben wir das entsprechende Shield Layout verwendet. Anfangs stellt ULTIBOARD2014 die verwendeten Bauteile neben der Platine dar. Verbindungen sind mit dünnen gelben Leitungen dargestellt. Somit kann keine Leitung vergessen werden. Die Bauteile können jetzt beliebig verteilt werden. Es macht Sinn sich an dieser Stelle über ein sinnvolles Layout gedanken zu machen. Sind alle Bauteile an gewünschten Ort, kann über einen Klick auf "automatische Leiterbahnführung" die Verbindung zwischen den Bauteilen automatisch erstellt werden. Auf folgende Layoutregeln ist besonders zu achten:

ULTIBAORD2014 2D-Ansicht, mit Leiterbahnen und Bauteilen. Grün: Oberseite, Rot:Unterseite
  • Lötfreiraum:

Bendekt das Ihr wenn Ihr die Platine bestückt genug Platz für den Lötkolben habt. Hier spielt zwar auch die Lötreihenfolge eine Rolle, beim Layouten sollte dieser PLatz auf jeden Fall dennoch berücksichtigt werden.

  • Bauteile und Lötverbindung nicht auf gleicher Seite:

Die Platine kann von beiden Seiten, genannt "Copper TOP & BOTTOM" bestückt werden. Achtet darauf das Ihr die Lötverbindung jeweils für die Seite plant, an der nicht schon das Bauteil ist. Dies vereinfacht das spätere Löten enorm da Ihr nicht versuchen müsst das Lot in enge Zwischenräume zu bringen.

  • Leiterbahnbreite und Lötaugengröße:

Je mehr Strom durch eine Leiterbahn fließen soll, je größer(breiter) sollte diese ausgelegt sein. Das Internet bietet hier gute Anhaltspunkte. Generell gilt, je breiter die Bahn, je größer die Lötaugen und je größer der Leiterbahnfreiraum, je einfacher wird das Löten, da Ihr nicht so schnell Kontaktierungen erstellt, wo keine entstehen sollte. ULTIBAORD2014 verfügt über Leiterbahn regeln die ensprechend gesetzt werden können. Wir haben beispielsweise die Leitung der externen Spannungsversorgung vergrößert um keine Überhitzung der Leiterbahn zu erzeugen. Am besten besprecht Ihr euer Layout vor dem Fräsen mit eurem Betreuer. Die Fertigung der Platinen dauert lange und ist entsprechend teuer, daher gilt hier lieber mehrfach Fragen als später Probleme festzustellen.

  • Footprints:

Footprints sind wie der Name sagt, die "Fußabdrücke" der verwendeten Bauteile. Werden Statdartbauelemente verwendet, sind diese in ULTIBOARD2014 auswählbar. Spezielle Bauteile wie der Stromsensor(LEM) müssen selbst angelegt werden. Der Footprint beeinhaltet sowohl das Lochbild als auch auch den Bauteilabdruck. Am besten verwendet Ihr hier das Datenblatt des Bauteils und messt die Bauteile zur Sicherheit nochmal selbst nach. Ist euer Layout entgültig fertig kann es über ULTIBAORD2014 per "Datei" --> "Exportieren" in sogenannte Gerber-Dateien umgewandelt werden, mit denen sich der Fräsbohrplotter der HSHL ansteuern lässt. ACHTUNG: Dies funktionert in der Studenten Version im Evaluationsmodus nicht! Es muss auf einen HSHL-PC zurückgegriffen werden. In den Mechatronik-Räumen sind solche Lizenzen vorhanden.

Platinenfertigung

Fräsbohrplotter

Bevor Ihr die Platine fräsen lasst, macht auf jeden Fall einen Papier Ausdruck und versucht eure Bauteile auf die PLatine aufzustecken. Fehler werden hier schnell deutlich. Die Fertigung der Platine erfolgte mit dem HSHL eigenen Fräsbohrplotter LPKF ProtoMat S100. Der Plotter erstellt aus den Gerber-Daten aus ULTIBOARD2014 eine zweiseitige gefräste Platine. Grundsätzlich wird zwischen SMD- und THT- Bauteilen unterschieden. Bei händischer Bestückung bietet sich die THT, d.h. Through Hole Technology an. Hier werden die "Beine" der Bauteile durch Löcher in der Platine und anschließendes Verlöten verbunden. Man muss wissen, dass der Fräsbohrplotter nicht in der Lage ist eine "Durchkontaktierung" zu erstellen. Das heißt, Bauteile sollte Ihre Verbidung an beiden Seiten benötigt werden, müssen auch an beiden Seiten der Platine eine Verlötung stattfinden. Da die Bedienung des Fräsbohrplotters Teil des ersten Praktikumversuchs ist, soll an dieser Stelle nicht mehr näher darauf eingegangen werden. Anschließend kann die Platine mit den oben genannten Bauteilen vestückt werden. Achtet auf einen Lötkolben mit kleiner Spitze. Eine Temperatur von 350°C hat sich als ideal herausgestellt. Prüft nach jeder neuen Lötung mittels Multimeter-Durchgangsprüfer ob die Benetzung mit Lot funktioniert hat und Ihr keine Kurzschlüsse mit anderen Leiterbahnen erzeugt habt. Das erleichtet euch im Anschluss das testen ungemein. Lötablauf sollte wie folgt sein:

  • Lötspitze an Bauteil und Lötauge halten und damit aufwärmen
  • Lot gegen den Kolben zuführen bis Verbindung hergestellt
  • Kolben nach oben entlang des Bauteiles wegziehen
  • Verbindung auf Konataktierung mit Multimeter prüfen --> Lack an der Oberfläche der Platine muss durchstoßen werden.

Programmierung & Funktionscheck

Messwerte
PAP Arduino Messplatine

Zur Funktionsprüfung haben wir ein Testprogramm in der Arduino.cc Version 1.6.12 geschrieben.

Um die Funktionalität der Senoren zu prüfen müssen die richtigen Pins an dem Arduino über das Program angesprochen werden. Hierbei ist darauf zu achten welche Pins benutzt werden, insbesondere ob Digitale-oder Analoge Pins verwendet werden, da diese unterschiedlich angesprochen werden. Bei den Digitalen Pins ist noch zu beachten ob eine PWM, Pulsweiten Modulation, benötigt wird. Hierfür gibt es spezielle Pins die im Pinlayout des Arduino MEGA zu finden sind. Unsere Pinbelegung sieht wie folgt aus:

Analog:

  • A0 Stromsensor (LEM)
  • A1 Potentionmeter
  • A5 Drucksensor

Digital:

  • D3 HAL Sensor
  • D5 MosFet Steuersignal

Das Program testet alle verfügbaren Sensoren, in dem es die Daten der einzelnen Sensoren ausliest und die zurückgelieferten Werte auf dem Seriellenmonitor der Arduinoprogrammierumgebung ausgibt. Dies ist im Bild Messwerte zu sehen. Desweiteren ist dort zu sehen, wie sich der Wert des HAL Sensors ändert wenn ein Magnetischesfeld in den Messbereich des Sensors geführt wird. Die Werte des Drucksensors ändern sich minimal, dies ist auf Schwankungen in dem Sensor zu führen, da kein Druck auf den Sensor gegeben wurde. Der Wert 52/51 ist der aktuelle Luftdruck im Raum. Die Stellung des Potentionmeters lässt sich an dem Wert Poti ablesen, die 1024 sind so zu interpretieren, dass der Drehpotentionmeter am Anschlag ist und den höchsten Widerstand besitzt. Der LEM, Stromsensor, liefert laut Datenblatt erst ab 6 At optimale Werte. Festgestellt wurde, dass bei keiner Last, sich ein Wert um 517 einstellt.

Um dem Program eine etwas Anspruchsvollere Aufgabe zu geben, kann der Motor mittels Potentionmeter und Drucksensor gestartet und gestoppt werden. Die Ansteuerung des Motors erfolgt über ein PWM Signal auf den MosFet. Um beide Sensoren einen gleichwertigen Einfluss auf die Steuerung des Motors zu gewährleisten, werden beide Rohwerte auf 1/64 geteilt und miteinander multipliziert, sodass sich ein Wert zwischen 0 und 255 einstellt. Wird er Potentiometer Wert erhöht, so ist es leichter mit dem Drucksensor den Motor zu starten. Je niedirger der Potentionmeter Wert, desto mehr Druck muss auf den Drucksensor gegeben werden, damit sich der Motor startet. Hier unser Code:


Neben dieser Erklärung haben wir ein Video erstellt das einige Funktionen, sowie die Steuerung eines Motors darstellt. Im Video wird der Motor aktiviert, sobald ein voreingestellter Druck-Schwellwert überschritten wird: Funktionscheck
Alle anderen Funktionen der Platine sind funktionsfähig. Alle Sensoren und Aktoren konnten angesteuert werden. Einzig die Schnittstellen(I²C und RS485) konnten aufgrund fehlender Gegenstücke nicht getestet werden.

Lessons learned und Fazit

Die Fertigung einer Platine in Form eine Shield für den Arduino Mega2560 ist nicht so einfach wie vermutet. Viele Kleinigkeiten können dazu führen, dass die Platine nicht bestückt, befestigt oder funktionsfähig ist.

  • Schaltplan Vorgabe:

Der Schaltplan enthielt bereits einen Fehler bei der I²C Schnittstelle. Dieser wurde glücklicherweise vor Fertigung der Schaltung entdeckt. Es bietet sich an jede Schaltung, egal ob eigene Entwicklung oder Vorgabe vorher auf dem Steckbrett zu prüfen. Eine Erkenntnis war ausserdem: Massen müssen abgeglichen werden. Das heißt alle GND, sei es vom Arduino oder von externen Spannungsquellen müssen verbunden werden(siehe rotes Kabel auf der Platine). Ohne dieses Kabel funktioniert die Entladung des MosFets nicht.

  • Multisim Schaltplan:

Es bietet sich an immer mit Verknüpfungen und Templates zu arbeiten. Das erhöht die Übersicht. Fehler können sofort erkannt werden. Am besten die Schaltung nochmals auf Steckbrett nach eigenen Schaltplan aufbauen. Bauteile die mit einem Footprint ausgestattet sind erscheinen blau. Nur diese Bauteile können erfolgreich in ULTIBAORD2014 migriert werden.

  • Ultiboard Schaltung:

Bigger is always better. Nutzt wie beschrieben große Lötaugen, viel Lötfreiraum, lasst viel Platz zwischen den Leiterbahnen und Bauteilen um Kollisionen zu vermeinden. Footprints müssen für spezielle Bauteile selbst erstellt werden. Seid hier präzise, desto einfacher ist später das Löten.

  • Platinenfertigung:

Druckt die Platine zunächst auf Papier und steckt die Bauteile auf, Nutzt einen Kugelschreiber als "Lötkolben" und testet die Zugänglichkeit.

  • Funktionscheck:

Das wichtigste ist eine gute Ausstattung, Multimeter, Oszilloskop.

Und das Wichtigste: Baut nicht die gesamte Platine falsch herum zusammen. Das ist der Grund warum wir die Verbindungen mit Kabeln von Innen nach Außen führen mussten. Anhand des großen "Lessons Learned" ist abzuleiten das wir viel mitgenommen haben. Miniprojekte sind ideal um praktische Erfahrungen zu sammeln, die Erfarungen lassen sich in viele andere Bereiche übertragen.

Download

Youtube Funktionscheck

Weblinks

Einzelnachweise

[1] siehe Nachweise und Links im Text

→ zurück zum Hauptartikel: Angewandte Elektrotechnik Praktikum