{"id":26579,"date":"2019-09-11T15:02:51","date_gmt":"2019-09-11T22:02:51","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=26579"},"modified":"2025-05-30T08:42:20","modified_gmt":"2025-05-30T15:42:20","slug":"build-a-custom-light-controller-board-with-pmod-kypd-and-led-strips","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/build-a-custom-light-controller-board-with-pmod-kypd-and-led-strips\/","title":{"rendered":"Build a Custom Light Controller Board With Pmod KYPD And LED Strips"},"content":{"rendered":"\r\n<p>The idea behind this project was to create a controller to allow users to &#8220;play&#8221; light like it is an instrument, with custom visuals, gesture control, and brightness\/speed dials.<\/p>\r\n\r\n\r\n\r\n<p>Considering how <a href=\"https:\/\/www.amazon.com\/CO-Z-DMX-Controller-Lighting-Moving\/dp\/B01N1UI8V7?ref_=fsclp_pl_dp_1\">pricey consumer light controllers <\/a>can be (often $100 bucks or more- not including the lights!) we decided to try to make a cheaper, more customizable solution!<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"950\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/title.png\" alt=\"\" class=\"wp-image-26581\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/title.png 988w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/title-600x577.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/title-768x738.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/title-800x769.png 800w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>One of the challenges with a project like this is the number of buttons it would have to include. Even in my more conservative designs, I wanted to have around 8 buttons to manage the different visual sequences, color palettes, and other mode selection. Wiring up that many buttons can be tedious and opens a lot of possibility for one connection to break and ruin the whole performance. Additionally, the Arduino we are using (the UNO) only has so many digital inputs that can be used. Luckily, by using the the <a href=\"https:\/\/digilent.com\/shop\/pmod-kypd-16-button-keypad\/\">Pmod KYPD<\/a>, we were able to circumvent both of these issues!<\/p>\r\n\r\n\r\n\r\n<p>The <a href=\"https:\/\/digilent.com\/shop\/pmod-kypd-16-button-keypad\/\">Pmod KYPD&#8217;s <\/a>clever design allows access to <em><strong>16 different button inputs<\/strong><\/em>, while only monopolizing 8 digital pins! It also is much easier to wire up without risky connections or requiring soldering.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/Pmod_KYPD_use_600__96921.1449264318.1280.1280.png\" alt=\"\" class=\"wp-image-26583\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/Pmod_KYPD_use_600__96921.1449264318.1280.1280.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/Pmod_KYPD_use_600__96921.1449264318.1280.1280-150x150.png 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Its small form-factor allows it to fit neatly onto any baseboard, without taking up too much real estate. I am using a wood sample I got from my local hardware store for free as my mounting panel.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0012-1024x683.jpg\" alt=\"\" class=\"wp-image-26584\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0012-1024x683.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0012-600x400.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0012-768x512.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0012-800x533.jpg 800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\r\n<figcaption>My current setup. 1-4 are the visual sequences, 5 is auto-mode (using the sound sensor) and 6-9 are the color modes, which influence any of the above visualizers.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>We also added an <a href=\"https:\/\/www.pololu.com\/product\/1605\">Ultrasonic ping sensor <\/a>so we could include motion control, and two potentiometers to control the speed and brightness of the production. This was all hooked up to two LED strips (though you can add as many as you want, either in a series or in parallel) to complete the build!<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-video\"><video width=\"300\" height=\"150\" controls=\"controls\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/DSC_0006.mov\"><\/video>\r\n<figcaption>Andrew testing out the controller!<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Check out a full performance video below!<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\">\r\n<div class=\"wp-block-embed__wrapper\">https:\/\/youtu.be\/kFB-mVeVCIE<\/div>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>If you are interested in making this project, check out the full build instructions <a href=\"https:\/\/www.hackster.io\/MirandaMay7\/translightion-board-controllable-music-visualizer-9a8dbf\">here<\/a>!<\/p>\r\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-26579 jlk' data-task='like' data-post_id='26579' data-nonce='3c15ebf169' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-26579 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-26579 jlk' data-task='unlike' data-post_id='26579' data-nonce='3c15ebf169' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-26579 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-26579 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Create a unique lightshow experience with the Pmod KYPD and Arduino!<\/p>\n","protected":false},"author":36,"featured_media":26589,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,4327,4267,1561],"tags":[],"ppma_author":[4485],"class_list":["post-26579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-expansion-modules","category-projects","category-featured","category-applications"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/03\/jpg.png","authors":[{"term_id":4485,"user_id":36,"is_guest":0,"slug":"mirandamay7","display_name":"Miranda Hansen","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/9bae943b615ddb1dedee72ccb219b464?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Hansen","last_name_2":"","first_name":"Miranda","first_name_2":"","job_title":"","description":"I enjoy creative writing, engineering, thinking, building, exploring and sharing with people.\r\nHuge aficionado of spending time thinking about things that \u201cdon\u2019t matter.\u201d \r\n I am very interested in unconstrained creativity. I love cross-discipline ideas and all of their integration into complete original systems.\r\n\r\nAnd I like things that do things."}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/26579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=26579"}],"version-history":[{"count":1,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/26579\/revisions"}],"predecessor-version":[{"id":31554,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/26579\/revisions\/31554"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/26589"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=26579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=26579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=26579"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=26579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}