Se puede hacer con pic?

Hola muchachos.. estoy tratando de desarrollar un circuito que me conmute 2 salidas mediante una señal negativa con resistencia. Dependiendo la resistencia que halla entre señal y masa, se active un transistor u otro.
Está resumido a señales negativas para entenderlo mejor.
http://imageshack.us/photo/my-images/515/circuitoi.jpg/





Si al cable de señal lo conecto a masa con 1k de resistencia que se active el transistor 1.
Si al cable de señal lo conecto a masa con 290hms de resistencia que se active el transistor 2.
Sería largo de explicar por que tiene que ser así pero bueno, basicamente:
-Tengo que trabajar con un cable de señal a masa, si o si.
-Los transistores tienen que ser pnp, porque tienen que dejar pasar carga neg.
-Los transistores se pueden activar de a uno por vez, en ningún momento pueden activarse los dos juntos.

Parece sencillo pero no lo es.
Se puede programar un PIC que haga esto?
Gracias!(y)
 
Última edición:
La pregunta no es si se puede. La pregunta es cómo.

Con un simple PIC de 6 u 8 patas seguro que puedes hacerlo. Puedes utilizar dos entradas digitales y olvidarte del valor de las resistencias que tienes en serie con los pulsadores. Luego conectas una pata de salida a cada transistor (dependiendo de la intensidad que necesites en la base quizás tengas que amplificarla con otro transistor).

Dependiendo de qué entrada se active, activas una salida u otra (el programa es muy sencillo). Para evitar que se accionen al mismo tiempo, lo compruebas en el mismo programa y ya está.

Si es absolutamente necesario que no se activen al mismo tiempo, lo primero que tiene que hacer tu programa nada más arrancar es poner un 1 en las salidas.

Y yo creo que de esta forma lo puedes hacer. Suerte.



Y si no puedes separar las señales de entrada, entonces busca un PIC con entrada analógica. Mandas la señal de entrada a +V a través de otra resistencia, creando así un divisor de tensión diferente para cada pulsador. Luego, por programa, detectas cuál de los pulsadores está pulsado dependiendo de la tensión que haya en la pata de entrada.
 
Última edición:
muchas gracias muchachos, me aclararon el panorama.
Esto es para usarlo en coches blindados en los sistemas de alza cristales. Los comandos originales trabajan con la ecu mediante un solo cable, depende de la resistencia que pone el comando entre ese cable de señal y masa es lo que hace la ecu.
A su vez la ecu comanda un relay inversor que energiza el motor y define su sentido de rotación (si sube o baja el vidrio).
El objetivo es manipular ese relay con el comando original de los alzacristales. El problema es que el relay se comanda con cables de señal (con un cable sube con el otro baja) y el comando trabaja con uno solo análogo.
 
Hola muchachos.. estoy tratando de desarrollar un circuito que me conmute 2 salidas mediante una señal negativa con resistencia. Dependiendo la resistencia que halla entre señal y masa, se active un transistor u otro.
Está resumido a señales negativas para entenderlo mejor.
http://img515.imageshack.us/img515/6610/circuitoi.jpg

Uploaded with ImageShack.us



Si al cable de señal lo conecto a masa con 1k de resistencia que se active el transistor 1.
Si al cable de señal lo conecto a masa con 290hms de resistencia que se active el transistor 2.
Sería largo de explicar por que tiene que ser así pero bueno, basicamente:
-Tengo que trabajar con un cable de señal a masa, si o si.
-Los transistores tienen que ser pnp, porque tienen que dejar pasar carga neg.
-Los transistores se pueden activar de a uno por vez, en ningún momento pueden activarse los dos juntos.

Parece sencillo pero no lo es.
Se puede programar un PIC que haga esto?
Gracias!(y)

Se puede hacer con comparadores, compara la entrada con una fuente de referencia y ya está. En el PIC16F886 y tantos otros muchos se puede hacer.

Un ejmplo tonto.

Código:
/*El módulo generador CVREF. Obtención de una tensión analógica variable

El módulo generador de tensión de referencia se emplea como un convertidor D/A de 4 bits.
La tensión de salida se puede obtener por la patilla RA2/AN2/VREF-/CVREF/C2IN+ y variará en 
función de las entradas RC3:RC0. Un multímetro puede servir para realizar las medidas oportunas 
de la tensión de salida por RA2. 

Mediante la entrada RC4 se selecciona el rango de la tensión de salida. Cuando está a "0" se
selecciona el rango alto, a "1" el rango bajo. */

#include <16f886.h>

/* Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades */

#fuses     NOLVP,PUT,NOWDT,EC_IO,NOFCMEN,NOBROWNOUT    //Palabra 1 de configuración
#fuses    NOWRT,BORV40                                //Palabra 2 de configuración

/* Con estas directivas las funciones "input" y "output_bit" no reprograman
el pin de la puerta cada vez que son utilizadas. Si no se indica el
modo fast_io se asume por defecto standard_io el cual reprograma el pin
siempre antes de ser utilizadas estas funciones.*/

#use fast_io (B)

int    valor;                    

