{"id":102,"date":"2020-10-04T15:22:36","date_gmt":"2020-10-04T13:22:36","guid":{"rendered":"https:\/\/www.picademie.nl\/?p=102"},"modified":"2025-05-23T13:19:28","modified_gmt":"2025-05-23T11:19:28","slug":"16x2-lcd-displayhd44780-lcd-controller","status":"publish","type":"post","link":"https:\/\/www.picademie.nl\/index.php\/2020\/10\/04\/16x2-lcd-displayhd44780-lcd-controller\/","title":{"rendered":"16&#215;2 LCD Display"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">Een leuke tutorial is het aansturen van een LCD display zoals het type LCD16x2, dit staat voor 16 karakters in 2 rijen. Ik gebruik hier de versie waarop de <span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>I2C<\/strong><\/span> (uitgesproken: ai-toe-sie) interface gemonteerd is, of via een breadboard met het display verbonden is.<\/pre>\n\n\n\n<p><strong>Van 12 naar 4 draden met de I2C interface<\/strong><br>Zonder de I2C-interface moet het display met zo&#8217;n 12 verbindingsdraden aangesloten worden. Met een I2C interface kun je met slechts 4 draden het LCD16x2 display of zijn grotere broer, de LCD20x4, met de Raspberry Pi verbinden. Het 16&#215;2 LCD display is met en zonder zo\u2019n I2C interface aan te schaffen. Het heeft de voorkeur dat de interface al op het display gemonteerd is.<\/p>\n\n\n\n<p><strong>Het LCD display<\/strong><br>De meeste van de beschikbare 16 karakters \u00d7 2 regels LCD display modules zijn compatibel met de <span class=\"has-inline-color has-vivid-cyan-blue-color\">Hitachi HD44780 LCD-controller<\/span>. Hierdoor kun je bijna elk display kopen en er zeker van zijn dat het op dezelfde manier werkt als elk ander. Het model dat ik kocht heeft een groene achtergrondverlichting.<\/p>\n\n\n\n<p>Hieronder zie je het display met zijn pinaansluitingen. Omdat gewerkt wordt met de I2C interface is het niet noodzakelijk de functies van de pinnen uit te leggen. De meeste spreken voor zich.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"279\" height=\"371\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/16x2_lcd_met_pin.jpg\" alt=\"\" class=\"wp-image-56\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/16x2_lcd_met_pin.jpg 279w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/16x2_lcd_met_pin-226x300.jpg 226w\" sizes=\"auto, (max-width: 279px) 100vw, 279px\" \/><\/figure>\n\n\n\n<p><strong>Interface als breadboard versie<\/strong><br>De I2C interface is ook los verkrijgbaar als je bijvoorbeeld een 16&#215;2 LCD display wilt aansluiten die niet van een interface voorzien is. Je soldeert er een pinstrip op en je prikt \u2018m zo in je breadboard. De interface wordt 1 op 1 met de aansluitpinnen van het display verbonden. Eitje dus!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"274\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/I2C-interface.png\" alt=\"\" class=\"wp-image-721\" style=\"width:312px;height:230px\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/I2C-interface.png 372w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/I2C-interface-300x221.png 300w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/I2C-interface-80x60.png 80w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><figcaption class=\"wp-element-caption\"><sup>I2C interface voor Lcd-displays<\/sup><\/figcaption><\/figure>\n\n\n\n<p><strong>Het display verbinden met de Raspberry Pi<\/strong><br>Het grote voordeel is dat de interface zo\u2019n 8 verbindingen scheelt bij de installatie. Bovendien bevindt zich op de interface een potmeter waarmee je het contrast van het display instelt. Met de jumper wordt de achtergrondverlichting van het display geactiveerd. Hierop zou je een 10kOhm potmeter kunnen aansluiten waarmee je de intensiteit van de achtergrondverlichting regelt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"231\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/i2c-op-display1.png\" alt=\"\" class=\"wp-image-718\" style=\"width:432px;height:165px\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/i2c-op-display1.png 606w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/i2c-op-display1-300x114.png 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><figcaption class=\"wp-element-caption\"><sup>1602 LCD display met een gemonteerde I2C interface module<\/sup><\/figcaption><\/figure>\n\n\n\n<p>De I2C interface heeft 4 aansluitingen, deze worden met de Raspberry Pi verbonden zoals in de tabel aangegeven is.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"676\" height=\"141\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/tabel2.png\" alt=\"\" class=\"wp-image-719\" style=\"width:535px;height:111px\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/tabel2.png 676w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/tabel2-300x63.png 300w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><figcaption class=\"wp-element-caption\"><sup>Aansluittabel I2C interface en de Raspberry Pi<\/sup><\/figcaption><\/figure>\n\n\n\n<p><strong>I2C bus configureren<\/strong><br>De Raspberry Pi is voorzien van een zgn. <span class=\"has-inline-color has-vivid-cyan-blue-color\">I2C bus<\/span>. Hierdoor kunnen meerdere apparaten gelijktijdig op de Raspberry Pi worden aangesloten, elk met een uniek adres. Dit adres wordt soms ingesteld door een jumperinstellingen op de module te wijzigen. <\/p>\n\n\n\n<p><a href=\"https:\/\/www.picademie.nl\/index.php\/2020\/10\/17\/schakel-i2c-interface-in-op-de-raspberry-pi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Klik hier om te zien hoe de I2C bus op de Raspberry Pi geactiveerd wordt.<\/a><\/p>\n\n\n\n<p><strong>Python script<\/strong><br>Omdat het hier goed werkende basisbestanden betreft en er daarom geen concessies gedaan zijn door ze aan te passen wordt de software van de originele site gedownload. Deze bestanden worden rechtstreeks op de Raspberry Pi gedownload. Geef hiervoor de volgende commando regel:<\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>git clone https:\/\/github.com\/the-raspberry-pi-guy\/lcd<\/kbd><\/span><\/code><\/p>\n\n\n\n<p>Vanuit de hoofdmap wordt de map <span class=\"has-inline-color has-vivid-cyan-blue-color\">lcd <\/span>aangemaakt. Hierin worden de diverse bestanden gedownload (gekloond). Niet alle scripts werken even goed, mogelijk dat het gedateerde Python 2 scripts betreft.<\/p>\n\n\n\n<p><strong>Installatiescript<\/strong><br>Voordat de programma\u2019s gestart kunnen worden moet het installatiescript in de <span class=\"has-inline-color has-vivid-cyan-blue-color\">lcd <\/span>map eenmalig opgestart worden. Ga hierin staan en geef daarvoor het volgende commando in: <\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>cd lcd<\/kbd><\/span><\/code><\/p>\n\n\n\n<p><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>sudo sh install.sh<\/kbd><\/span><\/code><\/p>\n\n\n\n<p><strong>Demo scripts<\/strong><br>De Raspberry vraagt na de installatie om opnieuw op te starten. Als alles goed gegaan is zijn de demoscripts nu op te starten. Ga in de <span class=\"has-inline-color has-vivid-cyan-blue-color\">lcd <\/span>directorie staan en start een paar demo\u2019s op door een van de volgende python programma\u2019s op te starten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>python demo_clock.py<\/kbd><\/span><\/code><\/li>\n\n\n\n<li><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>python demo_clock_and_IP.py<\/kbd><\/span><\/code><\/li>\n\n\n\n<li><code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>python demo_scrolling_text.py<\/kbd><\/span><\/code><\/li>\n<\/ul>\n\n\n\n<p>Mettertijd zijn er meer demo&#8217;s bijgekomen, kijk zelf even.<\/p>\n\n\n\n<p><strong>Forex demo<\/strong><br>Om het script van de <span class=\"has-inline-color has-vivid-cyan-blue-color\">demo_forex.py<\/span> van de valutamarkt Forex te kunnen starten zal je waarschijnlijk nog extra bibliotheken moeten laden met de commando&#8217;s:<br><code>- <span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>pip install requests<\/kbd><\/span><br>- <span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>sudo apt-get install python-bs4<\/kbd><\/span><\/code><\/p>\n\n\n\n<p>Start de Forex demo met: <code><span class=\"has-inline-color has-vivid-cyan-blue-color\"><kbd>python demo_forex.py<\/kbd><\/span><\/code><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Raspberry Pi - 16x2 LCD display (Forex demo)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/rTJ8bodxqDw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\"><strong><sup>16&#215;2 LCD display &#8211; Forex demo<\/sup><\/strong><\/figcaption><\/figure>\n\n\n\n<p>Met een paar kleine aanpassingen in het script werkt de software ook voor het <span class=\"has-inline-color has-vivid-cyan-blue-color\">20&#215;4 LCD display<\/span>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Raspberry Pi - 20x4 LCD display\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/zTUlCZc1iJs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\"><strong><sup>20&#215;4 LCD display<\/sup><\/strong><\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Foutmelding<\/strong><br>Indien in de terminal de melding:<strong><span class=\"has-inline-color has-vivid-red-color\"> IOError: [Errno 121] Remote I\/O error<\/span><\/strong> te zien is, dan kan de Raspberry Pi geen verbinding met de I2C interface maken. Of de bedrading is niet goed, dan wel kan de interface defect zijn.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Praktische toepassingen<\/strong><br>Een mooie toepassing van het LCD display is het <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><a href=\"https:\/\/www.picademie.nl\/?p=14815&amp;preview=true\">tonen van het IP-adres van de Raspberry Pi zodra deze opstart<\/a>,<\/mark> waardoor je geen (HDMI) beeldscherm nodig hebt als je een SSH connectie wilt opzetten.<\/p>\n\n\n\n<p>Ook is het display zeer geschikt o<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-black-color\">m sensorwaarden weer te geven, denk aan de t<\/mark>emperatuur, de luchtvochtigheid en de luchtdruk. <\/p>\n\n\n\n<p>Hoe dan ook, het display kent een beperkte functionaliteit, maar met een groot inzetgebied.<\/p>\n\n\n\n<p>Mocht je nog vragen of opmerkingen hebben, laat dan hieronder een reactie achter.<\/p>\n\n\n\n<p><em>Have A Nice Day!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Een leuke tutorial is het aansturen van een LCD display zoals het type LCD16x2, dit staat voor 16 karakters in 2 rijen. Ik gebruik hier <a class=\"mh-excerpt-more\" href=\"https:\/\/www.picademie.nl\/index.php\/2020\/10\/04\/16x2-lcd-displayhd44780-lcd-controller\/\" title=\"16&#215;2 LCD Display\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":713,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[720,729],"tags":[],"class_list":["post-102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-displays","category-sensormodules"],"jetpack_featured_media_url":"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/1602_2.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":0,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media\/713"}],"wp:attachment":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}