{"id":1188,"date":"2018-02-28T00:27:45","date_gmt":"2018-02-28T05:27:45","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1188"},"modified":"2021-10-17T00:22:52","modified_gmt":"2021-10-17T05:22:52","slug":"capacitor-carga-y-descarga","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/edelros\/capacitor-carga-y-descarga\/","title":{"rendered":"Capacitor carga y descarga"},"content":{"rendered":"<p>El experimento usa como sensor un puerto anal\u00f3gico\/digital de un \"arduino uno\" para <em><strong>medir<\/strong> <\/em>el voltaje del capacitor y el <strong><em>tiempo<\/em> <\/strong>transcurrido desde el inicio del proceso de carga o descarga.<a href=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga_01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1189 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga_01.png\" alt=\"\" width=\"392\" height=\"243\" srcset=\"https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga_01.png 392w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga_01-300x186.png 300w\" sizes=\"auto, (max-width: 392px) 100vw, 392px\" \/><\/a><\/p>\n<p>El concepto b\u00e1sico se aplica mediante un resistor y capacitor como el mostrado en el diagrama.<br \/>\nEl valor de +V es de +5 Voltios, C = 220 \u03bcF y R = 1 k\u03a9.<\/p>\n<h3>Mediciones<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1190 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga02.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga02.png 640w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga02-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>El sensor entrega las mediciones del voltaje del capacitor como <em><strong>valor<\/strong><\/em>es discretos en el rango [0, 1024), que son los valores discretos para el rango de voltajes [0, 5] en +V.<\/p>\n<p>El dispositivo de medici\u00f3n entrega el <em><strong>tiempo<\/strong> <\/em>transcurrido en microsegundos (\u03bcs) desde el inicio de evento de carga o descarga.<\/p>\n<p>Los datos del sensor para la ejecuci\u00f3n de un experimento se encuentran en el siguiente archivo de texto :<br \/>\n<a href=\"https:\/\/www.dropbox.com\/s\/aqcv1dgia24ye2v\/CargaDescargaDatos01.txt?dl=0\"><em><strong>CargaDescargaDatos01<\/strong><\/em><em><strong>.txt<\/strong><\/em><\/a> , cuyos datos se pueden procesar y graficar en cualquier software. El archivo contiene el n\u00famero de muestra <em><strong>i<\/strong><\/em>, <em><strong>tiempo<\/strong> <\/em>transcurrido y el <em><strong>valor<\/strong> <\/em>de la medici\u00f3n, separados por comas (<code>','<\/code>):<\/p>\n<pre>i, <strong><em>tiempo<\/em><\/strong>, valor\r\n0,212,5\r\n1,5560,3\r\n2,10948,2\r\n3,16388,4\r\n4,21820,4\r\n....\r\n<\/pre>\n<p>Preguntas<\/p>\n<ol>\n<li>\u00bfCu\u00e1l es el valor de cada paso dy de en el eje y?,<\/li>\n<\/ol>\n<hr \/>\n<h3>Circuito de prueba con Arduino<\/h3>\n<p>Para las pruebas se us\u00f3 un arduino uno con los valores de componentes mostrados en el diagrama esquematico.<\/p>\n<p>Las mediciones de los voltajes del capacitor se realizan en el pin A0, que est\u00e1 en el bloque de entradas anal\u00f3gicas. El control de la carga se realiza con el pin 13 que pasa de estado alto +5V a estado bajo 0V, mientras que para la descarga se habilita el pin 11 para descarga m\u00e1s r\u00e1pida con la resistencia R2. En el estado de carga el pin 11 pasa a un estado de alta impedancia, por lo que no afecta al circuito en general.<a href=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1191 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga03.png\" alt=\"\" width=\"825\" height=\"546\" srcset=\"https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga03.png 825w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga03-300x199.png 300w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga03-768x508.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/a><\/p>\n<p>Como referencia se muestra el diagrama de conexiones f\u00edsicas de los dispositivos.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1192 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga04.png\" alt=\"\" width=\"711\" height=\"476\" srcset=\"https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga04.png 711w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga04-300x201.png 300w, https:\/\/blog.espol.edu.ec\/edelros\/files\/2018\/02\/CargaDescarga04-272x182.png 272w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/a><\/p>\n<p>El script de arduino usado en el arduino destaca los procesos de carga y descarga, asi como la escritura de los datos en el puerto serial.<\/p>\n<pre>\/* carga y descarga de un capacitor, \r\n * Para el ejercicio C=220 microf, Rcarga=1 kOhm, Rdescarga=470 Ohm\r\n*\/\r\n\r\n\/\/ Pines usados\r\n#define cargar 13   \r\n#define descargar 11    \/\/ descarga auxiliar\r\n#define medir 0 \r\nunsigned long t0;   \/\/ tiempo inicio lecturas\r\nunsigned int valorsensor;\r\n\r\nvoid setup () {\r\n  pinMode(cargar, OUTPUT );    \/\/ pin de carga  \r\n  pinMode(descargar, OUTPUT ); \/\/ pin de descarga auxiliar\r\n  Serial.begin(9600);          \/\/ envio dato serial\r\n}\r\n\r\nvoid loop(){\r\n  \/* Descarga capacitor *\/ \r\n  digitalWrite(cargar, LOW );\r\n  pinMode(descargar, OUTPUT );               \r\n  digitalWrite(descargar, LOW );          \r\n\r\n  t0 = micros ();                 \/\/ tiempo inicial\r\n  valorsensor = analogRead(medir);\r\n  while (valorsensor&gt; 0) {\r\n    Serial.print ( micros ()-t0); \/\/ tiempo transcurrido \r\n    Serial.print ( \",\" );\r\n    Serial.println(valorsensor) ;\r\n    valorsensor = analogRead(medir);\r\n  }\r\n  \r\n  \/* carga capacitor *\/ \r\n  digitalWrite (cargar, HIGH ); \r\n  pinMode(descargar, INPUT );    \/\/ pin auxiliar con alta impedancia\r\n  t0 = micros ();                 \/\/ tiempo inicial \r\n  valorsensor = analogRead (medir); \r\n  while (valorsensor &lt;1016) {         \/\/ valor maximo de carga de 1024 \r\n    Serial.print ( micros ()-t0);\r\n    Serial.print ( \",\" );\r\n    Serial.println (valorsensor);\r\n    valorsensor = analogRead (medir);\r\n  }\r\n}\r\n<\/pre>\n<hr \/>\n<h3>Lectura de datos con Python<\/h3>\n<p>Los datos de arduino se reciben en el computador por el puerto USB\/Serial donde se encuentra conectado el arduino. Para el experimento se han tomado 500 muestras que luego se almacenan en el archivo de texto y se grafican los datos.<\/p>\n<p>Para usar el c\u00f3digo, ser\u00e1 necesario verificar el puerto \"com5\" donde se encuentra conectado el arduino y los baudios usados para la transmisi\u00f3n de los datos. El puerto se revisa en el programa de arduino en el men\u00fa de herramientas\/puerto cuando el arduino est\u00e1 conectado.<\/p>\n<pre># Captura de datos desde puerto serial\r\n# Generados desde arduino uno\r\nimport serial, time\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\n\r\n# PROGRAMA\r\nmuestras = 500\r\n\r\npuerto = 'com5'\r\nbaudios = 9600\r\n\r\n# Procedimiento\r\n\r\n# Inicializa comunicaci\u00f3n con arduino\r\narduino = serial.Serial(puerto, baudios)\r\narduino.setDTR(False)  \r\ntime.sleep(0.3)  \r\n# limpia buffer de datos anteriores\r\narduino.flushInput()  \r\narduino.setDTR()  \r\ntime.sleep(0.3)\r\nprint('\\nEstado del puerto: ',arduino.isOpen())\r\nprint('Nombre del dispositivo conectado: ', arduino.name)\r\nprint('Dump de la configuraci\u00f3n:\\n ',arduino)\r\nprint('\\n###############################################\\n')\r\n\r\n# Captura datos\r\ndatos = []\r\ni = 0\r\nwhile (i&lt;muestras):\r\n    while (arduino.inWaiting()==0):\r\n        pass #esperar hasta recibir un dato\r\n    linea = arduino.readline() # lee puerto serial\r\n    lectura = linea.decode().strip() # elimina \/r\/n\r\n    lectura=lectura.split(',')\r\n    if (len(lectura)==2):\r\n        tiempo = int(lectura[0])\r\n        valor = int(lectura[1])\r\n        undato= [i, tiempo, valor]\r\n        datos.append(undato)\r\n        print(undato)\r\n        i=i+1\r\narduino.close()\r\n# convierte lista a arreglo\r\ndatos=np.array(datos)\r\n\r\n# Salida\r\nnp.savetxt('CargaDescargaDatos.txt',datos, fmt='%d', delimiter=',' )\r\nplt.plot(datos[:,0],datos[:,2])\r\nplt.title('Carga y descarga de capacitor')\r\nplt.xlabel('muestra i')\r\nplt.ylabel('valor[i]')\r\nplt.show()\r\n<\/pre>\n<p>La comunicaci\u00f3n se inicializa limpiando el bufer de datos anteriores que pueden distorsionar la toma de los primeros datos. El estado de la comunicaci\u00f3n se muestra en el mismo bloque.<\/p>\n<p>La captura de datos convierte la lectura en el puerto serial, a formato num\u00e9rico para ser anadido a los datos.<\/p>\n<p>Al final se almacenan los datos en un archivo en formato texto y se grafica lo obtenido.<\/p>\n<p><strong><em>Referencia<\/em><\/strong>: <a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/CapacitanceMeter\">https:\/\/www.arduino.cc\/en\/Tutorial\/CapacitanceMeter<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El experimento usa como sensor un puerto anal\u00f3gico\/digital de un \"arduino uno\" para medir el voltaje del capacitor y el tiempo transcurrido desde el inicio del proceso de carga o descarga. El concepto b\u00e1sico se aplica mediante un resistor y capacitor como el mostrado en el diagrama. El valor de +V es de +5 Voltios, &hellip; <a href=\"https:\/\/blog.espol.edu.ec\/edelros\/capacitor-carga-y-descarga\/\" class=\"more-link\">Sigue leyendo <span class=\"screen-reader-text\">Capacitor carga y descarga<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1429785],"tags":[],"class_list":["post-1188","post","type-post","status-publish","format-standard","hentry","category-capacitor-carga-descarga"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/comments?post=1188"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1188\/revisions"}],"predecessor-version":[{"id":2308,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1188\/revisions\/2308"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/media?parent=1188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/categories?post=1188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/tags?post=1188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}