main()
{  
    set_tris_a(0b11111011);            //RA2 salida
    set_tris_c(0b11111111);            //Puerta C entrada    
    
    while(1)
    {
    valor=input_C()&0x0f;            //Lee las entradas RC3:RC0

    if(input(PIN_C4)==0)            //Si es rango alto...
    //Rango_Alto: La salida CVREF=(VDD/4) + ((VR<3:0>/32)) * VDD, por RA2
        setup_vref(VREF_HIGH|valor|0b01000000);
    else
    //Rango_Bajo: La salida CVREF=(VR<3:0>/24) * VDD, por RA2
        setup_vref(VREF_LOW|valor|0b01000000);
    }
}
En asm:
Código:
;El módulo generador CVREF. Obtención de una tensión analógica variable
;
;El módulo generador de tensión de referencia se emplea como un convertidor D/A de 4 bits.
;La tensión de salida se puede obtener por la patilla RA2/AN2/VREF-/CVREF/C2IN+ y variará en 
;función de las entradas RC3:RC0. Un multímetro puede servir para realizar las medidas oportunas 
;de la tensión de salida por RA2. 
;
;Mediante la entrada RC4 se selecciona el rango de la tensión de salida. Cuando está a "0" se
;selecciona el rango alto, a "1" el rango bajo.

        List    p=16F886        ;Tipo de procesador
        include    "P16F886.INC"    ;Definiciones de registros internos

;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades

        __config    _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF    ;Palabra 1 de configuración
        __config    _CONFIG2, _WRT_OFF&_BOR40V                                    ;Palabra 2 de configuración

                org        0x00
                goto    Inicio                ;Vector de reset
        
                org        0x05

;Programa principal
Inicio              bsf        STATUS,RP0        ;Banco 1
                movlw    b'11111011'
                movwf    TRISA            ;RA2 salida CVREF
                movlw    b'11111111'
                movwf    TRISC            ;RC4:RC0 entradas
                movlw    b'11000000'
                movwf    VRCON            ;Módulo CVREF=ON. salida por RA2 y VDD-VSS = VREF fuente

;Bucle principal
Loop            bcf        STATUS,RP0        ;Banco 0
                movf    PORTC,W            
                andlw    0x0f            
                iorlw    b'11000000'        ;Lee las entradas RC3:RC0
                btfsc    PORTC,4            ;RC4 = "1"
                goto    Rango_Bajo        ;Si

;Rango_Alto: La salida CVREF=(VDD/4) + ((VR<3:0>/32)) * VDD
                bsf        STATUS,RP0        ;Banco 1
                andlw    b'11011111'        ;Selecciona rango alto del generador CVREF
                movwf    VRCON            ;Ajusta el nuevo valor de CVREF
                goto    Loop

;Rango_Bajo: La salida CVREF=(VR<3:0>/24) * VDD
Rango_Bajo        bsf        STATUS,RP0        ;Banco 0
                iorlw    b'00100000'        ;Selecciona rango bajo del generador CVREF
                movwf    VRCON            ;Ajusta el nuevo valor de CVREF
                goto    Loop

                end                        ;Fin del programa fuente

No son el ejemplo más adecuado que pides, pero si se puede hacer y con resistencia ajustable y todo.

Tanto cmódulo de CCP o ADC.
 
Bueno la pregunta del millon, quieres hacerlo de manera que no te lo copien??? si la respuesta es SI entonces debes hacerlo con un PIC, si quieres hacerlo para que funcione nada mas entonces lo adecuado es 2 comparadores de tension y listo, menos problema, menos precio, mas funcional, chauuuuuuuu
 
Alquilen me puede echar un cable con esto:
Se trata de un motor de ventanilla de coche que se ha estropeado el sistema antiatrapamiento el cual era una (resistencia térmica) o no sé si se llama así , que actúa cuando el motor se bloquea porque llega la ventanilla a su sitio o te pilla el brazo y sigues dándole al botón y el motor no puede girar pues lo para para que no se estropee.
Está resistencia o lo que sea en este caso ( cuando se bloquea el motor) se calienta y pasaba a no dejar pasar corriente y cuando dejas de pulsar al segundo se enfría y ya funciona y deja pasar la corriente .
Está conectada en serie al motor por cierto .
Alquilen sabe que puedo poner parecido para que se pare el motor cuando no puede girar para sustituir esto? Ya que no encuentro está "resistencia" en el mercado
 
Alquilen me puede echar un cable con esto:
Se trata de un motor de ventanilla de coche que se ha estropeado el sistema antiatrapamiento el cual era una (resistencia térmica) o no sé si se llama así , que actúa cuando el motor se bloquea porque llega la ventanilla a su sitio o te pilla el brazo y sigues dándole al botón y el motor no puede girar pues lo para para que no se estropee.
Está resistencia o lo que sea en este caso ( cuando se bloquea el motor) se calienta y pasaba a no dejar pasar corriente y cuando dejas de pulsar al segundo se enfría y ya funciona y deja pasar la corriente .
Está conectada en serie al motor por cierto .
Alquilen sabe que puedo poner parecido para que se pare el motor cuando no puede girar para sustituir esto? Ya que no encuentro está "resistencia" en el mercado
Si tienes experiencia con la electrónica podrías armar una resistencia shunt y un comparador de tensión que detecte el consumo en exceso o un sistema de "Fuente de corriente" que limite la corriente al motor.

Si no tienes experiencia yo te diría que lleves el automóvil a quién lo pueda reparar y seguramente conoce donde comprar el repuesto.
 
Atrás
Arriba