Está en la página 1de 25

2017­5­14 Conversor analógico digital

Conversor analógico digital
La conversión analógica digital, es la que nos permite transformar una señal analógica (un voltaje), en una representación
digital (números binarios) del valor correspondiente a la tensión en el pin de entrada para poder trabajar con ella. Se utiliza en
infinidad de aplicaciones, lo más común es usarla para leer señales provenientes de algún sensor (temperatura, humedad,
acelerómetros, etc.).

El PIC que se ha utilizado en este tutorial, es el PIC 16f877A, pero si se utiliza cualquier otro, el funcionamiento es
prácticamente el mismo.

Anuncios Google Digital Pic Arduino Pic Pic C Compiler

En esta primera parte del tutorial, se hace una pequeña introducción con el datasheet del PIC 16f877A, para darnos a conocer
un poco su funcionamiento y de este modo también tener en cuenta que parámetros debemos fijarnos a la hora de configurar el
conversor con cualquier otro PIC. También se habla un poco de las funciones a utilizar en el código y lo que realiza cada una.

Tutorial PIC ADC, Introducción (1/3)

En el segundo vídeo, se expone un código de ejemplo, en el cual se lee una tensión de en la entrada analógica AN0 que está
conectada a un potenciómetro (la cual podría ser la señal analógica proveniente de cualquier sensor u otro dispositivo), y
dependiendo de cuál sea su nivel de tensión, se enciende un determinado número de leds que es equivalente a la tensión
leída. También se explica una configuración previa, de la cual nos provee el propio compilador al usar el Wizard aunque no es
necesario puesto que lo podemos hacer directamente nosotros mismos si conecemos las funciones necesarias para llevar a
cabo la configuración

Las cookies de este sitio se usan para personalizar el contenido y los anuncios, para ofrecer funciones de medios sociales y
para analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de
medios sociales, de publicidad y de análisis web.. Accept  Read More

http://www.tutoelectro.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 1/25

2017­5­14 Conversor analógico digital

Tutorial PIC ADC, Código (2/3)

Como venimos haciendo en los últimos tutoriales, el último vídeo o en la parte final del vídeo, les mostramos el
ejemplo realizado en el código funcionando en una protoboard. Así ustedes pueden hacer la prueba también que siempre es
recomendable para afianzar los conocimientos.

Tutorial PIC ADC, Funcionamiento

Si tienen alguna duda no duden en comentarla en el foro del blog.

Descarga: Código y Esquemático

Las cookies de este sitio se usan para personalizar el contenido y los anuncios, para ofrecer funciones de medios sociales y
71 Comentarios
para analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de
medios sociales, de publicidad y de análisis web.. Accept  Read More

http://www.tutoelectro.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 2/25

