{"id":3130,"date":"2024-07-28T01:39:19","date_gmt":"2024-07-28T06:39:19","guid":{"rendered":"https:\/\/www.electroallweb.com\/?p=3130"},"modified":"2025-04-18T21:05:23","modified_gmt":"2025-04-19T02:05:23","slug":"como-crear-tu-propio-plc-con-stm32-8-entradas-digitales-2-entradas-analogicas-6-salidas-a-relay-3-salidas-pwm","status":"publish","type":"post","link":"https:\/\/www.electroallweb.com\/index.php\/2024\/07\/28\/como-crear-tu-propio-plc-con-stm32-8-entradas-digitales-2-entradas-analogicas-6-salidas-a-relay-3-salidas-pwm\/","title":{"rendered":"COMO CREAR TU PROPIO PLC con STM32 &#8211; 8 Entradas Digitales, 2 Entradas Analogicas, 6 Salidas a Relay, 3 Salidas PWM"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722147531666\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">INTRODUCCI\u00d3N<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p style=\"text-align: justify;\">Si bien es cierto, ya hab\u00edamos realizado una serie de tarjetas plc con microcontroladores de atmel y de esp32,\u00a0 pero a\u00fan no hab\u00edamos logrado hacer con los microcontroladores de stm32. Asi que hoy vamos a desbloquear ese miedo y haremos un plc con un microcontrolador de la familia stm32. entonces, empezaremos haciendo un plc espec\u00edficamente con el microcontrolador stm32F103C8T6, que es un microcontrolador b\u00e1sico de esta familia, y seg\u00fan vamos avanzando con las versiones, iremos desarrollando con otros micros m\u00e1s potentes de esta l\u00ednea.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722147673067\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">DATOS TECNICOS<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<ol>\n<li>Tensi\u00f3n de alimentaci\u00f3n\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026\u2026\u2026\u202624VDC<\/li>\n<li>Corriente de alimentaci\u00f3n\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026\u2026\u2026\u2026\u202690mA<\/li>\n<li>Entadas digitales 15-24VDC\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026\u20268<\/li>\n<li><strong>Salidas RLY\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u20266<\/strong>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Tensi\u00f3n AC\u2026\u2026\u2026\u2026..\u2026\u2026\u2026.\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026.\u2026\u2026250V<\/li>\n<li>Corriente AC\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.5A<\/li>\n<li>Tensi\u00f3n DC\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u202630V<\/li>\n<li>Corriente DC\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u20265A<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Salidas PMW (24V)&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;3<\/li>\n<li>Entorno de programaci\u00f3n\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026..\u2026\u2026\u2026..STM32 cube, Arduino IDE<\/li>\n<li>Condiciones ambientales min\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026.-40\u00b0<\/li>\n<li>Condiciones ambientales max\u2026\u2026\u2026\u2026\u2026\u2026\u2026..\u2026\u2026\u2026.150\u00b0<\/li>\n<li>\u00a0Empotrable\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026S\u00ed<\/li>\n<li>Puerto Usb&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;S\u00cd<\/li>\n<li>Comunicacion I2C&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..S\u00ed<\/li>\n<\/ol>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722147936969\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">ESQUEMATICO ELECTRONICO<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><a href=\"https:\/\/github.com\/ELECTROALL\/plc-stm32\/blob\/main\/SCH_Schematic1_2024-07-28.pdf\" title=\"\" target=\"\" rel=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"724\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-1024x724.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-1024x724.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-300x212.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-768x543.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-1536x1085.png 1536w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-2048x1447.png 2048w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/SCH_Schematic1_1-P1_2024-07-28-1-600x424.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><\/div><div class=\"w-btn-wrapper align_left\"><a class=\"w-btn style_solid color_primary icon_none\" href=\"https:\/\/github.com\/ELECTROALL\/plc-stm32\/blob\/main\/SCH_Schematic1_2024-07-28.pdf\"><span class=\"w-btn-label\">DESCARGAR ESQUEMATICO ELECTRONICO<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722178783834\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">DISE\u00d1O PCB<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"853\" height=\"1024\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/3D_PCB1_2024-07-27-853x1024.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/3D_PCB1_2024-07-27-853x1024.png 853w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/3D_PCB1_2024-07-27-250x300.png 250w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/3D_PCB1_2024-07-27-768x922.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/3D_PCB1_2024-07-27-1280x1536.png 1280w\" sizes=\"(max-width: 853px) 100vw, 853px\" \/><\/div><\/div><div class=\"w-btn-wrapper align_left\"><a class=\"w-btn style_solid color_primary icon_none\" href=\"https:\/\/github.com\/ELECTROALL\/plc-stm32\/blob\/main\/Gerber_PCB1_2024-07-28.zip\"><span class=\"w-btn-label\">DESCARGAR GEBER<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722178898504\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">LISTA DE MATERIALES<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<table style=\"height: 2484px;\" width=\"1258\">\n<tbody>\n<tr>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>No.<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Quantity<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Comment<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Designator<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Footprint<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Value<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Manufacturer Part<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Supplier Part<\/strong><\/span><\/td>\n<td width=\"140\"><span style=\"color: #ff6600;\"><strong>Supplier<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>470uF<\/td>\n<td>C1,C17<\/td>\n<td>CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FD<\/td>\n<td>470uF<\/td>\n<td>VT1V471M1010<\/td>\n<td>C310845<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>2<\/td>\n<td>1uF<\/td>\n<td>C2,C18<\/td>\n<td>C1206<\/td>\n<td>1uF<\/td>\n<td>CL31B105KBHNNNE<\/td>\n<td>C1848<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>26<\/td>\n<td>100nF<\/td>\n<td>C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,<br \/>\nC13,C15,C16,C19,C21,C22,C23,C24,<br \/>\nC25,C26,C27,C28,C32,C33,C34,C35<\/td>\n<td>C0603<\/td>\n<td>100nF<\/td>\n<td>CC0603KRX7R9BB104<\/td>\n<td>C14663<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>2<\/td>\n<td>220uF<\/td>\n<td>C14,C20<\/td>\n<td>CAP-SMD_BD6.3-L6.6-W6.6-LS7.2-R-RD<\/td>\n<td>220uF<\/td>\n<td>RVE1C221M0607<\/td>\n<td>C99836<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>1<\/td>\n<td>1uF<\/td>\n<td>C29<\/td>\n<td>C0603<\/td>\n<td>1uF<\/td>\n<td>CL10A105KB8NNNC<\/td>\n<td>C15849<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>4<\/td>\n<td>20pF<\/td>\n<td>C30,C31,C36,C37<\/td>\n<td>C0603<\/td>\n<td>20pF<\/td>\n<td>CL10C200JB8NNNC<\/td>\n<td>C1648<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>2<\/td>\n<td>HCZZ0126-4<\/td>\n<td>CN1,CN2<\/td>\n<td>CONN-TH_XH2.54-4P<\/td>\n<td><\/td>\n<td>HCZZ0126-4<\/td>\n<td>C7433754<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>7<\/td>\n<td>SS210<\/td>\n<td>D1,D2,D3,D4,D7,D8,D9<\/td>\n<td>SMA_L4.3-W2.6-LS5.2-RD<\/td>\n<td><\/td>\n<td>SS210<\/td>\n<td>C14996<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>2<\/td>\n<td>BZT52C3V3<\/td>\n<td>D5,D6<\/td>\n<td>SOD-123_L2.7-W1.6-LS3.7-RD<\/td>\n<td><\/td>\n<td>BZT52C3V3<\/td>\n<td>C173413<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>3<\/td>\n<td>M7<\/td>\n<td>D10,D11,D12<\/td>\n<td>SMA_L4.3-W2.6-LS5.2-RD<\/td>\n<td><\/td>\n<td>M7<\/td>\n<td>C95872<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>6<\/td>\n<td>1N4148WS<\/td>\n<td>D13,D14,D15,D16,D17,D18<\/td>\n<td>SOD-323_L1.8-W1.3-LS2.5-RD<\/td>\n<td><\/td>\n<td>1N4148WS<\/td>\n<td>C2128<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>1<\/td>\n<td>BSMD1206-100-24V<\/td>\n<td>F1<\/td>\n<td>F1206<\/td>\n<td><\/td>\n<td>BSMD1206-100-24V<\/td>\n<td>C910830<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>13<\/td>\n<td>1<\/td>\n<td>ZX-PZ2.54-2-3PZZ<\/td>\n<td>H1<\/td>\n<td>HDR-TH_6P-P2.54-V-M-R2-C3-S2.54-1<\/td>\n<td><\/td>\n<td>ZX-PZ2.54-2-3PZZ<\/td>\n<td>C7501274<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>14<\/td>\n<td>1<\/td>\n<td>PZ254V-11-04P<\/td>\n<td>H2<\/td>\n<td>HDR-TH_4P-P2.54-V-M<\/td>\n<td><\/td>\n<td>PZ254V-11-04P<\/td>\n<td>C2691448<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>15<\/td>\n<td>2<\/td>\n<td>68uH<\/td>\n<td>L1,L2<\/td>\n<td>IND-SMD_L7.1-W6.6-1<\/td>\n<td>68uH<\/td>\n<td>PSPMAA0605H-680M-IGF<\/td>\n<td>C2983094<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td>18<\/td>\n<td>KT-0805G<\/td>\n<td>LED1,LED2,LED3,LED4,LED5,LED6,LED7,<br \/>\nLED8,LED9,LED10,LED11,LED12,LED13,<br \/>\nLED14,LED15,LED16,LED17,LED18<\/td>\n<td>LED0805-R-RD<\/td>\n<td><\/td>\n<td>KT-0805G<\/td>\n<td>C2297<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>17<\/td>\n<td>10<\/td>\n<td>WJ128V-5.0-2P<\/td>\n<td>P1,P2,P6,P7,P8,P9,P10,P11,P12,P13<\/td>\n<td>CONN-TH_2P-P5.00_WJ128V-5.0-2P<\/td>\n<td><\/td>\n<td>WJ128V-5.0-2P<\/td>\n<td>C8269<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>18<\/td>\n<td>3<\/td>\n<td>WJ128V-5.0-3P<\/td>\n<td>P3,P4,P5<\/td>\n<td>CONN-TH_3P-P5.00_WJ128V-5.0-3P<\/td>\n<td><\/td>\n<td>WJ128V-5.0-3P<\/td>\n<td>C8270<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>19<\/td>\n<td>3<\/td>\n<td>AO3401A<\/td>\n<td>Q1,Q2,Q3<\/td>\n<td>SOT-23_L2.9-W1.3-P1.90-LS2.4-BR<\/td>\n<td><\/td>\n<td>AO3401A<\/td>\n<td>C15127<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>20<\/td>\n<td>6<\/td>\n<td>MMBT3904<\/td>\n<td>Q4,Q5,Q6,Q7,Q8,Q9<\/td>\n<td>SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR<\/td>\n<td><\/td>\n<td>MMBT3904<\/td>\n<td>C20526<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>21<\/td>\n<td>10<\/td>\n<td>10k\u03a9<\/td>\n<td>R1,R2,R3,R4,R5,R6,R7,R8,R9,R10<\/td>\n<td>R1206<\/td>\n<td>10k\u03a9<\/td>\n<td>1206W4F1002T5E<\/td>\n<td>C17902<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>22<\/td>\n<td>2<\/td>\n<td>680\u03a9<\/td>\n<td>R11,R12<\/td>\n<td>R0805<\/td>\n<td>680\u03a9<\/td>\n<td>0805W8F6800T5E<\/td>\n<td>C17798<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>23<\/td>\n<td>2<\/td>\n<td>330\u03a9<\/td>\n<td>R13,R14<\/td>\n<td>R0805<\/td>\n<td>330\u03a9<\/td>\n<td>0805W8F3300T5E<\/td>\n<td>C17630<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>24<\/td>\n<td>24<\/td>\n<td>10k\u03a9<\/td>\n<td>R15,R16,R17,R18,R19,R20,R21,R22,<br \/>\nR40,R42,R43,R44,R55,R56,R57,R58,<br \/>\nR59,R60,R67,R68,R69,R70,R71,R72<\/td>\n<td>R0603<\/td>\n<td>10k\u03a9<\/td>\n<td>0603WAF1002T5E<\/td>\n<td>C25804<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>25<\/td>\n<td>23<\/td>\n<td>1k\u03a9<\/td>\n<td>R23,R24,R25,R26,R27,R28,R29,R30,<br \/>\nR31,R32,R33,R34,R35,R48,R50,R52,<br \/>\nR54,R73,R74,R75,R76,R77,R78<\/td>\n<td>R0603<\/td>\n<td>1k\u03a9<\/td>\n<td>0603WAF1001T5E<\/td>\n<td>C21190<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>26<\/td>\n<td>3<\/td>\n<td>100k\u03a9<\/td>\n<td>R36,R37,R41<\/td>\n<td>R0603<\/td>\n<td>100k\u03a9<\/td>\n<td>0603WAF1003T5E<\/td>\n<td>C25803<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>27<\/td>\n<td>2<\/td>\n<td>20\u03a9<\/td>\n<td>R38,R39<\/td>\n<td>R0603<\/td>\n<td>20\u03a9<\/td>\n<td>0603WAF200JT5E<\/td>\n<td>C22950<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>28<\/td>\n<td>9<\/td>\n<td>220\u03a9<\/td>\n<td>R45,R46,R47,R61,R62,R63,R64,R65,R66<\/td>\n<td>R0603<\/td>\n<td>220\u03a9<\/td>\n<td>0603WAF2200T5E<\/td>\n<td>C22962<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>29<\/td>\n<td>9<\/td>\n<td>4.7k\u03a9<\/td>\n<td>R49,R51,R53,R79,R80,R81,R82,R83,R84<\/td>\n<td>R0805<\/td>\n<td>4.7k\u03a9<\/td>\n<td>0805W8F4701T5E<\/td>\n<td>C17673<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>30<\/td>\n<td>6<\/td>\n<td>RC-124DM1<\/td>\n<td>RLY1,RLY2,RLY3,RLY4,RLY5,RLY6<\/td>\n<td>RELAY-TH_RC-XXXXM<\/td>\n<td><\/td>\n<td>RC-124DM1<\/td>\n<td>C358574<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>31<\/td>\n<td>1<\/td>\n<td>TS-1187A-B-A-B<\/td>\n<td>SW1<\/td>\n<td>SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL-2<\/td>\n<td><\/td>\n<td>TS-1187A-B-A-B<\/td>\n<td>C318884<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>33<\/td>\n<td>17<\/td>\n<td>TLP127(TPL,U,F)<\/td>\n<td>U1,U2,U3,U4,U5,U6,U7,U8,U13,U14,<br \/>\nU15,U16,U17,U18,U19,U20,U21<\/td>\n<td>SOP-4_L3.6-W4.4-P2.54-LS7.0-BR<\/td>\n<td><\/td>\n<td>TLP127(TPL,U,F)<\/td>\n<td>C5001<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>34<\/td>\n<td>1<\/td>\n<td>LM2594M-5.0<\/td>\n<td>U9<\/td>\n<td>SOP-8_L4.9-W3.9-P1.27-LS6.0-BL<\/td>\n<td><\/td>\n<td>LM2594M-5.0<\/td>\n<td>C2904795<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>35<\/td>\n<td>1<\/td>\n<td>LM2594M-3.3<\/td>\n<td>U10<\/td>\n<td>SOP-8_L4.9-W3.9-P1.27-LS6.0-BL<\/td>\n<td><\/td>\n<td>LM2594M-3.3<\/td>\n<td>C3029048<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>36<\/td>\n<td>1<\/td>\n<td>SN74HC541PWR<\/td>\n<td>U11<\/td>\n<td>TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BL<\/td>\n<td><\/td>\n<td>SN74HC541PWR<\/td>\n<td>C6758<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>37<\/td>\n<td>1<\/td>\n<td>STM32F103C8T6<\/td>\n<td>U12<\/td>\n<td>LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL<\/td>\n<td><\/td>\n<td>STM32F103C8T6<\/td>\n<td>C8734<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>38<\/td>\n<td>2<\/td>\n<td>SN74HC14PWR<\/td>\n<td>U22,U23<\/td>\n<td>TSSOP-14_L5.0-W4.4-P0.65-LS6.4-BL<\/td>\n<td><\/td>\n<td>SN74HC14PWR<\/td>\n<td>C6821<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>39<\/td>\n<td>1<\/td>\n<td>LM358DR2G<\/td>\n<td>U24<\/td>\n<td>SOIC-8_L5.0-W4.0-P1.27-LS6.0-BL<\/td>\n<td><\/td>\n<td>LM358DR2G<\/td>\n<td>C7950<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>40<\/td>\n<td>1<\/td>\n<td>MICRO 4P DIP<\/td>\n<td>USB1<\/td>\n<td>MINI-USB-SMD_MICRO-4P-DIP<\/td>\n<td><\/td>\n<td>MICRO 4P DIP<\/td>\n<td>C456008<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>41<\/td>\n<td>1<\/td>\n<td>32.768kHz<\/td>\n<td>X1<\/td>\n<td>FC-135R_L3.2-W1.5<\/td>\n<td>32.768kHz<\/td>\n<td>Q13FC13500004<\/td>\n<td>C32346<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<tr>\n<td>42<\/td>\n<td>1<\/td>\n<td>8MHz<\/td>\n<td>X2<\/td>\n<td>CRYSTAL-SMD_L5.0-W3.2<\/td>\n<td>8MHz<\/td>\n<td>X50328MSB2GI<\/td>\n<td>C115962<\/td>\n<td>LCSC<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722179249513\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">CONEXIONES EXTERNAS<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><a href=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32.png\" ref=\"magnificPopup\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-1024x576.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-1024x576.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-300x169.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-768x432.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-1536x865.png 1536w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-2048x1153.png 2048w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2024\/07\/conexiones-Externas-plc-con-stm32-600x338.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722179806063\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">CODIGO<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h6><span style=\"color: #008080;\">TEST ENTRADAS DIGITALES Y SALIDAS A RELAY<\/span><\/h6>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include \"main.h\"\r\n\r\nvoid SystemClock_Config(void);\r\nstatic void MX_GPIO_Init(void);\r\n\r\nint main(void)\r\n{\r\n\r\n  HAL_Init();\r\n\r\n  SystemClock_Config();\r\n\r\n  MX_GPIO_Init();\r\n\r\n  while (1)\r\n  {\r\n        GPIO_PinState buttonStates[6];\r\n        GPIO_TypeDef* buttonPorts[6] = {GPIOB, GPIOB, GPIOB, GPIOB, GPIOB, GPIOB};\r\n        uint16_t buttonPins[6] = {GPIO_PIN_0, GPIO_PIN_1, GPIO_PIN_2, GPIO_PIN_10, GPIO_PIN_11, GPIO_PIN_12};\r\n\r\n        GPIO_TypeDef* ledPorts[6] = {GPIOB, GPIOA, GPIOA, GPIOB, GPIOB, GPIOB};\r\n        uint16_t ledPins[6] = {GPIO_PIN_15, GPIO_PIN_8, GPIO_PIN_15, GPIO_PIN_3, GPIO_PIN_4, GPIO_PIN_5};\r\n\r\n        for (int i = 0; i &lt; 6; i++) {\r\n          buttonStates[i] = HAL_GPIO_ReadPin(buttonPorts[i], buttonPins[i]);\r\n          HAL_GPIO_WritePin(ledPorts[i], ledPins[i], (buttonStates[i] == GPIO_PIN_SET) ? GPIO_PIN_SET : GPIO_PIN_RESET);\r\n        }\r\n  }\r\n}\r\n\r\nvoid SystemClock_Config(void)\r\n{\r\n  RCC_OscInitTypeDef RCC_OscInitStruct = {0};\r\n  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};\r\n\r\n  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;\r\n  RCC_OscInitStruct.HSEState = RCC_HSE_ON;\r\n  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;\r\n  RCC_OscInitStruct.HSIState = RCC_HSI_ON;\r\n  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;\r\n  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;\r\n  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;\r\n  if (HAL_RCC_OscConfig(&amp;RCC_OscInitStruct) != HAL_OK)\r\n  {\r\n    Error_Handler();\r\n  }\r\n\r\n  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK\r\n                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;\r\n  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;\r\n  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;\r\n  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;\r\n  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;\r\n\r\n  if (HAL_RCC_ClockConfig(&amp;RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)\r\n  {\r\n    Error_Handler();\r\n  }\r\n}\r\n\r\nstatic void MX_GPIO_Init(void)\r\n{\r\n  GPIO_InitTypeDef GPIO_InitStruct = {0};\r\n\r\n  __HAL_RCC_GPIOC_CLK_ENABLE();\r\n  __HAL_RCC_GPIOD_CLK_ENABLE();\r\n  __HAL_RCC_GPIOB_CLK_ENABLE();\r\n  __HAL_RCC_GPIOA_CLK_ENABLE();\r\n\r\n  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5, GPIO_PIN_RESET);\r\n\r\n  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_15, GPIO_PIN_RESET);\r\n\r\n  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10\r\n                          |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14;\r\n  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r\n  GPIO_InitStruct.Pull = GPIO_NOPULL;\r\n  HAL_GPIO_Init(GPIOB, &amp;GPIO_InitStruct);\r\n\r\n  \/*Configure GPIO pins : PB15 PB3 PB4 PB5 *\/\r\n  GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;\r\n  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;\r\n  GPIO_InitStruct.Pull = GPIO_NOPULL;\r\n  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r\n  HAL_GPIO_Init(GPIOB, &amp;GPIO_InitStruct);\r\n\r\n  \/*Configure GPIO pins : PA8 PA15 *\/\r\n  GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_15;\r\n  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;\r\n  GPIO_InitStruct.Pull = GPIO_NOPULL;\r\n  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r\n  HAL_GPIO_Init(GPIOA, &amp;GPIO_InitStruct);\r\n\r\n}\r\n\r\nvoid Error_Handler(void)\r\n{\r\n\r\n  __disable_irq();\r\n  while (1)\r\n  {\r\n  }\r\n  \/* USER CODE END Error_Handler_Debug *\/\r\n}\r\n\r\n#ifdef  USE_FULL_ASSERT\r\n\/**\r\n  * @brief  Reports the name of the source file and the source line number\r\n  *         where the assert_param error has occurred.\r\n  * @param  file: pointer to the source file name\r\n  * @param  line: assert_param error line source number\r\n  * @retval None\r\n  *\/\r\nvoid assert_failed(uint8_t *file, uint32_t line)\r\n{\r\n  \/* USER CODE BEGIN 6 *\/\r\n  \/* User can add his own implementation to report the file name and line number,\r\n     ex: printf(\"Wrong parameters value: file %s on line %d\\r\\n\", file, line) *\/\r\n  \/* USER CODE END 6 *\/\r\n}\r\n#endif \/* USE_FULL_ASSERT *\/<\/pre>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h6><span style=\"color: #008080;\">LECTURA ANALOGICA Y SALIDA PWM (LCD I2C)<\/span><\/h6>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include \"main.h\"\r\n#include \"adc.h\"\r\n#include \"i2c.h\"\r\n#include \"tim.h\"\r\n#include \"gpio.h\"\r\n#include \"Lcd_i2c.h\"\r\n\r\n#include \"stdio.h\"\r\n\r\nchar buf_lcd[18];\r\n\r\nuint8_t duty_pwm = 0;\r\nuint8_t porcentaje_duty = 0;\r\n\r\nvoid SystemClock_Config(void);\r\n\r\nint main(void)\r\n{\r\n\r\n  HAL_Init();\r\n  SystemClock_Config();\r\n  MX_GPIO_Init();\r\n  MX_ADC1_Init();\r\n  MX_TIM2_Init();\r\n  MX_I2C1_Init();\r\n  HAL_TIM_PWM_Start(&amp;htim2, TIM_CHANNEL_1);\r\n  __HAL_TIM_SetCompare(&amp;htim2, TIM_CHANNEL_1,0);\r\n  Lcd_Init();\r\n  while (1)\r\n  {\r\nHAL_ADC_Start(&amp;hadc1);\r\nint valor_adc = HAL_ADC_GetValue(&amp;hadc1);\r\n\r\nduty_pwm = (uint8_t)((valor_adc*99)\/4095);\r\nporcentaje_duty =  (uint8_t)((duty_pwm*100)\/99);\r\n\r\n__HAL_TIM_SetCompare(&amp;htim2, TIM_CHANNEL_1,duty_pwm);\r\n\r\nLcd_Set_Cursor(1,1);\r\nsprintf(buf_lcd, \"Analog in: %u \", valor_adc);\r\nLcd_Send_String(buf_lcd);\r\nLcd_Set_Cursor(2,1);\r\nsprintf(buf_lcd, \"pwm: %u \", duty_pwm);\r\nLcd_Send_String(buf_lcd);\r\n\r\nHAL_Delay(50);\r\n\r\n  }\r\n  \/* USER CODE END 3 *\/\r\n}\r\n\r\n\/**\r\n  * @brief System Clock Configuration\r\n  * @retval None\r\n  *\/\r\nvoid SystemClock_Config(void)\r\n{\r\n  RCC_OscInitTypeDef RCC_OscInitStruct = {0};\r\n  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};\r\n  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};\r\n\r\n  \/** Initializes the RCC Oscillators according to the specified parameters\r\n  * in the RCC_OscInitTypeDef structure.\r\n  *\/\r\n  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;\r\n  RCC_OscInitStruct.HSEState = RCC_HSE_ON;\r\n  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;\r\n  RCC_OscInitStruct.HSIState = RCC_HSI_ON;\r\n  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;\r\n  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;\r\n  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;\r\n  if (HAL_RCC_OscConfig(&amp;RCC_OscInitStruct) != HAL_OK)\r\n  {\r\n    Error_Handler();\r\n  }\r\n\r\n  \/** Initializes the CPU, AHB and APB buses clocks\r\n  *\/\r\n  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK\r\n                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;\r\n  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;\r\n  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;\r\n  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;\r\n  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;\r\n\r\n  if (HAL_RCC_ClockConfig(&amp;RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)\r\n  {\r\n    Error_Handler();\r\n  }\r\n  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;\r\n  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;\r\n  if (HAL_RCCEx_PeriphCLKConfig(&amp;PeriphClkInit) != HAL_OK)\r\n  {\r\n    Error_Handler();\r\n  }\r\n}\r\n\r\n\/* USER CODE BEGIN 4 *\/\r\n\r\n\/* USER CODE END 4 *\/\r\n\r\n\/**\r\n  * @brief  This function is executed in case of error occurrence.\r\n  * @retval None\r\n  *\/\r\nvoid Error_Handler(void)\r\n{\r\n  \/* USER CODE BEGIN Error_Handler_Debug *\/\r\n  \/* User can add his own implementation to report the HAL error return state *\/\r\n  __disable_irq();\r\n  while (1)\r\n  {\r\n  }\r\n  \/* USER CODE END Error_Handler_Debug *\/\r\n}\r\n\r\n#ifdef  USE_FULL_ASSERT\r\n\/**\r\n  * @brief  Reports the name of the source file and the source line number\r\n  *         where the assert_param error has occurred.\r\n  * @param  file: pointer to the source file name\r\n  * @param  line: assert_param error line source number\r\n  * @retval None\r\n  *\/\r\nvoid assert_failed(uint8_t *file, uint32_t line)\r\n{\r\n  \/* USER CODE BEGIN 6 *\/\r\n  \/* User can add his own implementation to report the file name and line number,\r\n     ex: printf(\"Wrong parameters value: file %s on line %d\\r\\n\", file, line) *\/\r\n  \/* USER CODE END 6 *\/\r\n}\r\n#endif \/* USE_FULL_ASSERT *\/<\/pre>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column  vc_custom_1722179936311\">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span id=\"ESPECIFICACIONES_TECNICAS\">VIDEO<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-265 alignnone\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png\" alt=\"\" width=\"1080\" height=\"36\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-300x10.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-1024x33.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores-768x25.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2019\/11\/linea-electroall-de-colores.png 1624w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/><\/span><\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-video ratio_16x9\"><div class=\"w-video-h\"><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"\/\/www.youtube.com\/embed\/_-UP_VGM9NQ?rel=0\" allowfullscreen><\/iframe><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"INTRODUCCI\u00d3N Si bien es cierto, ya hab\u00edamos realizado una serie de tarjetas plc con microcontroladores de atmel y de esp32,\u00a0 pero a\u00fan no hab\u00edamos logrado hacer con los microcontroladores de stm32. Asi que hoy vamos a desbloquear ese miedo y haremos un plc con un microcontrolador de la familia stm32. entonces, empezaremos haciendo un plc...","protected":false},"author":2,"featured_media":3131,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[19,29,12,3],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3130"}],"collection":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/comments?post=3130"}],"version-history":[{"count":6,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3130\/revisions"}],"predecessor-version":[{"id":3284,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/3130\/revisions\/3284"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media\/3131"}],"wp:attachment":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media?parent=3130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/categories?post=3130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/tags?post=3130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}