Projekt 29: Entwicklungsplatine für Mikrocontroller entwerfen und ansteuern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(25 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]
[[Kategorie:Projekte]]
Autoren: Andre Merkel, Anika Leinhäuser<br/>
Autoren: [[Benutzer:Andre_Merkel| Andre Merkel]], [[Benutzer:Anika_Leinhaeuser| Anika Leinhäuser]]<br/>
Betreuer: [[Benutzer:Mirekgoebel| Prof. Göbel]]
Betreuer: [[Benutzer:Mirekgoebel| Prof. Göbel]]


Zeile 21: Zeile 21:
Anspruchsvoll (***)
Anspruchsvoll (***)


----
 
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_14/15)|Angewandte Elektrotechnik (WS 14/15)]]


<H1> Einleitung </H1>
<H1> Einleitung </H1>
Zeile 28: Zeile 27:
Im Rahmen der Lehrveranstaltung „Angewandte Elektrotechnik“ des Studiengangs „Business and Systems Engineering“ im Wintersemester 2014/15 gab es die Aufgabe, ein Projekt im Bereich der Elektro- und Regelungstechnik durchzuführen. Die vorliegende Dokumentation befasst sich mit dem Entwurf und der Ansteuerung einer Entwicklungsplatine für einen Mikrocontroller.  
Im Rahmen der Lehrveranstaltung „Angewandte Elektrotechnik“ des Studiengangs „Business and Systems Engineering“ im Wintersemester 2014/15 gab es die Aufgabe, ein Projekt im Bereich der Elektro- und Regelungstechnik durchzuführen. Die vorliegende Dokumentation befasst sich mit dem Entwurf und der Ansteuerung einer Entwicklungsplatine für einen Mikrocontroller.  


Detailliert bestand die Aufgabe darin, eine Entwicklungsplatine für den Mikrocontroller des Arduino Uno zu bauen und anzusteuern. Dabei waren mindestens die Bauelemente Drehencoder, LEDs inklusive Transistorstufe, RGB-LED inklusive Transistorstufe, MOSFET für große Lasten, H-Brücke, EEPROM, drei Potentiometer sowie ein Display zur Ansteuerung zu verwenden. Die gestellten Erwartungen lagen in der Erstellung eines Konzepts sowie in einem Entwurf des Schaltplans in der Software Multisim bzw. Ultiboard. Des Weiteren sollte die Entwicklungsplatine als ArduinoShield erstellt werden. Neben der Programmierung in C wurden ein Ansteuern der Aktoren sowie ein Auslesen der Sensoren gefordert, sofern diese verbaut wurden. Darüber hinaus beinhaltete die Aufgabe die Programmierung von Beispielaufgaben. Außerdem waren Tests der entwickelten Platine durchzuführen und wissenschaftlich zu dokumentieren. Die Dokumentation der technischen Funktion der verwendeten Bauteile und eine Live-Vorführung während der Abschlusspräsentation stellten ebenfalls Erwartungen dar.
Detailliert bestand die Aufgabe darin, eine Entwicklungsplatine für den Mikrocontroller des Arduino Uno zu bauen und anzusteuern. Dabei waren mindestens die Bauelemente Drehencoder, LEDs inklusive Transistorstufe, RGB-LED inklusive Transistorstufe, MOSFET für große Lasten, H-Brücke, EEPROM, drei Potentiometer sowie ein Display zur Ansteuerung zu verwenden. Die gestellten Erwartungen lagen in der Erstellung eines Konzepts sowie in einem Entwurf des Schaltplans in der Software Multisim bzw. Ultiboard. Des Weiteren sollte die Entwicklungsplatine als ArduinoShield erstellt werden. Neben der Programmierung in C wurde ein Ansteuern der Aktoren sowie ein Auslesen der Sensoren gefordert, sofern diese verbaut wurden. Darüber hinaus beinhaltete die Aufgabe die Programmierung von Beispielaufgaben. Außerdem waren Tests der entwickelten Platine durchzuführen und wissenschaftlich zu dokumentieren. Die Dokumentation der technischen Funktion der verwendeten Bauteile und eine Live-Vorführung während der Abschlusspräsentation stellten ebenfalls Erwartungen dar.




Zeile 72: Zeile 71:




Die detaillierte Projektplanung werden durch das Gantt-Diagramm und durch die Zeitachse erfasst, welche mit MS Project 2013 erstellt wurden. Während der Projektzeit (19.09.2014-16.01.2015) erfolgte eine stetige Verfolgung, ob alle Vorgänge und Meilensteine rechtzeitig einghalten wurden. Das Gantt-Diagramm ist auf der linken Seite dargestellt. Die Zeitachse befindet sich auf der rechten Seite.
Die detaillierte Projektplanung werden durch das Gantt-Diagramm und durch die Zeitachse erfasst, welche mit MS Project 2013 erstellt wurden. Während der Projektzeit (19.09.2014-16.01.2015) erfolgte eine stetige Verfolgung, ob alle Vorgänge und Meilensteine rechtzeitig einghalten wurden. Das Gantt-Diagramm ist im Folgenden in der linken Abbildung dargestellt. Die Zeitachse befindet sich auf dem rechten Bild (siehe Abbildung 2).




[[Datei:Projektablaufplan_29.jpg|gerahmt|links|x400px|Projektablaufplan des Projekts 29]]
[[Datei:Projektablaufplan_29.jpg|gerahmt|links|x400px|Abbildung 1: Projektablaufplan des Projekts 29]]




[[Datei:Zeitachse_Projekt29.PNG|gerahmt|rechts|x90px|Zeitachse des Projekts 29]]
[[Datei:Zeitachse_Projekt29.PNG|gerahmt|rechts|x90px|Abbildung 2: Zeitachse des Projekts 29]]




Zeile 119: Zeile 118:
<H2> Idee </H2>
<H2> Idee </H2>


[[Datei:Blackbox-Modell.jpg|gerahmt|rechts|x450px|Darstellung des Black-Box Modells für die Entwicklung]]
[[Datei:Blackbox-Modell.jpg|gerahmt|rechts|x450px|Abbildung 3: Darstellung des Black-Box Modells für die Entwicklung]]


Die Idee für die Entwicklungsplatine war der Entwurf einer DC-Motorsteuerung. Dabei sollte der Motor jedoch nicht nur einfach ein- bzw. ausgeschaltet werden, sondern mithilfe einer PWM angesteuert werden. Dadurch sind unterschiedliche Geschwindigkeiten des Motors möglich. Neben diesen DC-Motor war noch ein weiterer DC-Motoranschluss für schwere Lasten vorgesehen. Der Einsatz von Potentiometern, Drehencoder, EEPROM sowie einem LCD-Modul sollten dabei dem Anwender unterschiedliche Möglichkeiten bei der Motorsteuerung ermöglichen.
Die Idee für die Entwicklungsplatine ist der Entwurf einer DC-Motorsteuerung. Dabei soll der Motor jedoch nicht nur einfach ein- bzw. ausgeschaltet werden können, sondern mithilfe einer PWM angesteuert werden. Dadurch sind unterschiedliche Geschwindigkeiten des Motors möglich. Neben dem DC-Motor für einfache Lasten ist noch ein weiterer DC-Motoranschluss für schwere Lasten vorgesehen. Der Einsatz von Potentiometern, Drehencoder, EEPROM sowie einem LCD-Modul schaffen dem Anwender unterschiedliche Möglichkeiten bei der Motorsteuerung.
   
   
Um die Idee für die Entwicklungsplatine besser zu verdeutlich, wird ein Black-Box Modell herangezogen (siehe Abbildung des Black Box Modells). In der Abbildung ist der Arduino Uno in einem roten Kasten zu erkennen. Dieser stellt in diesem Modell den Hauptausgangspunkt dar, da über diesen gesteuert wird. Dabei stellen die roten Pfeile eine direkte Verbindung und die blauen eine indirekte Verbindung zum Arduino Uno dar. Weiterhin gibt die Pfeilrichtung die Richtung der Signale an. Das bedeutet, dass vom Arduino wegführende Pfeile eine Ansteuerung und zum Arduino führende ein Einlesen darstellen. Beispielhaft wird hier der Drehencoder aufgeführt. Dabei wird die „Drehrichtung“ eingelesen (Impuls) und verarbeitet. Weiterhin gibt das Modell einen groben Aufschluss über die Funktionsweise der Entwicklung. Dadurch soll ein schneller Überblick über die Platine gegeben werden, ohne dass es einer langen Auseinandersetzung mit dem Schaltplan benötigt. So geht bspw. aus dem Black-Box Modell deutlich hervor, dass wenn der „einfache“ DC-Motor angesteuert werden soll, dies nur über die H-Brücke und einer 9V Batterie (eine andere externe 9V Quelle ist ebenfalls einsetzbar) möglich ist. Die dazugehörige Datei kann hier heruntergeladen werden (zum öffnen wird MS Visio 2013 benötigt): [[Datei:Blackbox-Modell.zip]]     
Um die Idee für die Entwicklungsplatine besser zu verdeutlichen, wird ein Black-Box Modell herangezogen (siehe Abbildung des Black Box Modells). In der Abbildung 3 ist der Arduino Uno in einem roten Kasten zu erkennen. Dieser stellt in diesem Modell den Hauptausgangspunkt dar, da über diesen gesteuert wird. Dabei stellen die roten Pfeile eine direkte Verbindung und die blauen eine indirekte Verbindung zum Arduino Uno dar. Weiterhin gibt die Pfeilrichtung die Richtung der Signale an. Das bedeutet, dass vom Arduino wegführende Pfeile eine Ansteuerung und zum Arduino hinführende ein Einlesen darstellen. Beispielhaft wird hier der Drehencoder aufgeführt. Dabei wird die „Drehrichtung“ (Impuls) eingelesen und verarbeitet. Weiterhin gibt das Modell einen groben Aufschluss über die Funktionsweise der Entwicklung. Dadurch soll ein schneller Überblick über die Platine gegeben werden, ohne dass es einer langen Auseinandersetzung mit dem Schaltplan bedarf. So geht bspw. aus dem Black-Box Modell deutlich hervor, dass wenn der „einfache“ DC-Motor angesteuert werden soll, dies nur über die H-Brücke und einer 9V Batterie (bzw. einer externen 9V Quelle) möglich ist. Die dazugehörige Datei kann hier heruntergeladen werden (zum Öffnen wird MS Visio 2013 benötigt): [[Datei:Blackbox-Modell.zip]]     




