{"id":950,"date":"2020-02-12T21:09:52","date_gmt":"2020-02-13T02:09:52","guid":{"rendered":"https:\/\/www.electroallweb.com\/?p=950"},"modified":"2020-10-26T17:57:04","modified_gmt":"2020-10-26T22:57:04","slug":"funcionamiento-de-todos-los-pines-del-microcontrolador-atmega328p","status":"publish","type":"post","link":"https:\/\/www.electroallweb.com\/index.php\/2020\/02\/12\/funcionamiento-de-todos-los-pines-del-microcontrolador-atmega328p\/","title":{"rendered":"Funcionamiento de todos los pines del microcontrolador ATMEGA328P"},"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 \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5><span style=\"color: #000000;\">INTRODUCCI\u00d3N<\/span><\/h5>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">El atmega328P es un CI (circuito integrado) de alto rendimiento que esta basado en un microcontrolador RISC (computador conjunto de instrucciones reducidas), con una memoria de 32KB flash con capacidad de leer entradas mientras est\u00e9 ejecutando alguna acci\u00f3n en la parte de las salidas. Este dispositivo es uno de los microcontroladores b\u00e1sicos m\u00e1s completos que existe en la actualidad, ya que este posee una\u00a0 memoria EEPROM de 1KB, una memoria SRAM de 2KB, varios perif\u00e9ricos de comunicaci\u00f3n (USART), (ICSP), (I2C), Entradas digitales, Entradas anal\u00f3gicas, Salidas digitales, Salidas PWM.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Este dispositivo usualmente se puede encontrar en las placas de ARDUINO, el cual cuenta con su propio software de programaci\u00f3n (Arduino IDE) y, es muy usual ver muchos proyectos que est\u00e1 basado en este entorno de programaci\u00f3n.\u00a0<\/span><\/p>\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<h5><span style=\"color: #000000;\">FUNCIONAMIENTO DE TODOS LOS PINES\u00a0<\/span><\/h5>\n<p><span style=\"color: #000000;\">En esta oportunidad estudiaremos exclusivamente las funciones de cada uno de los pines externos que tiene este \u00b5C.<\/span><\/p>\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\/2020\/02\/FUNCIONAMIENTO-DE-TODOS-LOS-PINES-ATMEGA328P.png\" ref=\"magnificPopup\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"499\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/FUNCIONAMIENTO-DE-TODOS-LOS-PINES-ATMEGA328P.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/FUNCIONAMIENTO-DE-TODOS-LOS-PINES-ATMEGA328P.png 887w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/FUNCIONAMIENTO-DE-TODOS-LOS-PINES-ATMEGA328P-300x169.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/FUNCIONAMIENTO-DE-TODOS-LOS-PINES-ATMEGA328P-768x432.png 768w\" sizes=\"(max-width: 887px) 100vw, 887px\" \/><\/a><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><strong><span style=\"color: #000000;\"><a href=\"https:\/\/www.mouser.com\/pdfdocs\/Gravitech_ATMEGA328_datasheet.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">DESCARGAR DATASHEET<\/a> completo<\/span><\/strong><\/p>\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 style=\"padding-left: 40px;\"><span style=\"color: #008080;\"><span style=\"color: #ff0000;\">VCC<\/span> &amp; <span style=\"color: #000000;\">GND<\/span><\/span><\/h6>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">\u00a0Estos pines son propiamente de alimentaci\u00f3n, donde <strong>GND<\/strong> es (0V), y <span style=\"color: #ff0000;\"><strong>VCC<\/strong><\/span> puede ser 3.3 &#8211; 5V, esta alimentaci\u00f3n depende mucho del tipo de empaquetado que se usa (DIP), (QFP), (QFN).<\/span><\/p>\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 style=\"padding-left: 40px;\"><span style=\"color: #ffcc00;\">CONTROL (RESET)<\/span><\/h6>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">Este pin cumple la funci\u00f3n de reiniciar todo el proceso desde cero. Para este efecto se necesita obligatoria mente realizar las siguientes conexiones.\u00a0<\/span><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image style_outlined\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"282\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-reset-para-atmega328p.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-reset-para-atmega328p.png 500w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-reset-para-atmega328p-300x169.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h6 style=\"padding-left: 40px;\"><span style=\"color: #cccc10;\">PUERTO (PB, PC, PD)<\/span><\/h6>\n<p style=\"padding-left: 40px; text-align: justify;\"><span style=\"color: #000000;\">Casi\u00a0 todos los pines de los \u00b5C est\u00e1n divididos en\u00a0 grupos o\u00a0 en puertos (PuertoB, puertoC, puertoD). En algunos software de programaci\u00f3n es necesario saber al pie de la letra estos puertos ya que \u00e9ste es la direcci\u00f3n f\u00edsica de los pines externos, en el caso del IDE de arduino no es necesario ya que estos puertos est\u00e1n denominados con un n\u00famero espec\u00edfico.\u00a0<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #008080;\"><strong>ARDUINO IDE<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">int Q0_0=12; \/\/ 12 Pertenece a PUERTO PB4\r\nint Q0_1=13; \/\/ 13 Pertenece a PUERTO PB5\r\nint Q0_2=14; \/\/ 14 Pertenece a PUERTO PC0\r\nint Q0_3=15; \/\/ 15 Pertenece a PUERTO PC1\r\nint Q0_4=16; \/\/ 16 Pertenece a PUERTO PC2\r\nint Q0_5=17; \/\/ 17 Pertenece a PUERTO PC3\r\nint Q0_6=18; \/\/ 18 Pertenece a PUERTO PC4\r\nint Q0_7=19; \/\/ 19 Pertenece a PUERTO PC5<\/pre>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image style_outlined\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"411\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/ARQUITECTURA-DE-LOS-PUERTOS-DE-ATMEGA328P-1024x411.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/ARQUITECTURA-DE-LOS-PUERTOS-DE-ATMEGA328P-1024x411.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/ARQUITECTURA-DE-LOS-PUERTOS-DE-ATMEGA328P-300x121.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/ARQUITECTURA-DE-LOS-PUERTOS-DE-ATMEGA328P-768x309.png 768w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/ARQUITECTURA-DE-LOS-PUERTOS-DE-ATMEGA328P.png 1150w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h6 style=\"padding-left: 40px;\"><span style=\"color: #000000;\">FUNCI\u00d3N<\/span><\/h6>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><strong>INT0, INT1<\/strong>; Estas funciones son interruptores, cuya funci\u00f3n es interrumpir una acci\u00f3n o un proceso\u00a0 que se est\u00e1 ejecutando en el momento, es decir, si se tiene un cambio de estado en una de estas entradas (previamente designadas en la parte de la programaci\u00f3n), el procese que se esta ejecutando dejar\u00e1 de hacer lo que esta haciendo, y dar\u00e1 prioridad a la acci\u00f3n relacionada con los interruptores.<\/span><\/span><\/span><\/span><\/span><span style=\"color: #008080;\"><strong>ARDUINO IDE<br \/>\n<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">void setup() {\r\nattachInterrupt(digitalPinToInterrupt(2),velocidadMenos,RISING); \/\/Habilitando la funci\u00f3n INT0\r\nattachInterrupt(digitalPinToInterrupt(3),velocidadMas  ,RISING); \/\/Habilitando la funci\u00f3n INT1\r\n}\r\nvoid velocidadMenos(){\r\n\r\n\/\/ACCI\u00d3N A EJECUTAR\r\n}\r\nvoid velocidadMas(){\r\n\/\/ACCI\u00d3N A EJECUTAR\r\n}<\/pre>\n<\/li>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\"><strong>XTAL1, XTAL2<\/strong>; estas funciones son para colocar los osciladores o los crytals. Para usar en con el software de arduino usualmente se usa de 16Mhz y va conectado con unos capacitores de 22pF en cada pin asi como se muestra en la siguiente imagen.<\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-969\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/Untitled-Sketch_bb-293x300.png\" alt=\"\" width=\"293\" height=\"300\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/Untitled-Sketch_bb-293x300.png 293w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/Untitled-Sketch_bb.png 486w\" sizes=\"(max-width: 293px) 100vw, 293px\" \/><\/li>\n<\/ul>\n<\/li>\n<\/ul>\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 style=\"padding-left: 40px;\"><span style=\"color: #000000;\"><span style=\"color: #008080;\">PINES DE ENTRADAS ANAL\u00d3GICAS (A0 -A5)<\/span><\/span><\/h6>\n<p style=\"padding-left: 40px; text-align: justify;\"><span style=\"color: #000000;\">Como su nombre lo indica estos puertos son propiamente para las entradas anal\u00f3gicas que tienen una resoluci\u00f3n de 10 Bits C\/U, lo que en n\u00fameros decimales ser\u00eda 0 &#8211; 1023, con estos valores se trabajar\u00e1 en la parte de la programaci\u00f3n.<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" style=\"padding-left: 40px;\" data-enlighter-language=\"cpp\">if(tecla){\r\n  digitalWrite (al,HIGH);\r\n  if(analogRead(A2)&lt;250){\r\n   digitalWrite(lamp,HIGH);\r\n  }\r\n  if(analogRead(A2)&gt;250){\r\n    digitalWrite(lamp,LOW);\r\n}\r\n}\r\nif (buttonState==HIGH){\r\n    digitalWrite(lamp,LOW);\r\n    digitalWrite (al,LOW);\r\n  }<\/pre>\n<h6 style=\"padding-left: 40px;\"><span style=\"color: #000000;\">\u00a0<\/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<h6 style=\"padding-left: 40px;\"><span style=\"color: #ff6600;\">PINES DE SALIDAS PWM\u00a0<\/span><\/h6>\n<p style=\"padding-left: 40px; text-align: justify;\"><span style=\"color: #000000;\">En este dispositivo contaremos con 6 salidas PWM (modulaci\u00f3n por ancho de pulso), que tienen una resoluci\u00f3n de 8 Bits, lo que en n\u00fameros decimales ser\u00edan 0 a 255, con lo cual se trabajar\u00e1 en la parte de la programaci\u00f3n. A continuaci\u00f3n se muestra un ejemplo de control de un motor DC, donde 0 es la velocidad m\u00ednima y 255\u00a0 es la velocidad m\u00e1xima.<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">int Motor = 6;                 \/\/  declaramos  las variables de tipo entero\r\nint entrada_analogica= A0;\r\n\r\nvoid setup() {\r\n  pinMode (Motor, OUTPUT);               \/\/ designamos los pines como pines de salida y entrada\r\n  pinMode (entrada_analogica, INPUT);    \/\/ entrada\r\n}\r\n\r\nvoid loop() {                          \/\/entramos a un siclo repetitivo\r\n\r\nint valor_entrada_analogica =0;       \/\/  declaramos  las variables de tipo entero\r\nint valor_salida_pwm=0;                   \/\/  declaramos  la variable de tipo entero para la ulizacion de la modulacion por ancho de pulso\r\n                                      \/\/  ojo ( estos pines tienes que ser pines de (PWM)\r\n\r\n valor_entrada_analogica = analogRead(entrada_analogica);  \/\/ Guardamos la lectura analogica en la variable (valor_entrada_anal\u00f3gica)\r\n valor_salida_pwm =map(valor_entrada_analogica,0, 1023,0,255); \/\/ guardamos el mapeo en la variable (valor salida)\r\n analogWrite(Motor, valor_salida_pwm);                           \/\/ manifestamos en el led la lectura analogica que hemos reducido de( 0 - 255)\r\n                                                           \/\/ donde 0 es 0 voltios y 255 viene ser 5 voltios\r\n\r\n}<\/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-8 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"INTRODUCCI\u00d3N El atmega328P es un CI (circuito integrado) de alto rendimiento que esta basado en un microcontrolador RISC (computador conjunto de instrucciones reducidas), con una memoria de 32KB flash con capacidad de leer entradas mientras est\u00e9 ejecutando alguna acci\u00f3n en la parte de las salidas. Este dispositivo es uno de los microcontroladores b\u00e1sicos m\u00e1s completos...","protected":false},"author":2,"featured_media":979,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[25,12,18,20],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/950"}],"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=950"}],"version-history":[{"count":25,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/950\/revisions"}],"predecessor-version":[{"id":1860,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/950\/revisions\/1860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media\/979"}],"wp:attachment":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media?parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/categories?post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/tags?post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}