tutoelectro. Accept  Read More http://www. compartimos información sobre el uso que haga del sitio web con nuestros partners de Josean diciembre 21. para ofrecer funciones de medios sociales y para analizar el tráfico. 2010 a las 10:04 pm medios sociales. Saludos! Dantechs diciembre 16.bueno gracias y FELICITACIONES…! Las cookies de este sitio se usan para personalizar el contenido y los anuncios. 2010 a las 6:01 am muy interezantes todos los video tutoriales me parecen que estan muy bien estructurados y van a lo que todos nos intereza “al grano” ¡¡felicitaciones! Twistx77 diciembre 16.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 3/25 .… y me estan ayudando mucho para relizar mis proyectos talvez podrias hacer un tutorial de como realizar el control de ADC a un PWM. 2010 a las 10:21 pm Buenas.. En cualquier caso voy a subir el programa que mi compañero no lo ha hecho. Además. y controlar un servomotor. Postea tu código en el foro para ver si te podemos ayudar puesto a que sin ver el código es muy dificil. Saludos! ulysseszxy diciembre 19. en este caso un potenciometro como ADC. 2010 a las 8:04 am OYE COMPAÑERO YO TRATE DE MONTAR EL MAIN TUYO Y EL CIRCUITO EN PROTEUS Y NO FUNCIONA NO SE QUE TENGO MAL PERO SIEMPRE SALTA AL CASE 6 SI ME PODRIAS COLABORAR ENVIANDOME EL LENGUAJE ES QUE LO NESECITO URGENTISIMO PARA MI PROYECTO O SI TIENES COMO UNIR UN LCD Y UN ADC TE LO AGRADECERIA COMPAÑERO ESPERO TU RESPUES Y DE ANTEMANO GRACIAS Twistx77 noviembre 28. de publicidad y de análisis web. 2010 a las 6:35 pm Eh estado viendo los tutoriales y verdad son muy interesantes.2017­5­14 Conversor analógico digital HECTOR GONZALEZ noviembre 28. 2010 a las 3:34 pm Muchas gracias! Me alegro que te gusten.

 2010 a las 12:53 pm Gracias Twistx77. Ten en cuenta que no debes usar resistencias de valor pequeño puesto que eso hará que circule mucha corriente de la batería por tu divisor. 2010 a las 12:29 am Buenas. Accept  Read More http://www.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 4/25 . siempre va a estar entre 20 y 24 voltios. al final he cambiado la batería de 24 a 12v. Como estoy usando la arduino UNO. de publicidad y de análisis web. otra solución podría ser bajar a 4V los 24V en el divisor resistivo. Te recomiendo que si lo haces pongas un zener de 5. como dices. medios sociales. ¿no? Supongo que usando resistencias de este valor no hará falta meter un diodo.tutoelectro. 2010 a las 12:59 am Muchas gracias. para ofrecer funciones de medios sociales y dos de 12k). Además. De esa manera tendrás que 24V son 1024 o casi. hacer que al conversor le lleguen 5v cuando hay unos 14v y 0v cuando hay 0v. gracias por el comentario. Saludos! Twistx77 diciembre 22. no sé si poniendo una tensión de 7v en la Vref me haría que 7v fuera el 0 lógico y el 14 los 1023.1V en inversa en la entrada del conversor para evitar que se queme el conversor si la batería sobre pasa los 24V. el próximo vídeo hablaré del PWM y más adelante pondré todo junto en una sola aplicación.. No se si me explicado bien. compartimos información sobre el uso que haga del sitio web con nuestros partners de Gracias. ¿no? para analizar el tráfico. Para obtener los 7v en el Vref supongo que tendría que hacer otro divisor de tensión para obtener en vez de 5v 7v (con Las cookies de este sitio se usan para personalizar el contenido y los anuncios. respecto al ADC. ¿como hago para que el 0 sea 20 voltios y el 24 el 1024? Gracias Twistx77 diciembre 22. y he añadido un divisor de tensión para.2017­5­14 Conversor analógico digital Felicidades Twistx77. me gustaría saber si sería posible centrar la conversión en un rango determinado. si quiero medir la tensión de una batería que oscila muy poco. Cualquier duda por favor exponla en el foro que nos permite subir imágenes para explicar mejor. Saludos! Josean diciembre 22. En el cálculo que he hecho me sale una de 12k con otra de 6k8. Por ahora ya he mostrado como usar el ADC. lo más fácil que se me ocurre es hacer un divisor resistivo de modo que para cuando tengas 24V en la resistencia del divisor tengas 5V máximo. Por ejemplo. Luego aunque 20V no sean 0 en el divisor lo que puedes hacer es usar una tensión de referencia para la Vref­ como puede ser por ejemplo 2V lo que haría que tengas la lectura entre 5V y 2V para lo cual tendrías una resolución de unos 3 mV para extrapolarlo luego a la tensión de la batería.

 por lo que entiendo que en el caso de la arduino la referencia es común para todas las entradas analógicas.. Saludos! Josean diciembre 24. 2010 a las 9:51 pm Gracias por el apunte. de publicidad y de análisis web. Enrique Twistx77 enero 6. en este caso de 5V. De todos modos luego me he dado cuenta que necesito sensar una tensión más.2017­5­14 Conversor analógico digital Twistx77 diciembre 24.3V por lo que si está alimentado a 5V la máxima tensión que podrás poner es de 5. compartimos información sobre el uso que haga del sitio web con nuestros partners de Buenas. ya que he visto por datasheet que puede ser que el cristal tenga una configuración para el USB y a su vez otro para el resto. Lo hago con el PIC 18F4550. Tengo unas dudas que a ver si me puedes ayudar a resolver.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 5/25 .0. en mi caso alimento el arduino UNO con la propia batería (12v).3V . Gracias Twistx77 Enrique88 enero 2.tutoelectro. 2010 a las 7:02 pm Hola amigo. a través de un circuito regulador de tensión LM317 (lo tendría que ajustar a 6. Accept  Read More http://www. El problema que tengo es que necesito un cristal trabajando rápido debido a que hago el envío por USB 2. Estoy realizando un proyecto en el que si que necesito que el ADC vaya lo más rápido posible. ¿no? . Siento decirte que no podrás conectar los 7V al VRef del ADC puesto a que según el datasheet del ATMega328 (El micro de Arduino) la tensión máxima en VRef es la que tengas en AVcc y esta como máximo puede valer Vcc+0.pdf . Como bien dices. alguna manera de solucionarlo. 2011 a las 6:45 pm Hola.com/dyn/resources/prod_documents/doc8271. por lo que mi gozo en un pozo. Lo puedes comprobar en el datasheet en la página 328. como se podrían configurar los fuses. para ofrecer funciones de medios sociales y para analizar el tráfico.7<V<7. 2011 a las 4:10 pm Las cookies de este sitio se usan para personalizar el contenido y los anuncios. poniendo un cristal menos rápido. Me gustaría saber que posibles soluciones tengo. Además. Gracias y espero haberme explicado. Saludos. medios sociales. para conseguir la máxima rapidez hay que bajar la frecuencia de trabajo.3) conectado al "jack" del arduino.atmel. aquí te dejo un link http://www.

 2011 a las 8:23 pm Buenas tardes. 2011 a las 12:18 pm He puesto tutoriales en C de PIC. Además. pero tuve un problema ya que los rangos de corriente a medir estaban en micro amperios y por tanto el voltaje en la entrada del A/D era muy pequeño. Saludos! Lennon abril 3. Saludos! vicente febrero 2.. Por lo tanto no esperes frecuencias de muestreo de 500k/s sino inferiores. de publicidad y de análisis web.medios sociales. Twistx77. En primera instancia quiero felicitarte por el trabajo realizado. Por lo tanto pon un cristal que te sirva para el USB puesto a que seguro que es más que suficiente para conseguir la máxima velocidad del ADC. para solucionarlo utilize un amplificador de instrumentación y estableci una relación. Ahora la velocidad del ADC vendrá determinado por el reloj que elijas en la configuración pero tienes que tener en cuenta que tienes que configurarlo para que el tiempo de adquisición de cada bit sea el suficiente. poniendo un cristal más rápido. Además tienes que tener en cuenta que tiene que pasar un tiempo mínimo entre conversiones que también lo tendrás especificado en el datasheet.. No los simulo en Proteus. Accept  Read More http://www. para ofrecer funciones de medios sociales y Buenas. para analizar el tráfico. cuando tenga tiempo subiré el próximo. Como solución plantie realizar una medida indirecta de la coriente mediente el voltaje y la resistencia (Ley de ohm). Escribo porque me encuentro desarrollando un proyecto donde necesito medir corriente y visualizarla en un LCD.6uS. Twistx77 abril 4. compartimos información sobre el uso que haga del sitio web con nuestros partners de gracias por tu comentario.2017­5­14 Conversor analógico digital no se si te has confundido al escribirlo pero para conseguir la máxima rapidez tienes que subir la frecuencia de trabajo no bajarla.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 6/25 . en especial queria ver si me podrias ayudar con la visualización en el LCD de los valores obtenidos. me parece que estas aportando mucho al conocimiento con este blog. Si mal no recuerdo para la mayoría de los PIC de la serie 16 era 1.tutoelectro. 2011 a las 7:33 am podrias poner mas tutoriales sobre codigos en pic c y simularlo en proteus!!! saludos!! Twistx77 febrero 5. Bueno en fin tengo el pseudo código para la solución del problema. 2011 a las 10:41 pm Las cookies de este sitio se usan para personalizar el contenido y los anuncios. los monto en una protoboard y de muestro como funcionan.

 2011 a las 4:53 pm Quiciera saber si me puedes orientar. compartimos información sobre el uso que haga del sitio web con nuestros partners de 1. Quizás haya alguno especial pero en general la serie 16 usa conversores de esa velocidad. para ofrecer funciones de medios sociales y Con un 16 te refieres a un pic de la serie 16 no? Si es así creo que todos los de la serie 16 tienen un tiempo mínimo por bit de para analizar el tráfico. Solo quiero tomarlo como ejemplo para sentarme a desarrollar mi proyecto. no entiendo cual es tu problema. Gracias jonathan abril 11. mira lo q pasa es q pues no entiendo muy bn la tabla de frecuancia de operacion y tda y pues no se diigamos como obtener este 1. 2011 a las 3:02 pm hola. Las cookies de este sitio se usan para personalizar el contenido y los anuncios. si vas al datasheet y buscas Selecting the A/D Conversion Clock. Solo necesitas saber la frecuencia a la que está trabajando tu micro para calcular el tiempo. tendrás en ese apartado. De todas maneras. medios sociales. cual es el minimo tiempo q puedo obtener ? Eduardo abril 11. Accept  Read More http://www. de publicidad y de análisis web. Por eso busque alternativas y vi que programas en C con CCS es bastante sencillo..6uS. Necesito un ejemplo donde se haga uso del conversor AD y se muestre en un LCD algun valor relacionado con la lectura del A/D. Además.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 7/25 . me gustan mucho estos videos son muy claros en su mayoria. una tabla en la que dice la configuración correspondiente dependiendo del oscilador que estés usando. Saludos. inicialmente estaba desarrollando el proyecto en Assemble pero me parecio muy tedioso y el proyecto como tal no requiere un estricto control de maquina. tengo q hacer un conversor el cual debe ser lo mas rapido posible y lo quiero hacer con un 16. Estoy usando el PIC 16F877A.6 us. 2011 a las 12:51 pm Buenas. 2011 a las 3:40 am Hola Twistx77. como hago para manejar el convertidor analogo digital del pic 16f873 conectado a 5 cny Twistx77 abril 12.tutoelectro.2017­5­14 Conversor analógico digital Necesito saber cual es el problema que tienes para poder ayudarte  Exactamente que te pasa? que micro y que lenguaje estás usando. que LCD? Saludos! Lennon abril 5.

0. compartimos información sobre el uso que haga del sitio web con nuestros partners de tension=read_adc(); delay_ms(1); medios sociales..h” #byte PORTB = 0x06  void main() { ////Config/// setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); //setup_pp(PMP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);  setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 8/25 .1); setup_comparator(NC_NC_NC_NC); unsigned int16 tension=0; set_tris_b(0x00); set_adc_channel (0); delay_us(10); while(1){ Las cookies de este sitio se usan para personalizar el contenido y los anuncios. 2011 a las 6:16 am amigo he estado usando el arduino he investigado un poco . Además.he visto tus tutoriales dicho de paso son muy buenos ; hay algo que no me queda claro aun es respecto a la comunicacion serial.tutoelectro. para ofrecer funciones de medios sociales y para analizar el tráfico.2017­5­14 Conversor analógico digital Saludos! Andrea abril 14. Accept  Read More http://www.quisiera por favor que expliques este tema tanto en arduino como en pic ( veo que se usa bastante en varias funciones del arduino ) neo3shion junio 2. de publicidad y de análisis web. 2011 a las 10:43 pm ¡Muchas gracias por tu aporte! foraneo77 mayo 7. 2011 a las 3:53 pm buen dia he montado las lineas tal cual las pones en el video: #include “I:\U\Electronica 3\proyecto\programa adc.

c”Line 38(7. Además.c”Line 34(7.c”Line 36(7..c”Line 32(7.11): A numeric expression must appear here  ***Error51″programa adc.9): A numeric expression must appear here ***Error12″programa adc.c”Line 25(4.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 9/25 .c”Line 29(11.9): Undefined identifier valor ***Error12″programa adc.c”Line 16(1. para ofrecer funciones de medios sociales y ***Error51″programa adc. compartimos información sobre el uso que haga del sitio web con nuestros partners de ***Error51″programa adc.c”Line 42(7.11): A numeric expression must appear here  medios sociales.tutoelectro.16): Undefined identifier valor  ***Error51″programa adc.11): A numeric expression must appear here  ***Error51″programa adc. de publicidad y de análisis web. Accept  Read More http://www.11): A numeric expression must appear here  Las cookies de este sitio se usan para personalizar el contenido y los anuncios.11): A numeric expression must appear here  ***Error51″programa adc.11): Undefined identifier tension  ***Error12″programa adc.c”Line 27(4.c”Line 40(7.11): A numeric expression must appear here  ***Error51″programa adc.11): A numeric expression must appear here  para analizar el tráfico.c”Line 30(7.2017­5­14 Conversor analógico digital valor=tension/127; switch(valor){ case 0: PORTB=0b00000000;  break; case 1: PORTB=0b00000001;  break; case 2: PORTB=0b00000011;  break; case 3: PORTB=0b00000111;  break; case 4: PORTB=0b00001111;  break; case 5: PORTB=0b00011111;  break; case 6: PORTB=0b00111111;  break; case 7: PORTB=0b01111111;  break; case 8: PORTB=0b11111111; break; default: break; } } // TODO: USER CODE!! } ————————————————————————————————————– y al momento de compilar el archivo se producen 14 errores: ***Error51″programa adc.

com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 10/25 .c”Line 44(7.14): A numeric expression must appear here —————————————————————————————————————­ espero me puedas ayudar pronto. Que es lo que no entiendes exactamente? Twistx77 junio 16. Twistx77 junio 12. en verdad lo necesito. A que se debe? saludos.c”Line 46(7.tutoelectro. Saludos. 2011 a las 6:14 pm El primer error puede ser que no hayas definido la variable “valor”. 2011 a las 11:08 pm He hecho vídeos sobre ambos.c”Line 49(7. Accept  Read More http://www. Además. 2011 a las 11:09 pm Prueba a poner debajo de esta línea: unsigned int16 tension=0; unsigned int8 valor = 0; Saludos! Las cookies de este sitio se usan para personalizar el contenido y los anuncios.11): A numeric expression must appear here  ***Error51″programa adc.2017­5­14 Conversor analógico digital ***Error51″programa adc. 2011 a las 11:03 pm Buenas. mil gracias Luicho666 junio 10. 2011 a las 11:01 pm Hola neo3shion. has comprobado que el . a mí me pasa exactamente lo mismo. Saludos! Twistx77 junio 16. 2011 a las 11:07 pm No hay de que.11): A numeric expression must appear here  ***Error51″programa adc.. de publicidad y de análisis web.h ¿está bien? Me puedes decir cual ahí es la linea 16? starter junio 16. Twistx77 junio 16. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales. para ofrecer funciones de medios sociales y para analizar el tráfico.

me da igual 15 errores. delay_ms(1); //Esperamos un poco. Accept  Read More http://www. set_adc_channel(0); //elegimos el canal que vamos a leer. 2011 a las 11:21 pm Hola. 2011 a las 11:33 pm unsigned int16 tension=0; //Variable para almacenar el valor de tensión leido por el ADC  unsigned int8 valor=0; //Variable temporal.2017­5­14 Conversor analógico digital starter junio 16. valor=tension/127; //Calculamos a cuantos LEDs encendidos corresponde la tensión leida. para ofrecer funciones de medios sociales y break; para analizar el tráfico. Además. case 0: PORTB=0b00000000;  break; case 1: PORTB=0b00000001;  break; case 2: PORTB=0b00000011;  break; case 3: PORTB=0b00000111;  break; case 4: PORTB=0b00001111;  break; case 5: PORTB=0b00011111;  break; case 6: PORTB=0b00111111;  break; case 7: PORTB=0b01111111;  Las cookies de este sitio se usan para personalizar el contenido y los anuncios.. de publicidad y de análisis web. y lo raro es que he descargado el código escrito por ti y lo he compilado y me da también 15 errores.? saludos starter junio 16. Que estaré haciendo mal.tutoelectro. switch(valor){ //Encendemos los leds que hagan falta. set_tris_b(0x00); //0b0000000// Configuramos el puerto B como salida. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 11/25 .  delay_us(10); // esperamos 10uS necesarios para el ADC while(1){ tension=read_adc(); //Leemos la tensión en el canal que elegimos.

c” Line 29(7.c” line 34(10..17): A numeric expression must appear here 15 Errors. Accept  Read More unsigned int16 = tension =0; y unsigned int8 = valor; al principio del programa despues del void main() { http://www. yo lo realicé para el pic 16f873a con un criztal de 4mhz AVEAE julio 9.c” line 38(10. Además.19): Undefined identifier valor **Error 51 “adc.c” line 44(10.c” Line 18(4. 2011 a las 5:36 pm Se ve interesante la informacion. de publicidad y de análisis web. para ofrecer funciones de medios sociales y para analizar el tráfico.14): A numeric expression must appear here **Error 51 “adc. 2011 a las 7:20 am Las cookies de este sitio se usan para personalizar el contenido y los anuncios.c” line 42(10. el sonido esta horrible. compartimos información sobre el uso que haga del sitio web con nuestros partners de Hola a todos de nuevo ya reparé el error que han mencionado anteriormente.14): A numeric expression must appear here **Error 51 “adc.14): A numeric expression must appear here **Error 51 “adc.c” Line 23(14.14): A numeric expression must appear here **Error 51 “adc.2017­5­14 Conversor analógico digital case 8: PORTB=0b11111111; break; default: break; } } } **ERROR 51 “adc. se puede tratar del compilador? ya que el código está bien.14): Undefined identifier tension **ERROR 12 “adc. 2011 a las 5:05 am Hola me aparecen los mismos errores al compilarlo como lo dicen los comentarios.12): Undefined identifier valor **ERROR 12 “adc. lo malo de esos videos.12): A numeric expression must appear here **ERROR 12 “adc. y si a eso le agregamos la manera de que hablas el video sale echado a perder todo.c” Line 31(7.12): A numeric expression must appear here **ERROR 51 “adc.14): A numeric expression must appear here **Error 51 “adc.c” line 50(10. O Warning CoolDann julio 5. como sea te agradezco tu colaboracion AVEAE julio 9.14): A numeric expression must appear here **Error 51 “adc.c” line 46(10.14): A numeric expression must appear here **Error 51 “adc.14): A numeric expression must appear here **Error 51 “adc.c” line 36(10.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 12/25 .tutoelectro. lo que deben hacer es declarar las dos variables: medios sociales.c” line 53(10.c” Line 19(4.c” line 40(10.c” line 48(10.14): A numeric expression must appear here **Error 51 “adc.

.20: portb=0b00000001; break; case 0. Bueno eso es todo a mi me funcionó intentenlo¡¡¡ AVEAE julio 9. En ciertos compiladores ocurre lo mismo. hasta pronto. sobre todo para los que nos iniciamos o los que tenemos nociones de programacion. 2011 a las 4:36 am Felicitaciones !!! muy interesante los tutoriales de tu web…. 2011 a las 7:08 pm Saludos me custaria saber como hago para tomar valores con punto decimales en los case : del switch.tutoelectro. 2011 a las 8:35 am nota: unsigned int16 tension =0; unsigned int8 valor; no llevan el igual como lo puse arriba (unsigned int16 = tension =0; y unsigned int8 = valor;) por si las dudas Bravo julio 22. excelente sitio y gracias por compartir tus conocimientos a todos los interesados. Accept  Read More http://www.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 13/25 . Además. Bravo julio 23. Un saludo.2017­5­14 Conversor analógico digital no se si digo lo correcto pero de esta forma se toman como un tipo de variables globales. puesto que en ves del potenciometro uso resistencias y 100 hom en serie. tuve un problema parecido con un programa que realicé en java. compartimos información sobre el uso que haga del sitio web con nuestros partners de break; medios sociales. 2011 a las 8:48 pm Gracias. Ejemplo: case 0. de publicidad y de análisis web. para ofrecer funciones de medios sociales y portb=0b00000010; para analizar el tráfico.50: Las cookies de este sitio se usan para personalizar el contenido y los anuncios.. Roberto (Publicaciones Autor) julio 22. Me alegro de que te guste.

pude realizar un programa que lee la tension de 5 voltios solo me falta integrar el sensor Lv­maxsonar­ez1 pero tengo dudas para de la conversion alquien que me explique y me despeje dudas. Además. el programa lo simule en proteus y funciona… gracias…! #include #device adc=10 #FUSES HS. 2011 a las 2:13 pm Sabes usar el ADC de PIC? israel julio 27.8mv por pulgada no se si me puedar una idea para la programacion y la conversion en pic c Twistx77 julio 27.2017­5­14 Conversor analógico digital En este caso toma los valores de case: como repetidos. PUT #use delay(clock=8000000) #include #use fast_io(d) //Directiva Entrada/Salida del Puerto D void main() { int16 q; float p; setup_adc_ports(AN0); //Canal 0 analógico setup_adc(ADC_CLOCK_INTERNAL); //Fuente de reloj RC interno delay_ms(100); lcd_init(); for (;;) { Las cookies de este sitio se usan para personalizar el contenido y los anuncios. 2011 a las 8:21 pm mas o menos a tu pregunta.tutoelectro. con el apoyo de los video tutiales y ejemplos de la red con el pic que voy a utilzar. israel julio 25. de publicidad y de análisis web. para ofrecer funciones de medios sociales y para analizar el tráfico.. compartimos información sobre el uso que haga del sitio web con nuestros partners de set_adc_channel(0); //Habilitación canal0 delay_us(20); medios sociales.NOPROTECT. 2011 a las 6:16 am hola estoy empezando a programar en pic c tengo un sensor ultrasonico de distancia Lv­maxsonar­ez1 quiero medir distancia en cm en su modo analogico el sensor tiene un rango de medida de 0 a 254 pulgadas este sensor varia 9.NOWDT. Accept  Read More http://www.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 14/25 .

esta este es el programa fuente que funciona probado tanto en proteus como en protoboard: ///////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////leds con control analogico (potenciometro//////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////// #include #device adc=10 #FUSES NOWDT //No Watch Dog Timer  #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES PUT //Power Up Timer  #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming. Accept  Read More http://www. “\nVoltage = %01.2017­5­14 Conversor analógico digital q = read_adc(); //Lectura canal0 p = q*5. “\fADC = %4ld”.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 15/25 . de publicidad y de análisis web. void main() { Las cookies de este sitio se usan para personalizar el contenido y los anuncios. Además. q); printf(lcd_putc.2fV”. para ofrecer funciones de medios sociales y int tension=0; para analizar el tráfico..tutoelectro.0/1024 ; //Conversión a tensión printf(lcd_putc. 2011 a las 8:44 pm Muchas gracias por compartir tus experiencias —Twistx77– y tambien quisiera dar mi aporte dando solucion a los problemas que se presentaron con unos errores de compilacion . B3(PIC16) or B5(PIC18) used for I/O  #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #use delay(clock=8000000) ///////////////////////////////////////////////////// //#include #byte PORTB = 0x06 //Definimos PORTB con la dirección del registro PORTB. compartimos información sobre el uso que haga del sitio web con nuestros partners de int valor; medios sociales. p); delay_ms(1000); } } carblack julio 29.

set_tris_b(0x00); //0b0000000// Configuramos el puerto B como salida.. set_adc_channel(0); //elegimos el canal que vamos a leer. Accept  Read More http://www. //valor=tension/127; //Calculamos a cuantos LEDs encendidos corresponde la tensión leida. compartimos información sobre el uso que haga del sitio web con nuestros partners de break; medios sociales.  delay_us(10); // esperamos 10uS necesarios para el ADC while(1){ tension=read_adc(); //Leemos la tensión en el canal que elegimos.0.1); setup_comparator(NC_NC_NC_NC); // unsigned int16 tension=0; //Variable para almacenar el valor de tensión leido por el ADC  //unsigned int8 valor; //Variable temporal.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 16/25 . valor=tension/25; // puedes variar para ver el cambio de respuesta //Calculamos a cuantos LEDs encendidos corresponde la tensión leida. delay_ms(1); //Esperamos un poco. Además. switch(valor){ //Encendemos los leds que hagan falta. para ofrecer funciones de medios sociales y case 6: PORTB=0b00111111;  para analizar el tráfico. case 0: PORTB=0b00000000;  break; case 1: PORTB=0b00000001;  break; case 2: PORTB=0b00000011;  break; case 3: PORTB=0b00000111;  break; case 4: PORTB=0b00001111;  break; case 5: PORTB=0b00011111;  break; Las cookies de este sitio se usan para personalizar el contenido y los anuncios.2017­5­14 Conversor analógico digital ////Configuración/// setup_adc_ports(AN0_AN1_AN3); setup_adc(ADC_CLOCK_INTERNAL); //setup_pp(PMP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);  setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED. de publicidad y de análisis web.tutoelectro.

 estuve buscando en la web algo q me aiudara pero no pude solucionar aun el programa que kiero hacer funcionar es el siguiente: al encender debo mostrar una frase en el lcd ” pulse tecla 0 o 1″.HS. noce donde esta el error x fa aver si pueden aiudar aqui muestro el codigo que realice aver si aiudan a encontrar el error xfavor #include “16f877a.tutoelectro.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 17/25 .h” #device ADC=10 #fuses NOWDT. mi problema es q al parecer no iega la señal del teclado y por ello no ejecuta ninguna de las conversiones. Además.NOLVP  #use delay(clock=10M) #include “lcd.2017­5­14 Conversor analógico digital case 7: PORTB=0b01111111;  break; case 8: PORTB=0b11111111; break; default: break; } } } Atte Carblack jorge luis noviembre 18. el cual con alguno de estos valores debo seleccionar el canal 0 o canal 1 para hacer la conversion AD y mostrar el valor del voltaje en el lcd del canal selecccionado y si no es ninguna de estas teclas que me muestre “tecla incorrecta” por 1segundo y luego que me muestre otra vez la frase “pulse tecla 0 o 1″.c” void main() { char c; int16 q.n; para analizar el tráfico. para ofrecer funciones de medios sociales y float p. Accept  Read More http://www. de publicidad y de análisis web.m; int8 x; Las cookies de este sitio se usan para personalizar el contenido y los anuncios. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales. tengo poco tiempo de estar metido en esto de programacion de microcontroladores y aora tengo una duda. 2011 a las 5:51 pm ola antes que nada kiero fecilitar los buenos videos tutoriales que dan a conocer estan bastante buenos..c” #include “kbd.

 Además.2us setup_adc_ports(AN0_AN1_AN3); printf(lcd_putc.”\nCANAL1=%f v”.2017­5­14 Conversor analógico digital lcd_init(); port_b_pullups(TRUE); kbd_init(); set_tris_a(0xFF); set_tris_b(0xFF); setup_adc(ADC_CLOCK_DIV_32);//32/10M=3. compartimos información sobre el uso que haga del sitio web con nuestros partners de } medios sociales.0/1023. para ofrecer funciones de medios sociales y goto BUCLE; para analizar el tráfico.”\fpulse tecla 0­1″); BUCLE: do { c=kbd_getc(); }while(c==0||c==1); x=c­48; //lo convierto de ASCII a decimal if(x==0) { delay_ms(100); set_adc_channel(0); //selecciono canal 0 delay_us(20); q=read_adc(); p=q*(5.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 18/25 .n); } else { printf(lcd_putc.0); printf(lcd_putc. de publicidad y de análisis web. Accept  Read More http://www.”\fpulse tecla 0­1″); } Las cookies de este sitio se usan para personalizar el contenido y los anuncios.”\fCANAL0=%f v”.”\ftecla incorrecta”); delay_ms(1000); printf(lcd_putc.p); } if(x==1) { delay_ms(100); set_adc_channel(1); //selecciono canal 1 delay_us(20); m=read_adc(); n=m*(5.0/1023.0); printf(lcd_putc.tutoelectro..

Accept  Read More http://www. de publicidad y de análisis web.tutoelectro. 2011 a las 1:24 pm #include #device adc = 10 #use delay (clock=4m) #byte puerto_a = 0x05 unsigned int16 tension = 0; unsigned int valor; void main(){ setup_adc_ports(AN0_analog); setup_adc(adc_clock_internal); set_tris_a(0x00); set_adc_channel(0); delay_us(10); while(1){ tension=read_adc(); delay_ms(1); valor=tension/255; switch(valor){ case 0: puerto_a= 0b00000000; break; case 1: puerto_a= 0b00000001; break; case 2: puerto_a= 0b00000011;  break; Las cookies de este sitio se usan para personalizar el contenido y los anuncios. Además. compartimos información sobre el uso que haga del sitio web con nuestros partners de break; medios sociales.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 19/25 . leonardo diciembre 3. para ofrecer funciones de medios sociales y case 3: puerto_a= 0b00000111;  para analizar el tráfico. 2011 a las 4:13 pm He visto que el Mikroc es mucho mas facil que el css y ademas mas intuitivo en unas cuantas lineas de codigo se obtiene el valor digital de la conversion analogica deberian de probarlo yo un tiempo tambien comense con el css pero no me gusto ya que para cada cosa tiene una funcion y uno tiene que memorizarse muchas funciones en este IDE para hacer algo muy simple como convertir un valor analogico en digital.2017­5­14 Conversor analógico digital keydarkman noviembre 19..

 2011 a las 1:35 pm ya me di cuenta lo de las variables hay que declararlas entes de los setup. sabes deberias hacer uno con un modulo LCD. saludos leonardo diciembre 3. gracias y muchos exitos. muy chevere tus videos. y explicar el codigo seria de gran utilidad. 2012 a las 9:54 pm hola.tutoelectro. yeison abril 14. Además. tiene que realizar tu el codigo.. 1) porque no me deja poner las variables en el main... 2011 a las 1:29 pm si copias y pega no funciona.. Accept  Read More ­vref y +verf tengo una señal que oscila entre 4. 4) funciona en el proteus si lo quiero depurar ahi. lo del puerto todabia no lo entiendo como lo declaro y el tris menos leonardo diciembre 7. para ofrecer funciones de medios sociales y para analizar el tráfico. gracias por todo y sigue con tus videos saludos leonardo diciembre 3. 2012 a las 3:44 pm Las cookies de este sitio se usan para personalizar el contenido y los anuncios. 2)como declaro el tris en este pic12f683 3)que puerto pongo en este pic y como encuentro la direccion.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 20/25 .2017­5­14 Conversor analógico digital default: break; } } } leonardo diciembre 3. de publicidad y de análisis web. 2011 a las 1:27 pm perdon tengo algunas dudas ya que cambie el codigo. saludos ALFONSO abril 2.5 y 5 voltios como le hago agradezco cualquier ayuda de antemano que dios http://www. 2011 a las 9:30 pm hola funciona en el proteus ????? ya que ahi no me anda voy a probar en la realidad . compartimos información sobre el uso que haga del sitio web con nuestros partners de muy bueno pero como utilizo los voltajes de referencia medios sociales.

 quisiera que me ayudaras a adecuar la señal del sensor lm35 para leer todo su rango con el pic 16f877. 2012 a las 4:26 am Hola buenas nachos buenisimo la aplicación y explicación de este tutorial. para ofrecer funciones de medios sociales y para analizar el tráfico. Además. Saludos! Daniela mayo 2.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 21/25 .tutoelectro. 2012 a las 6:28 pm Buenas.. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales. Las de los leds. pero trate de simularlo con proteus ya que no tengo los componentes pero que va no e podido simularlo. 2012 a las 8:08 pm El Potenciometro de 10K la resistencia en MCLR también. no necesitas hacer nada. 2012 a las 6:23 pm hola soy de peru ta bien xevere los tutos. de publicidad y de análisis web.2017­5­14 Conversor analógico digital los bendiga Gonzalo abril 25. erick santiago mayo 11. de cuanto son las resistencias que pones en el circuito? Muchas gracias por el tutorial!!! Twistx77 mayo 2. la señal del LM35 es lo suficientemente “alta” para leer todo el rango con el ADC del pic directamente. daniel hernandez mayo 10. Accept  Read More http://www. 2012 a las 4:33 pm Hola. agradesco tu pronta respuesta Twistx77 abril 25. Dependerá de los leds que uses pero 330ohms estará bien casi seguro. si puedes ayudarme con eso seria buenisimo gracias amigo. 2012 a las 7:34 am perdona es el pic16f690 erick santiago mayo 11. 2012 a las 6:28 pm Las cookies de este sitio se usan para personalizar el contenido y los anuncios.

 por favor podrian poner el diagrama detallado en pdf y como seria la conexion del conector RS232 conectado a la pc. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales. AN1…. HAY DOS DIODOS ESOS SIRVEN COMO LIMITADORES¡¡¡¡¡ POR LO TAMTO TE LO LIMTARA EN EL VSS Y VDD O EN VOLTAJE K ESTAS ALIMENTANDO AL PIC …. Seria de mucha ayuda gracias a todos. Bueno muchas gracias por tu tiempo emerson julio 29.).4A y 18Vcd. sin embargo avia comentado ya parece q se borro. con uno de tus tutoriales aprendi a manejar los puertos adc del pic. Quiero saber si podrias darme la mano para habilitar 11 o 12 adc con el pic16f690  segui tu ejemplo pero no paso de 8. de publicidad y de análisis web. asi que preguntare. 2012 a las 1:21 am Las cookies de este sitio se usan para personalizar el contenido y los anuncios. se descompondra si recibe 8. bueno dejo mi cuestión. Además.. es capas el pic de medir 18Vcd?. Bueno estoy empezando con el 18f4550 de microchip.com polux octubre 21. PERO CUANDO HABLAS SOBRE LA CORRIENTE E SO SI CUIDATE MUCHO… POR K ES PERMITIDO CREO EN PIC SOLO 25mA CREO PERO USAS ALGUNOS DIVISORES Y ASI TRABAJAS… BUENO ESTE APAORTE K TE DOY ESTA EN FOROS DE ELECTRONICA Richard septiembre 6. 2012 a las 10:37 pm hola.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 22/25 . y tambien monitorear el panel solar para verificar la carga que nos esta ofreciendo. y poder monitorear la carga de la bateria de ciclo profundo para que no llegue a descargarse completamente. bueno el panel me ofrece en condiciones optimas 140Wp. 2012 a las 3:41 am HOLA DAVID—­ CON RESPECTO A TU PREGUNTA DE K DICES DE DESCOMPONERSE NO AL ADC DEL PIC NORMALMENTE SE LE PUEDE APLICAR 110 V OJO Y NO PASA NADA SABES POR K¿? ES K FIJATE EN CADA ADC YA SEA (AN0. que me recomiendas para poder monitorear esto??. bueno no se si sea el lugar correcto para preguntarte. de antemano gracias david julio 25. para ofrecer funciones de medios sociales y para analizar el tráfico. Podrian mandarmelo algun diseño para hacerlo y probarlo mi email es : raguilar111@hotmail.4A. 2012 a las 3:20 am hola como estas dime amigo como puedo convertir esa salida paralela a una salida en serie cual seria el diagrama de conexion JOSS44 noviembre 9.. 2012 a las 5:37 am Saludos a todos esta bueno el tutorial.tutoelectro.2017­5­14 Conversor analógico digital hola quierod decirte que me gusto mucho tu tutorial y me ha servido de ejemplo. 8. y quisiera poder poner un panel solar en mi casa.. pero dice que es para los que apenas se adientran a los micros. Accept  Read More http://www.

. y no localizo el error. B3(PIC16) or B5(PIC18) used for I/O  #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected  #FUSES NODEBUG //No Debug mode for ICD #FUSES RESERVED //Used to set the reserved FUSE bits  #USE FAST_IO(B) #use delay(clock=4000000) #byte portb=0x06 #byte trisb=0x86 void main() { setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); Las cookies de este sitio se usan para personalizar el contenido y los anuncios. 2012 a las 1:23 am ademas puse en practica su codigo con los leds y me funciona de maravilla por aora solo lo simulo en proteus pero estoy preparando mi programador y manos ala obra para aserlo en realidad Ruben diciembre 17. 2012 a las 12:28 am Hola he intentado hacerlo con un 16F876 y me enciende permanentemente los led 0 1 2 y 7. Además. Accept  Read More http://www.2017­5­14 Conversor analógico digital hola esta muy bueno este tuto les felicito y espero que sigan adelante en sus planes de orientar en este mundo dela electrónica yo estoy dando mis primeros pasos en este mundo de los pic pero ustedes ayudan a que sea mas facir esto muchas gracias por su aporte y le seguiré todo lo que pueda mi interes es con en el pwm y adc JOSS44 noviembre 9. ¿alguien me puede ayudar?  gracias adelantadas #include #device adc=10 #FUSES NOWDT //No Watch Dog Timer  #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer  #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 23/25 . de publicidad y de análisis web.tutoelectro. simulado en proteus. compartimos información sobre el uso que haga del sitio web con nuestros partners de setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);  medios sociales. para ofrecer funciones de medios sociales y setup_spi(SPI_SS_DISABLED); para analizar el tráfico.

 de publicidad y de análisis web.1); set_tris_b(0); set_adc_channel(0); delay_us(10); unsigned int16 tension=0; unsigned int8 valor; while(1); { tension=read_adc(); delay_ms(1); valor=(tension/127); switch(valor) { case 0: portb=0b00000000; break; case 1: portb=0b00000001; break; case 2: portb=0b00000011;  break; case 3: portb=0b00000111;  break; case 4: portb=0b00001111;  break; case 5: portb=0b00011111;  break; case 6: portb=0b00111111;  break; case 7: portb=0b01111111;  break; case 8: portb=0b11111111;  break; Las cookies de este sitio se usan para personalizar el contenido y los anuncios. compartimos información sobre el uso que haga del sitio web con nuestros partners de } medios sociales.tutoelectro. Además.2017­5­14 Conversor analógico digital setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED. Accept  Read More http://www. para ofrecer funciones de medios sociales y default: break; para analizar el tráfico.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 24/25 ..0.

 2014 a las 6:57 pm hola alguien tendria un ejemplo de conversion analogo – digital pero con la captacion de audio en ves de un potenciometro? Que a la salida de X puerto que solo use 3 de sus salidas muestre en forma de distintas secuencias RGB.2017­5­14 Conversor analógico digital } } Ruben diciembre 17. compartimos información sobre el uso que haga del sitio web con nuestros partners de medios sociales. pero fisicamente no funciona no prende ni un led.tal vez esta mal grabado. como debe estar el MCLR al momento de grabar? o que puede ser …gracias por tu respuesta. Pero no entiendo por que con él se me encienden los terminales que os comentaba. jjponce octubre 24.33A. Además. como puedo tomar esta lectura del panel?… Mi duda es la corriente de este quemaria los pines de I/O del PIC o solo bastaria con realizar un divisor?… Gracias lucas octubre 21. 2013 a las 4:39 pm amigo buen tutorial del conversor pero me podrias ayudar a como programar y conectar el voltaje de refrencia para q no sea 5 volts sino 12 he hecho algunos intentos pero no funciona con mas de 5 volts Hardpic octubre 29. Espero que alguien me pueda ayudar… Gracias… Las cookies de este sitio se usan para personalizar el contenido y los anuncios.com/tutoriales/microcontroladores/guia­pic/conversor­analogico­digital/ 25/25 . 2012 a las 12:39 am ya encontré el error.tutoelectro. Accept  Read More http://www. 2013 a las 2:32 am Hola twist.. que puede estar mal…. Deseo realizar la lectura del voltaje de un panel solar. sbedoya febrero 17. el programa me funciona muy bien en proteus. para ofrecer funciones de medios sociales y para analizar el tráfico.. el ; del while. de publicidad y de análisis web. por medio de un micro controlador. posee las siguientes caracteristicas: 60W­18V­3. 2014 a las 11:04 pm Saludos.