Zeile 131: Zeile 130:


   
   
'''Auf der Platine verbaute Teile:'''
'''Die folgende Tabelle zeigt die auf der Platine verbaute Teile:'''
 
{|width=50% border="1" cellpadding=10px align=center style = "background:rgb(250,250,250);color:rgb(0,0,0)"
Widerstand 1x 10 kOhm
|+ Tabelle 1: Materialliste Teil 1
 
! width="35%" | Bauteil
Widerstände 2x 4,7 kOhm
! width="50%" | Bezeichnung/Größe/Art
 
  ! width="30%" | Anzahl
Widerstand 2x 33 Ohm
 
Widerstände 3x 1 kOhm
 
Widerstände 2x 200 Ohm
 
Widerstand 1x 470 Ohm
 
Potentiometer 3x PO4M-LIN 100K
 
EEPROM 1x 24LC256-I/P
 
RGB-LED 1x Kingbright L-154A4SU
 
bipolare Transistoren 7x BC547B
 
MOSFET Transistor 1x IRLIZ44N
 
Diode 1x 1n4007
 
H-Brücke 1x L293D  
 
Drehencoder 1x STEC12E07
 
LED 1x rot
 
LED 1x grün
 
 
'''Bauteile außerhalb der Platine:'''
 
DC-Motor 1x einfache Lasten (bis 9 V)


DC-Motor 1x schwere Lasten (bis 50 V)
|-
|bipolare Transistoren
|BC547B
|7
|-
|Diode
|1n4007
|1
|-
|Drehencoder
|STEC12E07
|1
|-
|EEPROM
|24LC256-I/P
|1
|-
|H-Brücke
|L293D 
|1
|-
|RGB-LED
|Kingbright L-154A4SU
|1
|-
|LED
|grün
|1
|-
|LED
|rot
|1
|-
|MOSFET Transistor
|IRLIZ44N
|1
|-
|Potentiometer
|PO4M-LIN 100K
|3
|-
|Widerstand
|10 kOhm
|1
|-
|Widerstand
|33 Ohm
|2
|-
|Widerstand
|200 Ohm
|2
|-
|Widerstand
|470 Ohm
|1
|-
|Widerstand
|1 kOhm
|3
|-
|Widerstand
|4,7 kOhm
|2
|}


Batterieclip 1x


LCD-Modul 1x TC1602E-01
'''Die folgende Tabelle zeigt die Bauteile außerhalb der Platine:'''
{|width=50% border="1" cellpadding=10px align=center style = "background:rgb(250,250,250);color:rgb(0,0,0)"
|+ Tabelle 2: Materialliste Teil 2
! width="35%" | Bauteil
! width="55%" | Bezeichnung/Größe/Art
! width="30%" | Anzahl


|-
|Batterieclip
|
|1
|-
|DC-Motor
|einfache Lasten (bis 9 V)
|1
|-
|DC-Motor
|schwere Lasten (bis 50 V)
|1
|-
|DC-Motor
|schwere Lasten (bis 50 V)
|1
|-
|LCD-Modul
|TC1602E-01
|1
|}


<H3> Drehencoder </H3>
<H3> Drehencoder </H3>


