# Tecnicas para ahorrar hardware con PICMicros



## dinoelectro (Oct 28, 2011)

¿Sabías que…?

Puedes ingresar directamente a tu microcontrolador una señal de varios cientos de voltios sin provocar daño alguno en el mismo
Puedes comunicar directamente al microcontrolador con tu PC sin necesidad de MAX232 u otro circuito transistorizado
Puedes conectar un teclado matricial 4x4, utilizando un solo pin del microcontrolador
Puedes encender 12 LEDS individuales con solo 4 pines
Puedes leer señales analógicas sin necesidad de un conversor AD
Me dirás que estoy loco, o que soy un mentiroso,… más todas las afirmaciones anteriores, son ciertas, te invito a que leas el siguiente artículo completamente en espanol y compruebes por ti mismo

Ademas te invito a que armes este pequeno entrenador de microcontroladores PIC12XXXX


----------



## BKAR (Oct 28, 2011)

no te creo NADA!! en este mismo momento estoy leyendo
si es cierto me doy un tiro....

increíble....como pequeñeces nos hacen decir 
COMO NO SE ME OCURRIO ANTES!!
jeje excelente aporte
me sorpendi ..el pdf tiene la fecha de hoy..

saludos desde Perú


----------



## Chico3001 (Oct 29, 2011)

Gracias por el aporte... ya lo añadi al listado de temas destacados...


----------



## dinoelectro (Oct 29, 2011)

Gracias por la consideracion chico3001, esto me compromete en hacer una segunda entrega con mas TIPS que nos pudieran ayudar ahorrar hardware... es la primera vez que un tema escrito por mi esta entre los destacados... gracias otra vez


----------



## Gerson strauss (Oct 30, 2011)

Si las señales al puerto serial deben estar invertidas, entonces al quitar el MAX232 como se hace para configurar el puerto para que reciba la nueva señal sin invertirla?. O es que  funciona asi.

Gracias.


----------



## BKAR (Oct 30, 2011)

modificar el codigo del pic?
o una que otra modificación externa ...poner 2 BJTs


----------



## asherar (Oct 30, 2011)

El modo invertido en la pc sería tanto para RX como para TX. Pienso yo.


----------



## Gerson strauss (Oct 30, 2011)

Osea que el MAX232 no sobra, simplemente lo que hace es "simplificar" el diseño y evitar complicaciones con el programa del PIC y de la PC. Ahora lo que necesitamos es el programa del pic que envie las señales ya invertidas y asi poder ahorrarnos el MAX232 o los transistores.

O tambien que exista un programa para el puerto serial que invierta las señales, eso seria mejor!.

...Y el voltaje negativo, no dañaria el pic?  le estoy viendo graves inconvenientes a esa tecnica..


----------



## asherar (Oct 30, 2011)

Gerson strauss dijo:


> ...Y el voltaje negativo, no dañaria el pic?  le estoy viendo graves inconvenientes a esa tecnica..



En virtud del tip nro 1 no debería haber problemas.
Hay que leer el artículo !!!


----------



## dinoelectro (Oct 30, 2011)

'ver imagenes como invertir la comunicaccion RX/TX polarity
'Este programa muestra operaciones binarias en el hiperterminal
'comunicacion RS232 siN necesidad de un conversor de nivel
'circuito:
'               RX micro----\/\/\/\-------TX PC      
'                                    res=22k
'
'               TX micro----\/\/\/\-------RX PC      
'                                    res=220
'               GND micro----------------GND PC      

SO      con     0           ' PIN de salida serial
N2400   con     4         ' Comunicacion invertida(invierto la comunicacion para evitar el uso de un MAX232)
                              ' recuerde que el MAX232 u otro circuito transistorizado convierte niveles TTL en
                              ' niveles RS232 y ademas los invierte
B0      var     byte
B1      var     byte
B2      var     byte

