{"id":273,"date":"2020-10-05T12:04:03","date_gmt":"2020-10-05T12:04:03","guid":{"rendered":"https:\/\/www.picademie.nl\/?p=273"},"modified":"2022-12-23T09:16:23","modified_gmt":"2022-12-23T08:16:23","slug":"sainsmart-16-relay-module","status":"publish","type":"post","link":"https:\/\/www.picademie.nl\/index.php\/2020\/10\/05\/sainsmart-16-relay-module\/","title":{"rendered":"Sainsmart 16 relais module"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">Ik vond het relaisbord van Sainsmart erg interessant en heb deze via een Chinese online winkel aangeschaft. Al snel bleek dat het bord niet zomaar op de Rapsberry Pi aan te sluiten is, tenzij je het niet zo nauw neemt of er speciale software maakt of er extra hardware voor bouwt. Het bord is compact en zeer de moeite waarde. Het biedt een mooie oplossing als je meerdere apparaten wil schakelen.    <\/pre>\n\n\n\n<p>De Sainsmart 16 relais module is eigenlijk voor de Arduino ontwikkeld. Maar met een kleine aanpassing ben je met de Raspberry Pi ook prima in staat met de relaismodule 16 verschillende apparaten zoals lampen te schakelen. <\/p>\n\n\n\n<p>De module wordt vaak gebruikt binnen de Domotica (huis automatisering). Ook in de industrie worden dergelijke modules gebruikt, aangestuurd door minicomputers. Dit project werkt erg goed in combinatie met het project GPIO-besturing via IR-afstandsbediening. Als je &#8216;zware&#8217; apparaten zoals motoren of grote halogeen spots wilt aansturen wordt een <a href=\"https:\/\/www.picademie.nl\/index.php\/2020\/10\/14\/stuur-last-relais\/\" data-type=\"URL\" data-id=\"https:\/\/www.picademie.nl\/index.php\/2020\/10\/14\/stuur-last-relais\/\">stuur- &amp; lastrelais<\/a> combinatie geadviseerd. <\/p>\n\n\n\n<p>De relaismodule wordt met een 12V voeding verbonden en <strong>levert (!) zelf  een 5V spanning<\/strong>. Het voordeel hiervan is dat de Raspberry Pi de module niet hoeft te voeden en alleen het GPIO-stuursignaal hoeft aan te bieden. Vergeet daarbij niet dat de ground (GND) van zowel de Raspberry Pi als de relaismodule met elkaar verbonden moeten worden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"403\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/smart16.jpg\" alt=\"\" class=\"wp-image-413\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/smart16.jpg 753w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/smart16-300x161.jpg 300w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/figure>\n\n\n\n<p>Bijzonder is dat de module met een <span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>LAAG <\/strong>(LOW)<\/span> signaal aangestuurd wordt, zie afbeelding hieronder. Dat heeft gevolgen voor de programmering omdat we gewend zijn apparaten aan te sturen met een <span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>HOOG <\/strong>(HIGH) <\/span>signaal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-1024x768.jpg\" alt=\"\" class=\"wp-image-497\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-1024x768.jpg 1024w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-300x225.jpg 300w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-768x576.jpg 768w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-1536x1152.jpg 1536w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-678x509.jpg 678w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-326x245.jpg 326w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780-80x60.jpg 80w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4780.jpg 2016w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Ingangspin 6 verbonden met de ground (GND). Relais gaat AAN.<\/figcaption><\/figure>\n\n\n\n<p><strong>Python 2 script<\/strong><br>In principe is het Python script hetzelfde voor een LED als voor een relais. Om een relais van de module in te schakelen kun je het volgende script gebruiken.<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">import RPi.GPIO as GPIO<br>from time import sleep<br>pin=40<br>pauze=1<br>GPIO.setwarnings(False)<br>GPIO.setmode(GPIO.BOARD)<br>GPIO.setup(pin,GPIO.OUT)<br>sleep(pauze)<br>GPIO.output(pin,GPIO.HIGH)<br>sleep(pauze)<br>GPIO.output(pin, GPIO.LOW)<br>sleep(pauze)<br>GPIO.cleanup()<\/mark><\/p>\n\n\n\n<p><strong>Niet wat we gewend zijn.<\/strong><br>Als je van de Raspberry <span class=\"has-inline-color has-vivid-cyan-blue-color\">GPIO 21 (pin 40)<\/span> met bijv. <span class=\"has-inline-color has-vivid-cyan-blue-color\">pin 1<\/span> van de relaismodule en beide grounds (GNDs) met elkaar verbindt en je in het Pythonscript de GPIO pin initialiseert met <span class=\"has-inline-color has-vivid-cyan-blue-color\">GPIO.setmode(GPIO.BOARD)<\/span>, dan gaat het relais op de module al <span class=\"has-inline-color has-vivid-cyan-blue-color\">AAN<\/span>. Dit komt omdat de relaismodule met <span class=\"has-inline-color has-vivid-cyan-blue-color\">LAAG <\/span>geschakeld wordt. Het relais gaat weer uit bij het commando <span class=\"has-inline-color has-vivid-cyan-blue-color\">GPIO.cleanup()<\/span>, dat de GPIO poort schoont.<\/p>\n\n\n\n<p>De commando&#8217;s HOOG <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">GPIO.output(pin,GPIO.HIGH)<\/mark> en LAAG <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">GPIO.output(pin, GPIO.LOW)<\/mark> hebben geen effect op de relaismodule omdat de signaalniveaus van de Raspberry Pi net niet voldoen om de module te laten schakelen.<\/p>\n\n\n\n<p><strong>Hoe lossen we dit op?<\/strong><br>Naast het signaalniveau probleem wil ik dat het relais op de module aangaat bij <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">HOOG<\/mark>, i.p.v. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">LAAG<\/mark>. Om dit te bewerkstelligen heb ik een klein circuitje gemaakt. Ik noem het de &#8216;<strong>inverter<\/strong>&#8216;. Het maakt van <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">HOOG LAAG<\/mark> en andersom. Bovendien zorgt het ervoor dat het signaalniveau goed is.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/Inverter3.jpg\" alt=\"\" class=\"wp-image-458\" width=\"504\" height=\"297\"\/><figcaption>1-kanaals inverter<\/figcaption><\/figure>\n\n\n\n<p>Probeer het circuitje uit op je breadboard en sluit er een kanaal op de relaismodule mee aan. Als je een beetje handig bent bouw je een inverter voor de 16 relais module, net als ik.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-1024x768.jpg\" alt=\"\" class=\"wp-image-462\" width=\"471\" height=\"354\" srcset=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-1024x768.jpg 1024w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-300x225.jpg 300w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-768x576.jpg 768w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-1536x1152.jpg 1536w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-678x509.jpg 678w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-326x245.jpg 326w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790-80x60.jpg 80w, https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/IMG_4790.jpg 2016w\" sizes=\"auto, (max-width: 471px) 100vw, 471px\" \/><figcaption>16-kanaals inverter.<\/figcaption><\/figure>\n\n\n\n<p>Eenmaal aangesloten werkt het als volgt. <\/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 - SainSmart 16 relais module\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/6Ym7R7NCqts?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><\/figure>\n\n\n\n<p><strong>Python &#8211; testscript<\/strong><\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-d15081e1-e9aa-43f0-b46e-15f7fcb37c84\" href=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/11\/multitest.zip\">Download hier de software uit het filmpje<\/a><a href=\"https:\/\/www.picademie.nl\/wp-content\/uploads\/2021\/11\/multitest.zip\" class=\"wp-block-file__button\" download aria-describedby=\"wp-block-file--media-d15081e1-e9aa-43f0-b46e-15f7fcb37c84\">Download<\/a><\/div>\n\n\n\n<p>Veel succes ermee!<\/p>\n\n\n\n<p><em>Have A Nice Day!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Ik vond het relaisbord van Sainsmart erg interessant en heb deze via een Chinese online winkel aangeschaft. Al snel bleek dat het bord niet zomaar <a class=\"mh-excerpt-more\" href=\"https:\/\/www.picademie.nl\/index.php\/2020\/10\/05\/sainsmart-16-relay-module\/\" title=\"Sainsmart 16 relais module\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":421,"comment_status":"open","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":[1],"tags":[],"class_list":["post-273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_featured_media_url":"https:\/\/www.picademie.nl\/wp-content\/uploads\/2020\/10\/uitlicht.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/273","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=273"}],"version-history":[{"count":0,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/posts\/273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media\/421"}],"wp:attachment":[{"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/media?parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/categories?post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.picademie.nl\/index.php\/wp-json\/wp\/v2\/tags?post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}