[[Datei:Drehencoder.jpg|gerahmt|links|x150px|Drehencoder <ref>[http://www.reichelt.de/STEC12E07/3/index.html?&ACTION=3&LA=446&ARTICLE=73922&artnr=STEC12E07&SEARCH=ALPS+STEC12E07]''Drehencoder''. Website von reichelt. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:Drehencoder.jpg|gerahmt|links|x150px|Abbildung 4: Drehencoder<ref>[http://www.reichelt.de/STEC12E07/3/index.html?&ACTION=3&LA=446&ARTICLE=73922&artnr=STEC12E07&SEARCH=ALPS+STEC12E07]''Drehencoder''. Website von reichelt. Abgerufen am 09. Oktober 2014.</ref>]]


Der Drehencoder (siehe Bild) ist ein richtungsweisender „Schalter“. Äußerlich ähnelt dieser einem Potentiometer. Allerdings bieten einige Drehencoder nicht nur die Möglichkeit zu drehen, sondern ebenfalls einen Tastendruck. Das entscheidende bei diesen Bauteilen ist, dass die Drehbewegung vom Mikrocontroller erkannt werden kann, um somit softwaretechnisch die Bewegung auszunutzen. So ist es möglich z.B. die Rechtsbewegung auszulesen und dadurch in der Software die Inkremmentierung eines PWM-Wertes hervorzurufen. Dies ermögliche bspw. einen Motor manuell zu steuern. Die Erkennung, um welche Drehrichtung es sich handelt, ist durch den Signalverlauf in der Abbildung zu erkennen. So entsteht bei einer Drehbewegung nach rechts zuerst ein Viereckssignal auf A und dann auf B. Bei einer Linksdrehung genau umgekehrt. Die Verdrahtung dieses Bauteils kann hier([http://193.175.248.171/wiki/index.php/Projekt_29_Drehencoder_Verdrahtung]'') entnommen werden. <ref>[http://dieelektronikerseite.de/uC%20Ecke/Lections/Drehencoder%20-%20Richtungsweisender%20Schalter.htm]''Information zum Drehencoder''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>
Der Drehencoder (siehe Abbildung 4) ist ein richtungsweisender „Schalter“. Äußerlich ähnelt dieser einem Potentiometer. Allerdings bieten einige Drehencoder nicht nur die Möglichkeit einer Drehbewegung, sondern ebenfalls die eines Tastendrucks. Das Entscheidende bei diesen Bauteilen ist, dass die Drehbewegung vom Mikrocontroller erkannt werden kann, um somit softwaretechnisch die Bewegung auszunutzen. So ist es möglich z.B. die Rechtsbewegung auszulesen und dadurch in der Software die Inkremmentierung eines PWM-Wertes hervorzurufen. Dies ermöglicht bspw. die manuelle Steuerung eines Motors. Die Erkennung, um welche Drehrichtung es sich handelt, ist durch den Signalverlauf in der Abbildung 4 ebenfalls zu erkennen. So entsteht bei einer Drehbewegung nach rechts zuerst ein Viereckssignal auf A und dann auf B. Bei einer Linksdrehung genau umgekehrt. Die Verdrahtung dieses Bauteils kann hier ([http://193.175.248.171/wiki/index.php/Projekt_29_Drehencoder_Verdrahtung]'') entnommen werden.<ref>[http://dieelektronikerseite.de/uC%20Ecke/Lections/Drehencoder%20-%20Richtungsweisender%20Schalter.htm]''Information zum Drehencoder''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>




Zeile 194: Zeile 250:
<H3> RGB-LED </H3>
<H3> RGB-LED </H3>


[[Datei:RGB-LED.JPG|gerahmt|links|x150px|LED<ref>[http://www.conrad.de/ce/de/product/1050466/LED-mehrfarbig-Rot-Blau-Gruen-Rund-5-mm-200-mcd-300-mcd-1300-mcd-60-20-mA-195-V-33-V-33-V-Kingbright-L-154A4SU/?ref=detview1&rt=detview1&rb=1]''RGB-LED''. Website von conrad. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:RGB-LED.JPG|gerahmt|links|x150px|Abbildung 5: LED<ref>[http://www.conrad.de/ce/de/product/1050466/LED-mehrfarbig-Rot-Blau-Gruen-Rund-5-mm-200-mcd-300-mcd-1300-mcd-60-20-mA-195-V-33-V-33-V-Kingbright-L-154A4SU/?ref=detview1&rt=detview1&rb=1]''RGB-LED''. Website von conrad. Abgerufen am 09. Oktober 2014.</ref>]]


Die RGB-LED besteht eigentlich aus drei LEDs mit den Farben rot, grün und blau, welche in einem Gehäuse untergebracht wurden. In der Regel haben RGB-LEDs vier Pins (es gibt auch welche mit weniger und mehr Pins). Drei von den vier Pins sind jeweils für die Ansteuerung der roten, grünen und blauen LED da. Der vierte Pin stellt meistens die gemeinsame Kathode dar. Allerdings gibt es auch RGB-LEDs mit einer gemeinsamen Anode. In diesem Projekt wurde eine RGB-LED mit einer gemeinsamen Kathode verwendet. Die Verdrahtung der RGB-LED ist hier([http://193.175.248.171/wiki/index.php/Projekt_29_RGB-LED_Verdrahtung]) wiederzufinden. <ref>[http://www.conrad.de/ce/de/product/1050466/LED-mehrfarbig-Rot-Blau-Gruen-Rund-5-mm-200-mcd-300-mcd-1300-mcd-60-20-mA-195-V-33-V-33-V-Kingbright-L-154A4SU/?ref=detview1&rt=detview1&rb=1  ]''Information zur RGB-LED (siehe Datenblatt)''. Website von conrad. Abgerufen am 09. Oktober 2014.</ref>
Die RGB-LED besteht im Allgemeinen aus drei LEDs mit den Farben rot, grün und blau, welche in einem einzigen Gehäuse untergebracht wurden. In der Regel haben RGB-LEDs vier Pins (es gibt auch welche mit weniger und mehr Pins). Drei von den vier Pins sind jeweils für die Ansteuerung der roten, grünen und blauen LED da. Der vierte Pin stellt meistens die gemeinsame Kathode dar. Allerdings gibt es auch RGB-LEDs mit einer gemeinsamen Anode. In diesem Projekt wurde eine RGB-LED mit einer gemeinsamen Kathode verwendet. Die Verdrahtung der RGB-LED ist hier ([http://193.175.248.171/wiki/index.php/Projekt_29_RGB-LED_Verdrahtung]) wiederzufinden.<ref>[http://www.conrad.de/ce/de/product/1050466/LED-mehrfarbig-Rot-Blau-Gruen-Rund-5-mm-200-mcd-300-mcd-1300-mcd-60-20-mA-195-V-33-V-33-V-Kingbright-L-154A4SU/?ref=detview1&rt=detview1&rb=1  ]''Information zur RGB-LED (siehe Datenblatt)''. Website von conrad. Abgerufen am 09. Oktober 2014.</ref>




Zeile 212: Zeile 268:
<H3> H-Brücke </H3>
<H3> H-Brücke </H3>


[[Datei:H-Brücke.JPG|gerahmt|links|x150px|H-Brücke<ref>[http://www.reichelt.de/L-293-D/3/index.html?&ACTION=3&LA=446&ARTICLE=9661&artnr=L+293+D&SEARCH=L293D]''H-Brücke (H-Bridge)''. Website von reichelt. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:H-Brücke.JPG|gerahmt|links|x150px|Abbildung 6: H-Brücke<ref>[http://www.reichelt.de/L-293-D/3/index.html?&ACTION=3&LA=446&ARTICLE=9661&artnr=L+293+D&SEARCH=L293D]''H-Brücke (H-Bridge)''. Website von reichelt. Abgerufen am 09. Oktober 2014.</ref>]]


[[Datei:H-Bruecke-Schema_1.jpg|gerahmt|rechts|x100px|H-Brücke-Schema 1<ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''H-Brücke-Funktionsweise''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:H-Bruecke-Schema_1.jpg|gerahmt|rechts|x100px|Abbildung 7: H-Brücke-Schema 1<ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''H-Brücke-Funktionsweise''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>]]


[[Datei:H-Bruecke_Schema_2.jpg|gerahmt|rechts|x100px|H-Brücke-Schema 2<ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''H-Brücke-Funktionsweise''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:H-Bruecke_Schema_2.jpg|gerahmt|rechts|x100px|Abbildung 8: H-Brücke-Schema 2<ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''H-Brücke-Funktionsweise''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>]]


Die Brückenschaltung wurde in diesem Projekt in Form eines IC verwendet. Die Besonderheit einer H-Brücke ist, dass damit bspw. DC-Motoren im Uhrzeigersinn und gegen den Uhrzeigersinn bewegt werden können. Um eine schematische Funktionsweise einer H-Brücke besser darlegen zu können, wurden die Abbildungen rechts eingefügt. Aus diesen geht deutlich die Funktionsweise hervor. Wird Schalter S1 und S4 geschlossen, so dreht der Motor in die eine Richtung und bei S1 und S3 in die andere. <ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''Information zur H-Brücke''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>  
Die Brückenschaltung wurde in diesem Projekt in Form eines IC verwendet (siehe Abbildung 6). Die Besonderheit einer H-Brücke ist, dass damit bspw. DC-Motoren im Uhrzeigersinn und gegen den Uhrzeigersinn bewegt werden können. Um eine schematische Funktionsweise einer H-Brücke besser darlegen zu können, wurden die Abbildungen 7 und 8 eingefügt. Aus diesen geht deutlich die Funktionsweise hervor. Werden Schalter S1 und S4 geschlossen, so dreht sichder Motor in die eine Richtung und bei geschlossenen Schaltern S1 und S3 in die andere. Wie die H-Brücke angeschlossen werden kann, ist an dieser ([http://193.175.248.171/wiki/index.php/Projekt_29_H-Br%C3%BCcke_Verdrahtung]) Stelle hinterlegt.<ref>[http://dieelektronikerseite.de/Lections/H-Bruecke%20-%20Die%20Andersherum-Schaltung.htm]''Information zur H-Brücke''. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.</ref>  




Zeile 242: Zeile 298:
<H3> LCD-Modul </H3>
<H3> LCD-Modul </H3>


[[Datei:LCD_Modul.jpg|gerahmt|links|x100px|LCD-Modul<ref>[http://www.oppod.com/upload/products/middle/20120107052407_76209.jpg]''LCD-Modul''. Website von Vatronix. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:LCD_Modul.jpg|gerahmt|links|x100px|Abbildung 9: LCD-Modul<ref>[http://www.oppod.com/upload/products/middle/20120107052407_76209.jpg]''LCD-Modul''. Website von Vatronix. Abgerufen am 09. Oktober 2014.</ref>]]


Das LCD-Modul erlaubt es dem Anwender auf einem 16x2 Display eigene Ausgaben darzustellen. Der Verwendungszweck eines solchen Displays ist facettenreich und hängt vom Entwickler ab. Allerdings bringt das LCD-Modul auch Nachteile, da es mindestens sechs Pins für den Betrieb benötigt. Weiterhin muss eine Bibliothek in den Quellcode inkludiert werden, um das Modul ansprechen zu können. Dies resultiert in einem größeren Speicherverbrauch.   
Das LCD-Modul erlaubt es dem Anwender auf einem 16x2 Display eigene Ausgaben darzustellen (siehe Abbildung 9). Der Verwendungszweck eines solchen Displays ist facettenreich und hängt individuell vom Entwickler ab. Allerdings bringt das LCD-Modul auch den Nachteil, da es mindestens sechs Pins für den Betrieb benötigt. Weiterhin muss eine Bibliothek in den Quellcode inkludiert werden, um das Modul ansprechen zu können. Folglich gibt es einen größeren Speicherverbrauch. Die Verdrahtung des LCD-Moduls kann hier([http://193.175.248.171/wiki/index.php/Projekt_29_LCD-Modul_Verdrahtung]) entnommen werden.   




Zeile 255: Zeile 311:
<H3> EEPROM </H3>
<H3> EEPROM </H3>


[[Datei:EEPROM.JPG|gerahmt|links|x150px|EEPROM<ref>[https://content.solarbotics.com/products/photos/7f5343d941e25fbd15d185eaa7c954e7/lrg/17230-img_3318.JPG]''LCD-Modul''. Website von Solarbotics. Abgerufen am 09. Oktober 2014.</ref>]]
[[Datei:EEPROM.JPG|gerahmt|links|x150px|Abbildung 10: EEPROM<ref>[https://content.solarbotics.com/products/photos/7f5343d941e25fbd15d185eaa7c954e7/lrg/17230-img_3318.JPG]''LCD-Modul''. Website von Solarbotics. Abgerufen am 09. Oktober 2014.</ref>]]


Das EEPROM (engl. electrically erasable programmable read-only memory, dt. elektrisch löschbarer programmierbarer Nur-Lese-Speicher) dient zum Speichern von Daten. Diese können ebenfalls gelesen und gelöscht werden. Der EEPROM ist ein nicht-flüchtiger Speicher. Dadurch gehen die Daten bei ausschalten des Mikrocontrollers nicht verloren und können zu einem späteren Zeitpunkt aufgerufen werden.  
Das EEPROM (engl. electrically erasable programmable read-only memory, dt. elektrisch löschbarer programmierbarer Nur-Lese-Speicher) dient der Datenspeicherung (siehe abbildung 10). Die Daten können ebenfalls gelesen und gelöscht werden. Das EEPROM ist ein nicht-flüchtiger Speicher. Dadurch gehen die Daten beim Ausschalten des Mikrocontrollers nicht verloren und können zu einem späteren Zeitpunkt aufgerufen werden. Wie das EEPROM mit dem Arduino Uno verbunden werden kann, um dies zu beschreiben und zu lesen, ist an dieser Stelle ([http://193.175.248.171/wiki/index.php/Projekt_29_EEPROM_Verdrahtung]) hinterlegt.<ref>[http://www.itwissen.info/definition/lexikon/electrically-erasable-PROM-EEPROM-Elektrisch-loeschbares-PROM.html]''Information zum EEPROM''. Website von ITWissen. Abgerufen am 09. Oktober 2014.</ref>  
<ref>[http://www.itwissen.info/definition/lexikon/electrically-erasable-PROM-EEPROM-Elektrisch-loeschbares-PROM.html]''Information zur H-Brücke''. Website von ITWissen. Abgerufen am 09. Oktober 2014.</ref>  




Zeile 273: Zeile 328:
<H2> Schaltplan  </H2>
<H2> Schaltplan  </H2>


Die Entwicklung des Schaltplans erfolgte, wie es aus der Aufgabenstellung gefordert war, mithilfe des Programms Multisim. Insgesamt wurden zwei Platinen (Iterationen) erstellt. Diese Aufteilung hatte mehrere Gründe. Zu einem ist die Shieldgröße für ein Arduino Uno nicht beliebig erweiterbar. Zum anderen, was einen größeren Enfluss auf die Aufteilung hatte, war die Entstehung einer hohen Temperatur bei Benutzung eines MOSFETs unter hoher Last. Die Entstehende Temperatur könnte umliegende Bauteile nachteilig beeinflussen. Obwohl auf dem zweiten Shield ebenfalls sich Bauteile befinden, sind diese jedoch weitestgehend weit vom MOSFET entfernt. Weiterhin bietet die Aufteilung den Vorteil des Verwechslungsschutzes. Das bedeutet, dass für schwere Lasten das entsprechende Shield genutzt werden muss und dadurch nicht ausversehen Bauteile beschädigt werden, welche nur für einfache Lasten ausgelegt sind.
Die Entwicklung des Schaltplans erfolgte, wie es aus der Aufgabenstellung gefordert war, mithilfe des Programms Multisim. Insgesamt wurden zwei Platinen (Iterationen) erstellt (siehe Abbildung 11 und 12). Diese Aufteilung hatte mehrere Gründe. Zum einen ist die Shieldgröße für ein Arduino Uno nicht beliebig erweiterbar. Zum anderen, was einen größeren Enfluss auf die Aufteilung hatte, war die Entstehung einer hohen Temperatur bei Benutzung des MOSFETs unter hoher Last. Die entstehende Temperatur könnte umliegende Bauteile nachteilig beeinflussen. Obwohl sich auf dem zweiten Shield ebenfalls Bauteile befinden, besitzen diese einen ausreichenden Sicherheitsabstand vom MOSFET (siehe Abbildung 12). Weiterhin bietet die Aufteilung den Vorteil des Verwechslungsschutzes. Das bedeutet, dass für schwere Lasten das dafür zweite vorgesehene Shield genutzt wird und dadurch keine Bauteile (aus Versehen) beschädigt werden, welche nur für einfache Lasten ausgelegt sind.


An dieser Stelle gilt es anzumerken, dass die Shields für das Arduino Uno entwickelt wurden. Das nutzen dieser Shield unter Verwendung eines anderen Arduinos kann zu Schädigung der Shields oder des Arduinos führen.  
An dieser Stelle gilt es anzumerken, dass die Shields (ausschließlich) für das Arduino Uno entwickelt wurden. Das Nutzen dieser Shields unter der Verwendung eines anderen Arduino kann zu einer Schädigung der Shields oder des Arduino führen.  


<b> Shield 1: </b>
<b> Shield 1: </b>


[[Datei:Schaltplan_Shield1.JPG|gerahmt|links|x150px|Schaltplan Shield 1]]
[[Datei:Shield1_Schaltplan.png|gerahmt|links|x150px|Abbildung 11: Schaltplan Shield 1]]
 
Auf diesem Shield wurden die meisten Bauteile verbaut. Die Besonderheit dieses Schaltplans liegt im Motor und dem LCD-Modul. Obwohl diese auf dem Schaltplan aufgeführt sind, liegen diese Bauteile außerhalb der Platine. Der Grund hierfür liegt in der Größe und Austauschbarkeit der Komponenten. Da dieses Shield der Entwicklung dienen sollte, ist es besser keinen Motor vorzugeben, sondern es steht dem Entwickler frei den DC-Motor zu wählen. Anstelle des Motors wurden zwei Anschlüsse auf die Platine gesetzt, an welche der Motor angeschlossen werden kann. Ähnlich verhält es sich mit LCD-Modul. Weiterhin ist die RBG-LED als drei LEDs in den entsprechenden Farben dargestellt. Der Grund für die Aufteilung der RGB-LED in drei LEDs liegt in der besseren Übersicht. Außerdem lassen sich die LEDs in der verbauten RGB-LED ebenfalls einzeln ansprechen. Weiterhin sind die Bauteile wie der EEPROM und die H-Brücke auf dem Schaltplan so realisiert (Pinanschlüsse), wie es in den entsprechende Datenblätter abgebildet ist.


Der Aufbau des Schaltplans orientiert sich an dem Arduino Uno. Auf der rechten Seite des Schaltplans sind die digitalen Anschlüsse des Arduino Unos zu erkennen, während auf der linken unteren Seite die anlogen Anschlüssen zu sehen sind. Jedes Bauteil ist an einen entsprechend Pin verbunden und kann somit über das Arduino Uno gesteuert werden. Die Datei für Schaltung kann hier heruntergeladen werden (zum öffnen wird Multisim 13 benötigt): [[Datei:Schaltung_Projekt_29.zip]]  
Auf diesem Shield wurden die meisten Bauteile verbaut. Die Besonderheit dieses Schaltplans liegt im Motor und dem LCD-Modul. Obwohl diese auf dem Schaltplan aufgeführt sind, liegen diese Bauteile außerhalb der Platine. Der Grund hierfür liegt in der Größe und Austauschbarkeit der Komponenten. Da dieses Shield der Entwicklung dienen sollte, wird kein Motor vorgegeben, sodass der Entwickler den DC-Motor frei wählen kann. Anstelle des Motors wurden zwei Anschlüsse auf die Platine gesetzt, an welchen der Motor angeschlossen werden kann. Ähnlich verhält es sich mit LCD-Modul. Weiterhin ist die RBG-LED als drei LEDs in den entsprechenden Farben aufgeteilt dargestellt. Der Grund für die Aufteilung der RGB-LED in die drei LEDs liegt in der besseren Übersicht. Außerdem lassen sich die LEDs in der verbauten RGB-LED ebenfalls einzeln ansprechen. Weiterhin sind die Bauteile wie das EEPROM und die H-Brücke auf dem Schaltplan so realisiert worden (Pinanschlüsse), wie es in den entsprechende Datenblättern abgebildet ist. Der Aufbau des Schaltplans orientiert sich an dem Arduino Uno. Auf der rechten Seite des Schaltplans sind die digitalen Anschlüsse des Arduino Uno zu erkennen, während auf der linken unteren Seite die analogen Anschlüsse zu sehen sind. Jedes Bauteil ist an dem dazugehörigen Pin verbunden und kann somit über das Arduino Uno gesteuert werden. Die Datei für die Schaltung kann hier heruntergeladen werden (zum Öffnen wird Multisim 13 benötigt): [[Datei:Schaltung_Projekt_29.zip]]  




<b> Shield 2: </b>
<b> Shield 2: </b>


[[Datei:Schaltplan_Shield2.JPG|gerahmt|links|x150px|Schaltplan Shield 2]]
[[Datei:Shield2_Schaltplan.png|gerahmt|links|x150px|Abbildung 12: Schaltplan Shield 2]]


Auf dem zweiten Shield ist ebenfalls ein Motor zu erkennen. Allerdings ist dieser, wie auf dem ersten Shield, nicht auf der Platine aufgesetzt, sondern nur die Anschlüsse. Neben dem Motor wurde auf dieser Platine zwei LEDs inkl. Transistorstufe realisiert. Diese arbeiten unabhängig vom Motor. Der Schaltplan ist unter folgendem Link herunterzuladen (Schaltplan benötigt Multisim 13 zum öffnen):
Auf dem zweiten Shield ist ebenfalls ein Motor zu erkennen. Allerdings ist dieser, wie auf dem ersten Shield, nicht auf der Platine aufgesetzt, sondern nur dessen Anschlüsse. Neben dem Motor wurden auf dieser Platine zwei LEDs inkl. Transistorstufe realisiert. Diese arbeiten unabhängig vom Motor. Der Schaltplan ist unter folgendem Link herunterzuladen (zum Öffnen des Schaltplans wird  Multisim 13 benötigt):
[[Datei:Schaltung2_Projekt_29_(2).zip]]  
[[Datei:Schaltung2_Projekt_29_(2).zip]]  


Zeile 306: Zeile 359:
<H2> Platinenlayout </H2>
<H2> Platinenlayout </H2>


Das Layout der Platinen wurde, wie in der Aufgabenstellung zu entnehmen ist, mittels Ultiboard erstellt. Die Geometrie der Shields orientieren sich an dem Arduino Uno.  
Das Layout der Platinen wurde, wie in der Aufgabenstellung zu entnehmen ist, mittels Ultiboard erstellt. Die Geometrie der Shields orientiert sich an die Geometrie des Arduino Uno.  


<b> Shield 1: </b>
<b> Shield 1: </b>


[[Datei:Layout-Ansicht_Shield1.JPG|gerahmt|links|x150px|Layout Shield 1]]
[[Datei:Layout-Ansicht_Shield1.JPG|gerahmt|links|x150px|Abbildung 13: Layout Shield 1]]
[[Datei:3D-Ansicht Shield1.JPG|gerahmt|rechts|x150px|3D-Ansicht Shield 1]]
[[Datei:3D-Ansicht Shield1.JPG|gerahmt|rechts|x150px|Abbildung 14: 3D-Ansicht Shield 1]]


Bei dieser Platine wurden Leiterbahnen an der unteren und oberen Seite erstellt. Diesem Konzept liegen die Bauteile mit vielen Pins zugrunde, welche unterschiedlich an den Ardunio Uno angeschlossen werden müssen. Zwar führt solch ein Layout zu einer längeren Fertigungszeit, aber es sollte sicherstellen das die Leiterbahnen sich nicht kreuzen.
Bei dieser Platine wurden Leiterbahnen an der unteren und an der oberen Seite erstellt (siehe Abbildung 13). Diesem Konzept liegen die Bauteile mit vielen Pins zugrunde, welche unterschiedlich an den Ardunio Uno angeschlossen werden müssen. Zwar führt solch ein Layout zu einer längeren Fertigungszeit, aber es sollte sicherstellen das die Leiterbahnen sich nicht kreuzen.


Durch die Geometrie des Shields, ist es sofort ersichtlich wie dieses auf das Arduino Uno gesteckt werden muss. Weiterhin kann das Layout ebenfalls als Vorlage für zukünftige Arduino Uno Shields verwendet werden. Das Platinenlayout kann hier heruntergeladen werden (zum öffnen wird Ultiboard 13 benötigt): [[Datei:Schaltung_Projekt_29_Layout.zip]]  
Durch die Geometrie des Shields, ist es sofort ersichtlich wie dieses auf das Arduino Uno gesteckt werden muss. Weiterhin kann das Layout ebenfalls als Vorlage für zukünftige Arduino Uno Shields verwendet werden. Das Platinenlayout kann hier heruntergeladen werden (zum öffnen wird Ultiboard 13 benötigt): [[Datei:Schaltung_Projekt_29_Layout.zip]]  
Zeile 328: Zeile 381:
<b> Shield 2: </b>
<b> Shield 2: </b>


[[Datei:Layout-Ansicht_Shield2.JPG|gerahmt|links|x150px|Layout Shield 2]]
[[Datei:Layout-Ansicht_Shield2.JPG|gerahmt|links|x150px|Abbildung 15: Layout Shield 2]]
[[Datei:3D-Ansicht Shield2.JPG|gerahmt|rechts|x150px|3D-Ansicht Shield 2]]
[[Datei:3D-Ansicht Shield2.JPG|gerahmt|rechts|x150px|Abbildung 16: 3D-Ansicht Shield 2]]


Bei dieser Platine wurden Leiterbahnen, aufgrund weniger Bauteile, nur auf der Unterseite erstellt. Dies bringt den Vorteil einer schnellen Fertigung. Besonders bei dieser Platine wurde beim erstellen des Layouts auf den GND geachtet. Da dieses Shield für hohe Lasten ausgelegt ist, muss ein guter Zugang (breite Bahn) zur Masse gewährleistet sein. Das Platinenlayout kann hier heruntergeladen werden (zum öffnen wird Ultiboard 13 benötigt): [[Datei:Schaltung2_Projekt_29_Layout(2).zip]]  
Bei der zweiten Platine wurden die Leiterbahnen, aufgrund weniger Bauteile, nur auf der Unterseite erstellt (siehe Abbildung 15). Dies bringt den Vorteil einer schnellen Fertigung. Besonders bei dieser Platine wurde beim Erstellen des Layouts auf den GND geachtet. Da dieses Shield für hohe Lasten ausgelegt ist, muss ein guter Zugang (breite Bahn) zur Masse gewährleistet sein. Das Platinenlayout kann hier heruntergeladen werden (zum Öffnen wird Ultiboard 13 benötigt): [[Datei:Schaltung2_Projekt_29_Layout(2).zip]]  




Zeile 363: Zeile 416:


Drehencoder auslesen: [http://193.175.248.171/wiki/index.php/Quellcode_zum_Arduino_Drehencoder_auslesen_%28Projekt_29%29]  
Drehencoder auslesen: [http://193.175.248.171/wiki/index.php/Quellcode_zum_Arduino_Drehencoder_auslesen_%28Projekt_29%29]  
<H1> Bilder der Shields </H1>
In diesem Abschnitt werden die Bilder der Ergebnisse des Projekts 29 aufgezeigt. Die Bilder sind dabei mit Nummern und Pfeilen gekenzeichnet, sodass die wichtigsten Bauteile leicht im Bild wiedergefunden werden können.
[[Datei:Shield 1 bearbeitet.jpg|gerahmt|links|x300px|Abbildung 17: Shield 1]]
Das Shield 1 besitzt die meisten Bauteile, d.h. außer dem MOSFET und der LEDs sind alle Bauteile hier wiederzufinden (siehe Abbildung 17). Wie aus dem Bild hervorgeht, ist das LCD-Modul nicht auf der Platine fixiert. Dies bietet allerdings den Vorteil, dass beim Verwenden des Shields das LCD-Modul in eine gewünschte Position gebracht werden kann. Dadurch kann das Shield auch in ein Gehäuse verbaut werden, während die Anzeige im Blickfeld bleiben kann. In Abbildung 17 sind folgende Bauelemente zu erkenennen: <br>
1 - Motoranschluss (Minuspol) <br>
2 - Motoranschluss (Pluspol)  <br>
3 - Potentiometer            <br>
4 - H-Brücke                  <br>
5 - Drehencoder              <br>
6 - EEPROM                    <br>
7 - RGB-LED                  <br>
8 - Batterie-Klemme          <br>
9 - LCD-Modul                <br>
[[Datei:Shield 2 bearbeitet.jpg|gerahmt|links|x306px|Abbildung 18: Shield 2]]
Das zweite Shield ist mit dem MOSFET und den LEDs (inkl. Transistorstufe) ausgelegt (siehe Abbildung 18). Dieses Shield kann direkt oder auch iterativ auf das Arduino Uno gesteckt werden. Unter iterativ ist das Aufstecken des zweiten Shields auf das erste Shield zu verstehen, sodass sich der Aufbau Arduino, erstes Shield und zweites Shield ergibt. In Abbildung 18 sind folgende Bauelemente zu erkenennen: <br>
1 - Motoranschluss (Minuspol)                        <br>
2 - Motoranschluss (Pluspol)                        <br>
3 - Anschluss externe Spannungsversorgung (Minuspol) <br>
4 - Anschluss externe Spannungsversorgung (Pluspol)  <br>
5 - MOSFET                                          <br>
6 - rote LED                                        <br>
7 - grüne LED                                        <br>




Zeile 368: Zeile 458:


<H1> Fazit </H1>
<H1> Fazit </H1>
Das vorliegende Projekt war sehr interessant und sorgte für einen hohen Erfahrungswert. So konnte mit diesem Projekt Wissen von der theoretischen Entwicklung eines Schaltplans über die Fertigung (Platine fräsen/Bauteile löten) bis hin zur Ansteuerung gesammelt werden. Des Weiteren zeigt dieses Projekt eine Entwicklung eines "Produktes" von Anfang bis zum Ende auf, ähnlich wie es auch im Unternehmen abläuft. Die beiden fertigen Shields können jetzt in weiteren Projekten eingesetzt werden. Aufgrund des bereitgestellten Quellcodes in dieser Dokumentation, muss dieser nicht mehr vom Anwender umständlich auf unterschiedlichen Web-Seiten rausgesucht werden.   
Das vorliegende Projekt war sehr interessant und sorgte für einen hohen Erfahrungswert. So konnte mit diesem Projekt Wissen von der theoretischen Entwicklung eines Schaltplans über die Fertigung (Platine fräsen/Bauteile löten) bis hin zur Ansteuerung gesammelt werden. Des Weiteren zeigt dieses Projekt eine Entwicklung eines "Produktes" von Anfang bis zum Ende auf, ähnlich wie es auch im Unternehmen abläuft. Die beiden fertigen Shields können nun in weiteren Projekten eingesetzt werden. Aufgrund des bereitgestellten Quellcodes in dieser Dokumentation, muss dieser nicht mehr vom Anwender umständlich auf unterschiedlichen Web-Seiten rausgesucht werden. Die am 16.01.2015 gehaltene Projektpräsentation kann als PDF ([[Datei:Projekt 29 Präsentation PDF.zip]]) oder Powerpoint ([[Datei:Projekt 29 Präsentation PPT.zip]]) heruntergeladen werden.   


<H1> Ausblick </H1>
<H1> Ausblick </H1>
Das vorliegende Projekt bietet aufgrund diverser Bauteile, wie H-Brücke, EEPROM, LCD-Modul oder RGB-LED unterschiedliche Einsatzzwecke. Obwohl das Projekt abgeschlossen ist und die Ergebnisse vorliegen, sind Erweiterungen dieser denkbar. Beispielsweise könnte das LCD-Modul gegen ein Farbdisplay für Arduino gewechselt werden, sodass aktuelle Daten grafisch aufbereitet angezeigt werden können (z.B. Diagramme). Außerdem könnten die Shields um Schieberegister erweitert werden, welche ebenfalls eine Vielzahl an Anwendungsmöglichkeiten bieten. Auf der softwaretechnischen Seite könnten Simulink-Modelle für die vorliegenden Shields entwickelt werden, um bspw. darüber einen Motor zu steuern und die aktuellen Ergebnisse auf dem LCD-Display anzeigen oder auch im EEPROM zu speichern, damit diese später ausgewertet werden können. Insgesamt betrachtet bietet das vorliegende Projekt, samt Ergebnissen, eine solide Basis für Entwicklungen und Erweiterungen.
Das vorliegende Projekt bietet aufgrund diverser Bauteile, wie H-Brücke, EEPROM, LCD-Modul oder RGB-LED, unterschiedliche Einsatzzwecke. Obwohl das Projekt abgeschlossen ist und die Ergebnisse vorliegen, sind Erweiterungen dieser denkbar. Beispielsweise könnte das LCD-Modul gegen ein Farbdisplay für Arduino gewechselt werden, sodass aktuelle Daten grafisch aufbereitet angezeigt werden können (z. B. Diagramme). Außerdem könnten die Shields um Schieberegister erweitert werden, welche ebenfalls eine Vielzahl an Anwendungsmöglichkeiten bieten. Auf der softwaretechnischen Seite könnten Simulink-Modelle für die vorliegenden Shields entwickelt werden, um bspw. darüber einen Motor zu steuern und die aktuellen Ergebnisse auf dem LCD-Display anzeigen oder auch im EEPROM zu speichern, damit diese später ausgewertet werden können. Insgesamt betrachtet bietet das vorliegende Projekt, samt Ergebnissen, eine solide Basis für Entwicklungen und Erweiterungen.
 
<H1> Youtube-Video </H1>
Zum Projektabschluss fand eine Videoaufnahme für Youtube statt, um die wichtigsten Ergebnisse dieses Projekts aufzuzeigen. Das Youtube-Video befindet sich unter folgendem Link [https://www.youtube.com/watch?v=ZuGppRWURak&feature=youtu.be].
 
<H1> Quellen </H1>
<H1> Quellen </H1>


<references />
<references />
----
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_14/15)|Angewandte Elektrotechnik (WS 14/15)]]

Aktuelle Version vom 5. Februar 2015, 22:25 Uhr

Autoren: Andre Merkel, Anika Leinhäuser
Betreuer: Prof. Göbel

Aufgabe

Entwicklungsplatine für Arduino Uno bauen und ansteuern. Bausteine sind mindestens Drehencoder, LEDs inkl. Transistorstufe, RGB-LED inkl. Transistorstufe, MOSFET für große Last, H-Brücke, EEPROM, 3 Potis, Display.


Erwartungen an Ihre Projektlösung

  • Erstellung eines Konzepts
  • Entwurf des Schaltplans in Multisim/Ultiboard
  • Erstellung der Platine als ArduinioShield (ggf. in mehreren Iterationen)
  • Programmierung mit C
  • Ansteuern/Auslesen der Aktoren/Sensoren
  • Programmierung von Beispielanwendungen
  • Test und wiss. Dokumentation
  • Dokumentation der technischen Funktion der verwendeten Bauteile
  • Live Vorführung während der Abschlusspräsentation

Schwierigkeitsgrad

Anspruchsvoll (***)


Einleitung

Im Rahmen der Lehrveranstaltung „Angewandte Elektrotechnik“ des Studiengangs „Business and Systems Engineering“ im Wintersemester 2014/15 gab es die Aufgabe, ein Projekt im Bereich der Elektro- und Regelungstechnik durchzuführen. Die vorliegende Dokumentation befasst sich mit dem Entwurf und der Ansteuerung einer Entwicklungsplatine für einen Mikrocontroller.

Detailliert bestand die Aufgabe darin, eine Entwicklungsplatine für den Mikrocontroller des Arduino Uno zu bauen und anzusteuern. Dabei waren mindestens die Bauelemente Drehencoder, LEDs inklusive Transistorstufe, RGB-LED inklusive Transistorstufe, MOSFET für große Lasten, H-Brücke, EEPROM, drei Potentiometer sowie ein Display zur Ansteuerung zu verwenden. Die gestellten Erwartungen lagen in der Erstellung eines Konzepts sowie in einem Entwurf des Schaltplans in der Software Multisim bzw. Ultiboard. Des Weiteren sollte die Entwicklungsplatine als ArduinoShield erstellt werden. Neben der Programmierung in C wurde ein Ansteuern der Aktoren sowie ein Auslesen der Sensoren gefordert, sofern diese verbaut wurden. Darüber hinaus beinhaltete die Aufgabe die Programmierung von Beispielaufgaben. Außerdem waren Tests der entwickelten Platine durchzuführen und wissenschaftlich zu dokumentieren. Die Dokumentation der technischen Funktion der verwendeten Bauteile und eine Live-Vorführung während der Abschlusspräsentation stellten ebenfalls Erwartungen dar.


Konzept (Projektplanung)

Die folgenden Punkte geben das Projektkonzept stichwortartig wieder:


0. Festlegung des Projektthemas innerhalb der Auftaktveranstaltung


1. Projektvorbereitung

1.1. Recherche und Austausch von Informationen zur Aufgabenstellung

1.2. Organisation und Planung der anstehenden Aufgaben

1.3. Erstellung der Materialiste (BOM)


2. Projektdurchführung

2.1. Detaillierte Konzepterstellung (Schaltungsidee als Black-Box-Modell entwerfen)

2.2. Entwicklung der Ansteuerungssoftware und Testen dieser mittels Realisierung der Schaltungen auf einem Steckbrett und ggf. Verbesserung durchführen

2.3. Schaltungsentwurf in Multisim

2.4. Erstellung des Platinenlayouts in Ultiboard

2.5. Fertigen der Platinen und Anlöten der Bauteile

2.6. Vereinigung von Hardware und Software

2.7. Testen der Ansteuerung und ggf. Verbesserung durchführen


3. Projektabschluss

3.1. Auswertung des Projekts

3.2. Dokumentation abschließen


Die detaillierte Projektplanung werden durch das Gantt-Diagramm und durch die Zeitachse erfasst, welche mit MS Project 2013 erstellt wurden. Während der Projektzeit (19.09.2014-16.01.2015) erfolgte eine stetige Verfolgung, ob alle Vorgänge und Meilensteine rechtzeitig einghalten wurden. Das Gantt-Diagramm ist im Folgenden in der linken Abbildung dargestellt. Die Zeitachse befindet sich auf dem rechten Bild (siehe Abbildung 2).


Abbildung 1: Projektablaufplan des Projekts 29


Abbildung 2: Zeitachse des Projekts 29



















Realisierung

Idee

Abbildung 3: Darstellung des Black-Box Modells für die Entwicklung

Die Idee für die Entwicklungsplatine ist der Entwurf einer DC-Motorsteuerung. Dabei soll der Motor jedoch nicht nur einfach ein- bzw. ausgeschaltet werden können, sondern mithilfe einer PWM angesteuert werden. Dadurch sind unterschiedliche Geschwindigkeiten des Motors möglich. Neben dem DC-Motor für einfache Lasten ist noch ein weiterer DC-Motoranschluss für schwere Lasten vorgesehen. Der Einsatz von Potentiometern, Drehencoder, EEPROM sowie einem LCD-Modul schaffen dem Anwender unterschiedliche Möglichkeiten bei der Motorsteuerung.

Um die Idee für die Entwicklungsplatine besser zu verdeutlichen, wird ein Black-Box Modell herangezogen (siehe Abbildung des Black Box Modells). In der Abbildung 3 ist der Arduino Uno in einem roten Kasten zu erkennen. Dieser stellt in diesem Modell den Hauptausgangspunkt dar, da über diesen gesteuert wird. Dabei stellen die roten Pfeile eine direkte Verbindung und die blauen eine indirekte Verbindung zum Arduino Uno dar. Weiterhin gibt die Pfeilrichtung die Richtung der Signale an. Das bedeutet, dass vom Arduino wegführende Pfeile eine Ansteuerung und zum Arduino hinführende ein Einlesen darstellen. Beispielhaft wird hier der Drehencoder aufgeführt. Dabei wird die „Drehrichtung“ (Impuls) eingelesen und verarbeitet. Weiterhin gibt das Modell einen groben Aufschluss über die Funktionsweise der Entwicklung. Dadurch soll ein schneller Überblick über die Platine gegeben werden, ohne dass es einer langen Auseinandersetzung mit dem Schaltplan bedarf. So geht bspw. aus dem Black-Box Modell deutlich hervor, dass wenn der „einfache“ DC-Motor angesteuert werden soll, dies nur über die H-Brücke und einer 9V Batterie (bzw. einer externen 9V Quelle) möglich ist. Die dazugehörige Datei kann hier heruntergeladen werden (zum Öffnen wird MS Visio 2013 benötigt): Datei:Blackbox-Modell.zip


Verwendete Bauteile

In diesem Abschnitt erfolgt die Auflistung aller verwendeten Bauteile im Projekt. Die wichtigsten Bauteile werden in den entsprechenden Unterkapiteln näher betrachtet.


Die folgende Tabelle zeigt die auf der Platine verbaute Teile:

Tabelle 1: Materialliste Teil 1
Bauteil Bezeichnung/Größe/Art Anzahl
bipolare Transistoren BC547B 7
Diode 1n4007 1
Drehencoder STEC12E07 1
EEPROM 24LC256-I/P 1
H-Brücke L293D 1
RGB-LED Kingbright L-154A4SU 1
LED grün 1
LED rot 1
MOSFET Transistor IRLIZ44N 1
Potentiometer PO4M-LIN 100K 3
Widerstand 10 kOhm 1
Widerstand 33 Ohm 2
Widerstand 200 Ohm 2
Widerstand 470 Ohm 1
Widerstand 1 kOhm 3
Widerstand 4,7 kOhm 2


Die folgende Tabelle zeigt die Bauteile außerhalb der Platine:

Tabelle 2: Materialliste Teil 2
Bauteil Bezeichnung/Größe/Art Anzahl
Batterieclip 1
DC-Motor einfache Lasten (bis 9 V) 1
DC-Motor schwere Lasten (bis 50 V) 1
DC-Motor schwere Lasten (bis 50 V) 1
LCD-Modul TC1602E-01 1

Drehencoder

Abbildung 4: Drehencoder[1]

Der Drehencoder (siehe Abbildung 4) ist ein richtungsweisender „Schalter“. Äußerlich ähnelt dieser einem Potentiometer. Allerdings bieten einige Drehencoder nicht nur die Möglichkeit einer Drehbewegung, sondern ebenfalls die eines Tastendrucks. Das Entscheidende bei diesen Bauteilen ist, dass die Drehbewegung vom Mikrocontroller erkannt werden kann, um somit softwaretechnisch die Bewegung auszunutzen. So ist es möglich z.B. die Rechtsbewegung auszulesen und dadurch in der Software die Inkremmentierung eines PWM-Wertes hervorzurufen. Dies ermöglicht bspw. die manuelle Steuerung eines Motors. Die Erkennung, um welche Drehrichtung es sich handelt, ist durch den Signalverlauf in der Abbildung 4 ebenfalls zu erkennen. So entsteht bei einer Drehbewegung nach rechts zuerst ein Viereckssignal auf A und dann auf B. Bei einer Linksdrehung genau umgekehrt. Die Verdrahtung dieses Bauteils kann hier ([12]) entnommen werden.[2]






RGB-LED

Abbildung 5: LED[3]

Die RGB-LED besteht im Allgemeinen aus drei LEDs mit den Farben rot, grün und blau, welche in einem einzigen Gehäuse untergebracht wurden. In der Regel haben RGB-LEDs vier Pins (es gibt auch welche mit weniger und mehr Pins). Drei von den vier Pins sind jeweils für die Ansteuerung der roten, grünen und blauen LED da. Der vierte Pin stellt meistens die gemeinsame Kathode dar. Allerdings gibt es auch RGB-LEDs mit einer gemeinsamen Anode. In diesem Projekt wurde eine RGB-LED mit einer gemeinsamen Kathode verwendet. Die Verdrahtung der RGB-LED ist hier ([13]) wiederzufinden.[4]







H-Brücke

Abbildung 6: H-Brücke[5]
Abbildung 7: H-Brücke-Schema 1[6]
Abbildung 8: H-Brücke-Schema 2[7]

Die Brückenschaltung wurde in diesem Projekt in Form eines IC verwendet (siehe Abbildung 6). Die Besonderheit einer H-Brücke ist, dass damit bspw. DC-Motoren im Uhrzeigersinn und gegen den Uhrzeigersinn bewegt werden können. Um eine schematische Funktionsweise einer H-Brücke besser darlegen zu können, wurden die Abbildungen 7 und 8 eingefügt. Aus diesen geht deutlich die Funktionsweise hervor. Werden Schalter S1 und S4 geschlossen, so dreht sichder Motor in die eine Richtung und bei geschlossenen Schaltern S1 und S3 in die andere. Wie die H-Brücke angeschlossen werden kann, ist an dieser ([14]) Stelle hinterlegt.[8]











LCD-Modul

Abbildung 9: LCD-Modul[9]

Das LCD-Modul erlaubt es dem Anwender auf einem 16x2 Display eigene Ausgaben darzustellen (siehe Abbildung 9). Der Verwendungszweck eines solchen Displays ist facettenreich und hängt individuell vom Entwickler ab. Allerdings bringt das LCD-Modul auch den Nachteil, da es mindestens sechs Pins für den Betrieb benötigt. Weiterhin muss eine Bibliothek in den Quellcode inkludiert werden, um das Modul ansprechen zu können. Folglich gibt es einen größeren Speicherverbrauch. Die Verdrahtung des LCD-Moduls kann hier([15]) entnommen werden.





EEPROM

Abbildung 10: EEPROM[10]

Das EEPROM (engl. electrically erasable programmable read-only memory, dt. elektrisch löschbarer programmierbarer Nur-Lese-Speicher) dient der Datenspeicherung (siehe abbildung 10). Die Daten können ebenfalls gelesen und gelöscht werden. Das EEPROM ist ein nicht-flüchtiger Speicher. Dadurch gehen die Daten beim Ausschalten des Mikrocontrollers nicht verloren und können zu einem späteren Zeitpunkt aufgerufen werden. Wie das EEPROM mit dem Arduino Uno verbunden werden kann, um dies zu beschreiben und zu lesen, ist an dieser Stelle ([16]) hinterlegt.[11]







Schaltplan

Die Entwicklung des Schaltplans erfolgte, wie es aus der Aufgabenstellung gefordert war, mithilfe des Programms Multisim. Insgesamt wurden zwei Platinen (Iterationen) erstellt (siehe Abbildung 11 und 12). Diese Aufteilung hatte mehrere Gründe. Zum einen ist die Shieldgröße für ein Arduino Uno nicht beliebig erweiterbar. Zum anderen, was einen größeren Enfluss auf die Aufteilung hatte, war die Entstehung einer hohen Temperatur bei Benutzung des MOSFETs unter hoher Last. Die entstehende Temperatur könnte umliegende Bauteile nachteilig beeinflussen. Obwohl sich auf dem zweiten Shield ebenfalls Bauteile befinden, besitzen diese einen ausreichenden Sicherheitsabstand vom MOSFET (siehe Abbildung 12). Weiterhin bietet die Aufteilung den Vorteil des Verwechslungsschutzes. Das bedeutet, dass für schwere Lasten das dafür zweite vorgesehene Shield genutzt wird und dadurch keine Bauteile (aus Versehen) beschädigt werden, welche nur für einfache Lasten ausgelegt sind.

An dieser Stelle gilt es anzumerken, dass die Shields (ausschließlich) für das Arduino Uno entwickelt wurden. Das Nutzen dieser Shields unter der Verwendung eines anderen Arduino kann zu einer Schädigung der Shields oder des Arduino führen.

Shield 1:

Abbildung 11: Schaltplan Shield 1

Auf diesem Shield wurden die meisten Bauteile verbaut. Die Besonderheit dieses Schaltplans liegt im Motor und dem LCD-Modul. Obwohl diese auf dem Schaltplan aufgeführt sind, liegen diese Bauteile außerhalb der Platine. Der Grund hierfür liegt in der Größe und Austauschbarkeit der Komponenten. Da dieses Shield der Entwicklung dienen sollte, wird kein Motor vorgegeben, sodass der Entwickler den DC-Motor frei wählen kann. Anstelle des Motors wurden zwei Anschlüsse auf die Platine gesetzt, an welchen der Motor angeschlossen werden kann. Ähnlich verhält es sich mit LCD-Modul. Weiterhin ist die RBG-LED als drei LEDs in den entsprechenden Farben aufgeteilt dargestellt. Der Grund für die Aufteilung der RGB-LED in die drei LEDs liegt in der besseren Übersicht. Außerdem lassen sich die LEDs in der verbauten RGB-LED ebenfalls einzeln ansprechen. Weiterhin sind die Bauteile wie das EEPROM und die H-Brücke auf dem Schaltplan so realisiert worden (Pinanschlüsse), wie es in den entsprechende Datenblättern abgebildet ist. Der Aufbau des Schaltplans orientiert sich an dem Arduino Uno. Auf der rechten Seite des Schaltplans sind die digitalen Anschlüsse des Arduino Uno zu erkennen, während auf der linken unteren Seite die analogen Anschlüsse zu sehen sind. Jedes Bauteil ist an dem dazugehörigen Pin verbunden und kann somit über das Arduino Uno gesteuert werden. Die Datei für die Schaltung kann hier heruntergeladen werden (zum Öffnen wird Multisim 13 benötigt): Datei:Schaltung Projekt 29.zip


Shield 2:

Abbildung 12: Schaltplan Shield 2

Auf dem zweiten Shield ist ebenfalls ein Motor zu erkennen. Allerdings ist dieser, wie auf dem ersten Shield, nicht auf der Platine aufgesetzt, sondern nur dessen Anschlüsse. Neben dem Motor wurden auf dieser Platine zwei LEDs inkl. Transistorstufe realisiert. Diese arbeiten unabhängig vom Motor. Der Schaltplan ist unter folgendem Link herunterzuladen (zum Öffnen des Schaltplans wird Multisim 13 benötigt): Datei:Schaltung2 Projekt 29 (2).zip







Platinenlayout

Das Layout der Platinen wurde, wie in der Aufgabenstellung zu entnehmen ist, mittels Ultiboard erstellt. Die Geometrie der Shields orientiert sich an die Geometrie des Arduino Uno.

Shield 1:

Abbildung 13: Layout Shield 1
Abbildung 14: 3D-Ansicht Shield 1

Bei dieser Platine wurden Leiterbahnen an der unteren und an der oberen Seite erstellt (siehe Abbildung 13). Diesem Konzept liegen die Bauteile mit vielen Pins zugrunde, welche unterschiedlich an den Ardunio Uno angeschlossen werden müssen. Zwar führt solch ein Layout zu einer längeren Fertigungszeit, aber es sollte sicherstellen das die Leiterbahnen sich nicht kreuzen.

Durch die Geometrie des Shields, ist es sofort ersichtlich wie dieses auf das Arduino Uno gesteckt werden muss. Weiterhin kann das Layout ebenfalls als Vorlage für zukünftige Arduino Uno Shields verwendet werden. Das Platinenlayout kann hier heruntergeladen werden (zum öffnen wird Ultiboard 13 benötigt): Datei:Schaltung Projekt 29 Layout.zip






Shield 2:

Abbildung 15: Layout Shield 2
Abbildung 16: 3D-Ansicht Shield 2

Bei der zweiten Platine wurden die Leiterbahnen, aufgrund weniger Bauteile, nur auf der Unterseite erstellt (siehe Abbildung 15). Dies bringt den Vorteil einer schnellen Fertigung. Besonders bei dieser Platine wurde beim Erstellen des Layouts auf den GND geachtet. Da dieses Shield für hohe Lasten ausgelegt ist, muss ein guter Zugang (breite Bahn) zur Masse gewährleistet sein. Das Platinenlayout kann hier heruntergeladen werden (zum Öffnen wird Ultiboard 13 benötigt): Datei:Schaltung2 Projekt 29 Layout(2).zip








Software zur Ansteuerung

In diesem Abschnitt werden die Quellcodes für die Ansteuerungen behandelt.

DC-Motorsteuerung mit einer H-Brücke: [17]

LCD-Modul ansteuern: [18]

EEPROM ansteuern: [19]

DC-Motor ansteuern (hohe Last): [20]

RGB-LED und LEDs ansteuern: [21]

Potentiometer auslesen: [22]

Drehencoder auslesen: [23]

Bilder der Shields

In diesem Abschnitt werden die Bilder der Ergebnisse des Projekts 29 aufgezeigt. Die Bilder sind dabei mit Nummern und Pfeilen gekenzeichnet, sodass die wichtigsten Bauteile leicht im Bild wiedergefunden werden können.

Abbildung 17: Shield 1

Das Shield 1 besitzt die meisten Bauteile, d.h. außer dem MOSFET und der LEDs sind alle Bauteile hier wiederzufinden (siehe Abbildung 17). Wie aus dem Bild hervorgeht, ist das LCD-Modul nicht auf der Platine fixiert. Dies bietet allerdings den Vorteil, dass beim Verwenden des Shields das LCD-Modul in eine gewünschte Position gebracht werden kann. Dadurch kann das Shield auch in ein Gehäuse verbaut werden, während die Anzeige im Blickfeld bleiben kann. In Abbildung 17 sind folgende Bauelemente zu erkenennen:
1 - Motoranschluss (Minuspol)
2 - Motoranschluss (Pluspol)
3 - Potentiometer
4 - H-Brücke
5 - Drehencoder
6 - EEPROM
7 - RGB-LED
8 - Batterie-Klemme
9 - LCD-Modul

Abbildung 18: Shield 2





Das zweite Shield ist mit dem MOSFET und den LEDs (inkl. Transistorstufe) ausgelegt (siehe Abbildung 18). Dieses Shield kann direkt oder auch iterativ auf das Arduino Uno gesteckt werden. Unter iterativ ist das Aufstecken des zweiten Shields auf das erste Shield zu verstehen, sodass sich der Aufbau Arduino, erstes Shield und zweites Shield ergibt. In Abbildung 18 sind folgende Bauelemente zu erkenennen:
1 - Motoranschluss (Minuspol)
2 - Motoranschluss (Pluspol)
3 - Anschluss externe Spannungsversorgung (Minuspol)
4 - Anschluss externe Spannungsversorgung (Pluspol)
5 - MOSFET
6 - rote LED
7 - grüne LED






Fazit

Das vorliegende Projekt war sehr interessant und sorgte für einen hohen Erfahrungswert. So konnte mit diesem Projekt Wissen von der theoretischen Entwicklung eines Schaltplans über die Fertigung (Platine fräsen/Bauteile löten) bis hin zur Ansteuerung gesammelt werden. Des Weiteren zeigt dieses Projekt eine Entwicklung eines "Produktes" von Anfang bis zum Ende auf, ähnlich wie es auch im Unternehmen abläuft. Die beiden fertigen Shields können nun in weiteren Projekten eingesetzt werden. Aufgrund des bereitgestellten Quellcodes in dieser Dokumentation, muss dieser nicht mehr vom Anwender umständlich auf unterschiedlichen Web-Seiten rausgesucht werden. Die am 16.01.2015 gehaltene Projektpräsentation kann als PDF (Datei:Projekt 29 Präsentation PDF.zip) oder Powerpoint (Datei:Projekt 29 Präsentation PPT.zip) heruntergeladen werden.

Ausblick

Das vorliegende Projekt bietet aufgrund diverser Bauteile, wie H-Brücke, EEPROM, LCD-Modul oder RGB-LED, unterschiedliche Einsatzzwecke. Obwohl das Projekt abgeschlossen ist und die Ergebnisse vorliegen, sind Erweiterungen dieser denkbar. Beispielsweise könnte das LCD-Modul gegen ein Farbdisplay für Arduino gewechselt werden, sodass aktuelle Daten grafisch aufbereitet angezeigt werden können (z. B. Diagramme). Außerdem könnten die Shields um Schieberegister erweitert werden, welche ebenfalls eine Vielzahl an Anwendungsmöglichkeiten bieten. Auf der softwaretechnischen Seite könnten Simulink-Modelle für die vorliegenden Shields entwickelt werden, um bspw. darüber einen Motor zu steuern und die aktuellen Ergebnisse auf dem LCD-Display anzeigen oder auch im EEPROM zu speichern, damit diese später ausgewertet werden können. Insgesamt betrachtet bietet das vorliegende Projekt, samt Ergebnissen, eine solide Basis für Entwicklungen und Erweiterungen.

Youtube-Video

Zum Projektabschluss fand eine Videoaufnahme für Youtube statt, um die wichtigsten Ergebnisse dieses Projekts aufzuzeigen. Das Youtube-Video befindet sich unter folgendem Link [24].

Quellen

  1. [1]Drehencoder. Website von reichelt. Abgerufen am 09. Oktober 2014.
  2. [2]Information zum Drehencoder. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.
  3. [3]RGB-LED. Website von conrad. Abgerufen am 09. Oktober 2014.
  4. [4]Information zur RGB-LED (siehe Datenblatt). Website von conrad. Abgerufen am 09. Oktober 2014.
  5. [5]H-Brücke (H-Bridge). Website von reichelt. Abgerufen am 09. Oktober 2014.
  6. [6]H-Brücke-Funktionsweise. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.
  7. [7]H-Brücke-Funktionsweise. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.
  8. [8]Information zur H-Brücke. Website von dieelektronikerseite. Abgerufen am 09. Oktober 2014.
  9. [9]LCD-Modul. Website von Vatronix. Abgerufen am 09. Oktober 2014.
  10. [10]LCD-Modul. Website von Solarbotics. Abgerufen am 09. Oktober 2014.
  11. [11]Information zum EEPROM. Website von ITWissen. Abgerufen am 09. Oktober 2014.



→ zurück zum Hauptartikel: Angewandte Elektrotechnik (WS 14/15)