{"id":2855,"date":"2024-09-09T12:15:49","date_gmt":"2024-09-09T12:15:49","guid":{"rendered":"https:\/\/iotthinghub.com\/?p=2855"},"modified":"2024-09-09T12:57:48","modified_gmt":"2024-09-09T12:57:48","slug":"keypad-interface-smart-lock","status":"publish","type":"post","link":"https:\/\/iotthinghub.com\/?p=2855","title":{"rendered":"Keypad Interface &amp; Smart Lock"},"content":{"rendered":"\n<p class=\"has-text-color has-link-color wp-elements-1 wp-block-paragraph\" style=\"color:#5c5c5c\">We previously interface Keypad with Atmel microcontroller. Now we will interface keypad with STm32. We will interface STm32 with 3&#215;4 matrix keypad. 4 rows which will be output pins and 3 columns which will be input with pull-up enable.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-color has-link-color wp-elements-2 wp-block-paragraph\" style=\"color:#5c5c5c\">Since the input pins are pull-up enable the default value is 1 and active with logic 0 to the pin. So our first step is to sequentially set &amp; reset the rows. We will reset(0) one row at a time and other rows will be set(1). For example if we press 1 then row1 will be zero and column1 will get a value of 0. So our logic is whenever a switch will press the corresponding row and column will zero. Since there are 4 rows we will create a loop of 4 and read the input.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"775\" height=\"433\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/pinout-keypad-3x4-1.jpg\" alt=\"\" class=\"wp-image-2858\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/pinout-keypad-3x4-1.jpg 775w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/pinout-keypad-3x4-1-300x168.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/pinout-keypad-3x4-1-768x429.jpg 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-3 wp-block-paragraph\" style=\"color:#5c5c5c\">If we define each rows and column with a value then we will easily get the code. Since each row and column has a unique value we easily find out which switch is pressed. For example if we define row1 as 0x08 and column1 as 0x08, then if 1 is pressed the code will be 0x88. Here we use any GPIO pins and we predefine some value. That will help you to changed GPIO according to your desire GPIO. For example we use following pins and row &amp; column as-<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" width=\"1024\" height=\"99\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-6-1024x99.jpg\" alt=\"\" class=\"wp-image-2862\" style=\"width:745px;height:auto\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-6-1024x99.jpg 1024w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-6-300x29.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-6-768x74.jpg 768w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-6.jpg 1407w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; auto-links: false; title: ; quick-code: false; notranslate\" title=\"\">\n#define ROW1_RESET   HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET)\n#define ROW1_SET     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET)\n#define ROW2_RESET   HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET)\n#define ROW2_SET     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET)\n#define ROW3_RESET   HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,GPIO_PIN_RESET)\n#define ROW3_SET     HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4,GPIO_PIN_SET)\n#define ROW4_RESET   HAL_GPIO_WritePin(GPIOC,GPIO_PIN_5,GPIO_PIN_RESET)\n#define ROW4_SET     HAL_GPIO_WritePin(GPIOC,GPIO_PIN_5,GPIO_PIN_SET)\n#define COLUMN1      HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)\n#define COLUMN2      HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)\n#define COLUMN3      HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)\n<\/pre><\/div>\n\n\n<p class=\"has-text-color has-link-color wp-elements-4 wp-block-paragraph\" style=\"color:#5c5c5c\">In the define section change the pin according to yours desire GPIO. Now the main logic as follow-<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; auto-links: false; title: ; quick-code: false; notranslate\" title=\"\">\nunsigned char keycode,keyPressed=&#039;\\0&#039;,i;\nuint8_t row,column,column1,column2,column3;\nfor(i=0;i&lt;4;i++)\n\t{ HAL_Delay(1);\n\tif(i==0){\n\t\tROW1_RESET; ROW2_SET; ROW3_SET; ROW4_SET;\n\t\t\t\trow=0x08;\n\t\t\t}\n\telse if(i==1){\n\t\tROW1_SET; ROW2_RESET; ROW3_SET; ROW4_SET;\n\t\t\t\trow=0x04;\n\t\t\t}\n\telse if(i==2){\n\t\tROW1_SET; ROW2_SET; ROW3_RESET; ROW4_SET;\n\t\t\t\trow=0x02;\n\t\t\t}\n\telse if(i==3){\n\t\tROW1_SET; ROW2_SET; ROW3_SET; ROW4_RESET;\n\t\t\t\trow=0x01;\n\t\t\t}\n\tHAL_Delay(1);\n\tif(COLUMN1) column1=0; else column1=0x80;\n\tif(COLUMN2) column2=0; else column2=0x40;\n\tif(COLUMN3) column3=0; else column3=0x20;\n\tcolumn=column1|column2|column3;\n\tHAL_Delay(20);\n\tif(column != 0x00)\n\t{ HAL_Delay(20);\n\tif(column == 0x00) goto OUT;\n\tkeycode=(row&amp;0x0f)|(column&amp;0xf0);\n\tswitch(keycode)\n\t\t{\n\t\t\tcase (0x88): keyPressed = &#039;1&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x48): keyPressed = &#039;2&#039;;\n\t\t\t\t \t\t break;\n\t\t\tcase (0x28): keyPressed = &#039;3&#039;; \n\t\t\t   \t\t\t break;\n\t\t\tcase (0x84): keyPressed = &#039;4&#039;;\n\t\t\t\t \t\t break;\n\t\t\tcase (0x44): keyPressed = &#039;5&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x24): keyPressed = &#039;6&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x82): keyPressed = &#039;7&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x42): keyPressed = &#039;8&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x22): keyPressed = &#039;9&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x81): keyPressed = &#039;*&#039;; \n\t\t\t\t \t\t break;\n\t\t\tcase (0x41): keyPressed = &#039;0&#039;;\n\t\t\t\t \t\t break;\n\t\t\tcase (0x21): keyPressed = &#039;#&#039;; \n\t\t\t\t \t\t break;\n\t\t}\n\t\tOUT:;\n\t}\n<\/pre><\/div>\n\n\n<p class=\"has-text-color has-link-color wp-elements-5 wp-block-paragraph\" style=\"color:#5c5c5c\">We display the key pressed value in 0.91&#8243; OLED display. Similarly we can use 4&#215;4 matrix keypad with only 1 addition of column4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"904\" height=\"370\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/3x4-keypad-Interface.jpg\" alt=\"\" class=\"wp-image-2871\" style=\"width:406px;height:auto\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/3x4-keypad-Interface.jpg 904w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/3x4-keypad-Interface-300x123.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/3x4-keypad-Interface-768x314.jpg 768w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-text-color has-link-color wp-elements-6 wp-block-paragraph\" style=\"color:#5c5c5c\">3&#215;4 Keypad Connection<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\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 title=\"STM32 Keypad Interface\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/tEWBhZ7zbeE?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<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-7 wp-block-paragraph\" style=\"color:#5c5c5c\">In ATmel microcontroller we developed a password locker with 3&#215;4 matrix keypad. In this section we will make a smart password locker with STM32F103C8Tx with 4&#215;4 matrix keypad. The connection as follow-<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-1024x517.jpg\" alt=\"\" class=\"wp-image-2899\" style=\"width:792px;height:auto\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-1024x517.jpg 1024w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-300x151.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-768x387.jpg 768w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-1536x775.jpg 1536w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passowrd-locking-2048x1033.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"95\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-7-1024x95.jpg\" alt=\"\" class=\"wp-image-2875\" style=\"width:798px;height:auto\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-7-1024x95.jpg 1024w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-7-300x28.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-7-768x72.jpg 768w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-7.jpg 1405w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-8 wp-block-paragraph\" style=\"color:#5c5c5c\">STM32F103C8T6-Blue_Pill is a low cost development board has internal 8MHz crystal. Connect the load in PB3 which is configuring as output. Here 0-9,*,# digits has value and other digits are define as-<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"164\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-8-1024x164.jpg\" alt=\"\" class=\"wp-image-2877\" style=\"width:749px;height:auto\" srcset=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-8-1024x164.jpg 1024w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-8-300x48.jpg 300w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-8-768x123.jpg 768w, https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/function-8.jpg 1217w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-9 wp-block-paragraph\" style=\"color:#252525\">Note: Here \u2018D\u2019 key is used for enter. No other external switch has been used. Just download the hex file and burn it in STM32 ST-LINK Utility. For hide key just pressed C key, a \u2013 sign indicate it. If you want to see your input character just presses C again.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/3x4-Matrix-Keypad-STM32F030R8.rar\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--50)\">Download (3&#215;4 Matrix Keypad)<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/Passwrad-Lock-STM32F103C8T6.hex\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--50)\">Download(smart lock.hex)<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<style type=\"text\/css\">\n#foogallery-gallery-2883 .fg-image { width: 200px; }<\/style>\n\t\t\t<div class=\"foogallery foogallery-container foogallery-carousel foogallery-lightbox-foogallery fg-carousel fg-ready fg-light fg-border-thin fg-shadow-outline fg-loading-default fg-loaded-fade-in fg-caption-hover fg-hover-fade fg-hover-zoom fg-no-js\" id=\"foogallery-gallery-2883\" data-foogallery=\"{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;src&quot;:&quot;src&quot;,&quot;srcset&quot;:&quot;srcset&quot;,&quot;template&quot;:{&quot;maxItems&quot;:5,&quot;scale&quot;:0.11999999999999999555910790149937383830547332763671875,&quot;gutter&quot;:{&quot;min&quot;:-40,&quot;max&quot;:-20,&quot;unit&quot;:&quot;%&quot;},&quot;autoplay&quot;:{&quot;time&quot;:5,&quot;interaction&quot;:&quot;pause&quot;},&quot;centerOnClick&quot;:true,&quot;align&quot;:&quot;center&quot;,&quot;activePosition&quot;:&quot;center&quot;}}\" data-foogallery-lightbox=\"{&quot;thumbs&quot;:&quot;bottom&quot;,&quot;thumbsCaptions&quot;:false,&quot;thumbsBestFit&quot;:false,&quot;thumbsSmall&quot;:false,&quot;thumbsCaptionsAlign&quot;:&quot;default&quot;,&quot;info&quot;:&quot;bottom&quot;,&quot;infoVisible&quot;:true,&quot;infoOverlay&quot;:true,&quot;infoAlign&quot;:&quot;default&quot;,&quot;transition&quot;:&quot;fade&quot;,&quot;hoverButtons&quot;:false,&quot;fitMedia&quot;:false,&quot;noScrollbars&quot;:true,&quot;preserveButtonSpace&quot;:true,&quot;buttons&quot;:{&quot;fullscreen&quot;:true,&quot;info&quot;:true,&quot;thumbs&quot;:false},&quot;video&quot;:{&quot;autoPlay&quot;:true}}\" style=\"--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;\" >\n\t<button type=\"button\" class=\"fg-carousel-prev\" title=\"Previous\"><\/button>\n\t<div class=\"fg-carousel-inner\">\n\t\t<div class=\"fg-carousel-center\"><\/div>\n\t\t<div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-1.jpg\" data-attachment-id=\"2884\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-1\/1229477538.jpg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-2.jpg\" data-attachment-id=\"2885\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-2\/2231056340.jpg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-3.jpg\" data-attachment-id=\"2886\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-3\/4092693391.jpg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-4.jpg\" data-attachment-id=\"2887\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-4\/646190314.jpg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-5.jpg\" data-attachment-id=\"2888\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-5\/3533656422.jpg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-6.jpeg\" data-attachment-id=\"2889\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-6\/2590366845.jpeg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-7.jpeg\" data-attachment-id=\"2890\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-7\/3898866767.jpeg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div><div class=\"fg-item fg-type-image fg-loading\"><figure class=\"fg-item-inner\"><a href=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/2024\/09\/smart-lock-8.jpeg\" data-attachment-id=\"2891\" data-type=\"image\" class=\"fg-thumb\"><span class=\"fg-image-wrap\"><img loading=\"lazy\" src=\"https:\/\/iotthinghub.com\/wp-content\/uploads\/cache\/2024\/09\/smart-lock-8\/1857469983.jpeg\" width=\"200\" height=\"200\" class=\"skip-lazy fg-image\" decoding=\"async\" loading=\"lazy\"><\/span><span class=\"fg-image-overlay\"><\/span><\/a><\/figure><div class=\"fg-loader\"><\/div><\/div>\t<\/div>\n\t<div class=\"fg-carousel-bottom\"><\/div>\n\t<div class=\"fg-carousel-progress\"><\/div>\n\t<button type=\"button\" class=\"fg-carousel-next\" title=\"Next\"><\/button>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We previously interface Keypad with Atmel microcontroller. Now we will interface keypad with STm32. We will interface STm32 with 3&#215;4 matrix keypad. 4 rows which will be output pins and 3 columns which will be input with pull-up enable. Since the input pins are pull-up enable the default value is 1 and active with logic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-2855","post","type-post","status-publish","format-standard","hentry","category-arm-standards-peripherals"],"_links":{"self":[{"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/posts\/2855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2855"}],"version-history":[{"count":19,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/posts\/2855\/revisions"}],"predecessor-version":[{"id":2900,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=\/wp\/v2\/posts\/2855\/revisions\/2900"}],"wp:attachment":[{"href":"https:\/\/iotthinghub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotthinghub.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}