CICLE:   
   Serout SO,N2400,["      &  &/ |  |/ ^  ^/",10,13]
   For B0 = 0 To 1
      For B1 = 0 To 1
         Serout SO,N2400,[#B1," ",#B0," : "]
         B2 = B1 & B0 : Gosub disp
         B2 = B1 &/ B0 : Gosub disp
         B2 = B1 | B0 : Gosub disp
         B2 = B1 |/ B0 : Gosub disp
         B2 = B1 ^ B0 : Gosub disp
         B2 = B1 ^/ B0 : Gosub disp
         Serout SO,N2400,[10,13]
	   Next B1
	Next B0

    Serout SO,N2400,[10,13]
    Goto CICLE
 disp:   
   B2 = B2 & 1
   Serout SO,N2400,[#B2,"  "]
   Return


*fijate en la simulacion... sino invierte la senal los caracters que recibas van a ser distintoo a los que realmente envias*

el programa lo hice funcionar con un PIC12F508C que no tiene hardware RS232 pero puede aplicarse a cualquier tipo de PIC (mas informacion en el help de microcode studio)

Saludos y gracias por su interes


----------



## dinoelectro (Oct 30, 2011)

IMASDPIC dijo:
			
		

> hola que tal
> podeis volver a subir el archivo pdf ,me dice que esta dañado y no se puede leer
> 
> un saludo



no lo creo... en serio??  a ver si puedo subirlo de nuevo (he actualizado algunas cosillas )


----------



## asherar (Oct 30, 2011)

El controlador de displays de 7 segmentos de la figura 15, no es de 16 digitos sino de 12. 
En el documento original ("Hardware Techniques for PICmicro Microcontrollers", AN234 de Microchip) está así.
Con 4 bits de control, los estados 0000 y 1111 no alimentan ningún opto.


----------



## dinoelectro (Oct 30, 2011)

Es verdad ashear... hay un error en el documento que escribi, gracias por hacermelo notar


----------



## biker2k3 (Oct 31, 2011)

Yo nunka use el max232 para conectar el pic al serial de la pc, uso el mismo circuito que usan los picaxe 

http://4.bp.blogspot.com/-kJ3CzlKjg...Q/yXm5wg4LU7k/s1600/Nueva+imagen+%2814%29.png


----------



## dinoelectro (Oct 31, 2011)

biker2k3 dijo:


> Yo nunka use el max232 para conectar el pic al serial de la pc, uso el mismo circuito que usan los picaxe
> 
> http://4.bp.blogspot.com/-kJ3CzlKjg...Q/yXm5wg4LU7k/s1600/Nueva+imagen+%2814%29.png



Hola Bliker2k3, gracias por tu aporte, igual con ese circuito tienes que invertir la polaridad de la comunicacion... ¿verdad?


----------



## asherar (Oct 31, 2011)

dinoelectro dijo:


> Hola Bliker2k3, gracias por tu aporte, igual  con ese circuito tienes que invertir la polaridad de la comunicacion...  ¿verdad?



Exacto, directamente del manual de picaxe:
La N en rojo indica la inversión mencionada, a 2400 baudios



> *Transmitting Characters to the Computer Screen*
> The following program will transmit the word ‘Hello’ to the computer screen over and
> over again. If the cable is connected and the communication software is operating
> correctly, the word will appear every second.
> ...


----------



## biker2k3 (Nov 4, 2011)

Lo que si creo ke no se puede si usas USART porque en el USART no podes configurarlo para invertirlo, y nose si se puede en el software de la pc.

Ya que estoy alguien me puede explicar como puedo hacer para que me llegue alguna notificacion cuando me responden o citan un mensaje mio, porque me resulta re incomodo tener que estar revisando todos los temas en que escribi.


----------



## Gerson strauss (Nov 4, 2011)

biker2k3 dijo:


> Ya que estoy alguien me puede explicar como puedo hacer para que me llegue alguna notificacion cuando me responden o citan un mensaje mio, porque me resulta re incomodo tener que estar revisando todos los temas en que escribi.



En la parte superior encuentras el panel de control. Desde alli puedes ver toda tu actividad en el foro.


----------



## biker2k3 (Nov 4, 2011)

Gerson strauss dijo:


> En la parte superior encuentras el panel de control. Desde alli puedes ver toda tu actividad en el foro.



Si eso me di cuenta recien, pense que se podia activar algo mas intuitivo tipo facebook o como cuando te comentan las fotos que ahi si aparece una notificacion. Pero bueno seguire viendo de ahi.


----------



## pepechip (Nov 4, 2011)

Buen aporte dinoelectro. Felicidades
Solo quiero hacerte una rectificacion.
Los diodos de proteccion  no limitan la tension de entrada de los pines de 0 a 5v, sino de -0,7 a 5,7v en el caso de que la tension del pic sea de 5V.
Hay que tener especial atencion cuando se haga uso de los diodos de proteccion y al mismo tiempo se haga uso del convertidor A/D, ya que esto nos puede variar levemente la tension de alimentacion, y normalmente en el convertidor A/D se suele utilizar esta como referencia. Por lo tanto en este caso nos puede falsear la medida.


----------



## dinoelectro (Nov 5, 2011)

pepechip dijo:


> Buen aporte dinoelectro. Felicidades
> Solo quiero hacerte una rectificacion.
> Los diodos de proteccion  no limitan la tension de entrada de los pines de 0 a 5v, sino de -0,7 a 5,7v en el caso de que la tension del pic sea de 5V.
> Hay que tener especial atencion cuando se haga uso de los diodos de proteccion y al mismo tiempo se haga uso del convertidor A/D, ya que esto nos puede variar levemente la tension de alimentacion, y normalmente en el convertidor A/D se suele utilizar esta como referencia. Por lo tanto en este caso nos puede falsear la medida.




gracias pepechip, a tener en cuenta esos 0.7v demas entonces... jeje
aunque para el caso de recibir los +/-15V del PC no es ningun problema



biker2k3 dijo:


> Lo que si creo ke no se puede si usas USART porque en el USART no podes configurarlo para invertirlo, y nose si se puede en el software de la pc.



nunca lo he utilizado con el USART (hardware que tienen algunos PIC) sin embargo todo programa terminal (como el hiperterminal de windows) tiene la opcion RX/TX Polarity, configurale como impar... en teoria deberia funcionar

ahora, ten presente que la mayoria de lenguajes de alto nivel como PIC C, PICBasic, HI-TECH, entre otros... tienen la opcion de invertir la comunicacion de una manera muy sencilla

saludos..


----------



## dinoelectro (Nov 10, 2011)

Acerca del entrenador... si habeis leido el articulo que esta en primera pagina; propuse construir un entrenador para picmicros de 8 pines  pues ya lo tengo armado;; aunque  el circuito sigue siendo el mismo... tube que hacer unas modificaciones al PCB.. les dejo unas fotos y el layout por si alguien esta interesado en construirlo...


----------



## seaarg (Nov 28, 2011)

Un pequeño aporte al tema:

Cuando se quedan sin pines de salida en un pic, usando 3 pines conectados a CLK, DATA y STROBE de un CD4094 pueden obtener 8 salidas. Si ponen 2 en cascada, 16 salidas con los mismos 3 pines y asi.

Algo similar pero para entradas: CD4051


----------



## el-rey-julien (Nov 28, 2011)

una pregunta y cual seria la rutina para que detecte el teclado por un solo pin??


----------



## seaarg (Nov 28, 2011)

Yo conozco una mas o menos asi, donde cada tecla tiene un capacitor y el pin se pone como salida en 1 (5v), se espera la carga el capacitor de la tecla presionada (si hay alguna) y se pone como entrada midiendo cuanto tiempo tarda hasta cambiar a estado 0.

Seria como un ADC rudimentario.


----------



## el-rey-julien (Nov 28, 2011)

esa la se pero  da error,porque algunos usuarios no aprietan la tecla bien,(o aprietan muy rapido)
en el pdf ay un keypad con solo resistencias y sin el capacitor ,esa técnica quería saber yo


----------



## gca (Nov 29, 2011)

Usas el adc y segun la tension que detecta (1 divisor diferente por tecla, diferentes tensiones sabidas) sabes que tecla presiono.

Saludos


----------



## asherar (Dic 1, 2011)

gca dijo:


> Usas el adc y segun la tension que detecta (1 divisor diferente por tecla, diferentes tensiones sabidas) sabes que tecla presiono.
> 
> Saludos



Para poder usar un mismo conversor necesitarías un detector de valor 
máximo y un filtro de ruido ... para medir bien el valor de tensión de entrada, 
y si lográs un error menor que 1 bit, con los 10 bits del conversión podés 
diferenciar más de 500 estados(=teclas) por cada pin de entrada digital !!!


----------



## dinoelectro (Dic 1, 2011)

asherar dijo:


> Para poder usar un mismo conversor necesitarías un detector de valor
> máximo y un filtro de ruido ... para medir bien el valor de tensión de entrada,
> y si lográs un error menor que 1 bit, con los 10 bits del conversión podés
> diferenciar más de 500 estados(=teclas) por cada pin de entrada digital !!!



 con estas tecnicas el picmicro de 8 pines nos va quedando grande,


----------

