{"id":206,"date":"2018-07-15T17:59:46","date_gmt":"2018-07-15T15:59:46","guid":{"rendered":"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/?page_id=206"},"modified":"2018-07-15T17:59:46","modified_gmt":"2018-07-15T15:59:46","slug":"lcd","status":"publish","type":"page","link":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/interface\/lcd\/","title":{"rendered":"LCD"},"content":{"rendered":"<p>Zur Anzeige der uns \u00fcbergebenen Daten verwenden wir eine LCD, die wir \u00fcber den Mikrocontroller Atmega32 ansteuern. Dieser geh\u00f6rt zu den sogenannten AVR-Mikrocontrollern des Herstellers Atmel. Faktoren wie einer leichten Zug\u00e4nglichkeit f\u00fcr Anf\u00e4nger, einer m\u00f6glichen In-System-Programmierung und kostenlos verf\u00fcgbarer Programme sprechen f\u00fcr dessen Wahl.<\/p>\n<div id=\"attachment_207\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/bsb_lcd.png\"><img aria-describedby=\"caption-attachment-207\" loading=\"lazy\" class=\"wp-image-207 size-medium\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/bsb_lcd-300x151.png\" alt=\"bsb_lcd\" width=\"300\" height=\"151\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/bsb_lcd-300x151.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/bsb_lcd.png 399w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-207\" class=\"wp-caption-text\">Blockschaltbild LCD Steuerung<\/p><\/div>\n<p>LCD, Mikrocontroller und die anderen Bauteile ben\u00f6igen alle eine Spannungsversorgung von 5V und insgesamt rund 150 mA. Besonderheiten sind u.a. die Verschaltung eines Potentiometers an die LCD zur Einstellung der gewollten Helligkeit des Displays und der Quarzkristall als externer Taktgeber f\u00fcr die UART-Kommunikation mit dem Microcontroller der Speichergruppe. Der Mikrocontroller wird zus\u00e4tzlich mit einem Reset-Button verschaltet.<\/p>\n<p>Der eingesetzte Display ist ein LCD 16&#215;2. Das urspr\u00fcngliche geplante GLCD 128&#215;64 wurde verworfen, da wir es auf dem Steckbrett nicht zum funktionieren bringen konnten. Das Display besteht aus 2 Zeilen mit je 16 Zeichen und somit ausreichend Platz um das Men\u00fc und die Werte f\u00fcr das Projekt anzuzeigen.<\/p>\n<p>Im Rahmen unseres Projektes programmieren wir in der Atmel-Umgebung mit C-Code. Zun\u00e4chst m\u00fcssen die Ports initialisiert werden. Anschlie\u00dfend geht es im Wesentlichen darum, Daten auf die Pins zu legen und die Visualisierung durch Shiften von Daten auf bestimmte, designierte Ports und das Setzen von Highs und Lows an den Ports, umzusetzen.<\/p>\n<p>Am Ende m\u00f6chten wir einen Bildschirm erschaffen, durch welches wir anhand eines Steuerungskreuzes durch Haupt- sowie Untermen\u00fcs (\u00e4hnlich wie eine Baumstruktur) navigieren k\u00f6nnen, die uns Sensordaten ausgeben.<\/p>\n<p>Die Programmierung des Microcontrollers erfolgt mit C. Zuerst werden die entrsprechenden Ports und Pins f\u00fcr die LCD und die Buttons initialisiert. Anschlie\u00dfend wird die Men\u00fcstruktur erstellt und mit Werten gef\u00fcllt. Der restliche Code befindet sich in einer endlosen while(1)-Schleife. Darin wird zuerst \u00fcberpr\u00fcft ob ein Button bet\u00e4tigt, wurde und entsprechend reagiert (siehe Steuerung). Je nach Eingabe muss dann anschlie\u00dfend die LCD aktualisiert werden.<\/p>\n<p>Die Men\u00fcstruktur wurde als Array aus C-Structs realisiert. Jeder Men\u00fceintrag ist in einem solchen Struct gespeichert, welches den Namen (z.B. Ec-Wert), Ist-Wert, Soll-Wert, Minimal- und Maximalwerte und die Schrittweite (relevant f\u00fcr die Ver\u00e4nderung des Soll-Wertes) beinhaltet. Weiterhin ist das Men\u00fc in 3 Ebenen gegliedert. In der ersten Ebene werden die Bezeichnungen der Paramter angezeigt. Diese lauten:<\/p>\n<ul>\n<li>EC-Wert<\/li>\n<li>\u00a0pH-Wert<\/li>\n<li>\u00a0Pumptaktung<\/li>\n<li>\u00a0Luftfeuchte<\/li>\n<li>\u00a0Temperatur<\/li>\n<li>\u00a0Lichtst\u00e4rke<\/li>\n<li>\u00a0Lichtfarbe<\/li>\n<li>\u00a0F\u00fcllstand<\/li>\n<\/ul>\n<p>In der zweiten Ebene werden dann Ist- und Soll-Werte des jeweiligen Parameters angezeigt und in der dritten und letzen Ebene kann der Soll-Wert angepasst werden.<\/p>\n<p>Die Men\u00fcsteuerung funktioniert \u00fcber 4 Buttons die wie ein Steuerkreuz angeordnet sind. Links: Eine Ebene hoch bzw. Abbrechen, Rechts: Eine Ebene runter, bzw. Best\u00e4tigen, Hoch: Geh zu vorherigen Men\u00fceintrag, Runter: Geh zu n\u00e4chsten Men\u00fceintrag. Der Reset-Button, started den Microcontroller neu und der letze Button dient zur Aktualisierung der Werte. Wird der Button bet\u00e4tigt, sendet der Micro-Controller durch den DVI-Stecker ein Signal an die Speichergruppe und die UART-Kommunikation beginnt. Dabei, sendet die LCD-Gruppe die eingestellten Soll-Werte an die Speichergruppe und empf\u00e4ngt im Gegenzug die aktuellen Ist-Werte.<\/p>\n<p>Hier die Schaltung und verwendete Bauteile:<\/p>\n<div id=\"attachment_208\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineSchaltplan-Kopya.png\"><img aria-describedby=\"caption-attachment-208\" loading=\"lazy\" class=\"wp-image-208 size-large\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineSchaltplan-Kopya-1024x987.png\" alt=\"Schaltung LCD\" width=\"640\" height=\"617\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineSchaltplan-Kopya-1024x987.png 1024w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineSchaltplan-Kopya-300x289.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineSchaltplan-Kopya.png 1705w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-208\" class=\"wp-caption-text\">Schaltung LCD<\/p><\/div>\n<p>Bauteile:<\/p>\n<ul>\n<li>Microprozessor: Atmega32<\/li>\n<li>LCD 16&#215;2 mit 10 kOhm Poti zum Kontrast einstellen<\/li>\n<li>6-Pol-Anschluss f\u00fcr Programmer<\/li>\n<li>VGA-Anschluss f\u00fcr UART-Kommunikation<\/li>\n<li>6 Buttons mit je einem 10 kOhm Widerstand<\/li>\n<li>16MHz Quarzkristall mit 2 22pF Kondesatoren zwischen Kristall und GND<\/li>\n<li>2 100 nF Kondensatoren zwischen VCC und GND des uC<\/li>\n<li>LED mit 220 Ohm Widerstand als Strombegrenzung<\/li>\n<\/ul>\n<p>Nachdem die Schaltung erfolgreich auf dem Steckbrett funktionierte, erfoglte das layouten mit EAGLE, \u00e4tzen und l\u00f6ten der Platine.<\/p>\n<div id=\"attachment_209\" style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineLayout-Kopya.png\"><img aria-describedby=\"caption-attachment-209\" loading=\"lazy\" class=\"wp-image-209 size-full\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineLayout-Kopya.png\" alt=\"Platinenlayout LCD\" width=\"600\" height=\"1003\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineLayout-Kopya.png 600w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/LCDPlatineLayout-Kopya-179x300.png 179w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-209\" class=\"wp-caption-text\">Platinenlayout LCD<\/p><\/div>\n<div id=\"attachment_210\" style=\"width: 586px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/Platine-Kopya.jpg\"><img aria-describedby=\"caption-attachment-210\" loading=\"lazy\" class=\"wp-image-210 size-large\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/Platine-Kopya-576x1024.jpg\" alt=\"Fertige Platine\" width=\"576\" height=\"1024\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/Platine-Kopya-576x1024.jpg 576w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/Platine-Kopya-169x300.jpg 169w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-content\/uploads\/sites\/23\/2018\/07\/Platine-Kopya.jpg 900w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/a><p id=\"caption-attachment-210\" class=\"wp-caption-text\">Fertige Platine<\/p><\/div>\n<p>Quellen:<\/p>\n<ul>\n<li>https:\/\/www.mikrocontroller.net\/articles\/AVR<\/li>\n<li>http:\/\/www.electronicwings.com\/avr-atmega\/graphical-lcd-128&#215;64-interfacing-with-atmega1632<\/li>\n<li>https:\/\/electrosome.com\/interfacing-lcd-atmega32-microcontroller-atmel-studio\/<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Zur Anzeige der uns \u00fcbergebenen Daten verwenden wir eine LCD, die wir \u00fcber den Mikrocontroller Atmega32 ansteuern. Dieser geh\u00f6rt zu den sogenannten AVR-Mikrocontrollern des Herstellers Atmel. Faktoren wie einer leichten Zug\u00e4nglichkeit f\u00fcr Anf\u00e4nger, einer m\u00f6glichen In-System-Programmierung und kostenlos verf\u00fcgbarer Programme &hellip; <a href=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/interface\/lcd\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":71,"featured_media":0,"parent":54,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/pages\/206"}],"collection":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/comments?post=206"}],"version-history":[{"count":1,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/pages\/206\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/pages\/206\/revisions\/211"}],"up":[{"embeddable":true,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/pages\/54"}],"wp:attachment":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/greenlab\/wp-json\/wp\/v2\/media?parent=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}