Autor Tema: saida e entada de un pic  (Leído 3076 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
saida e entada de un pic
« en: 17 de Abril de 2004, 09:41:00 »
ola a todos e estado aciendo algunas pruebas con un pic 16f877

lo que queria saber es si se puede acer e como se aria que por ex. la patita B0 del pic me diera 0V e fuera subindo asta 5v la idea es usar essas salida para un proyecto de una fuente de alimentacion o sea que a cada vez que se pulsara un buton la patita B0 subiera de 0v a 0,50v si volviera a pulsar otra vez esse buton la salida de B0 pasaria de 0,50v a 1v e assi por delante asta chegar a 5v

esto seria possivele ? si es posible  como se aria

yo e conseguigo acer lo normal  o sea  si pulsas un buton essa patita te da 5v e si lo vuelves a pulsar essa misma patita cae a 0v pero acerlo escalonado no tengo ni idea

otra perguntita se que se puede medir voltios en la entrada A0 e A1 atravez del conversor A/D e mostrarlo en una pantalha lcd e ya e echo algunas pruebas e realmente funciona pero yo lo que queria acer es una fuente simetrica e mostrar en la pantalha lcd los dos valores de essa fuente o sea la negativa e positiva para esso tendria que usar las dos entradas A0 e A1 una para cada una la question es que solo consigo que me mueste una entrada la otra no consigo de ninguna manera ay alguna forma de acer que las dos entradas trabajen al mismo tiempo pero mostrando valores diferentes o sea si le meto 4v a la entrada A1 en la lcd me mostraria 4v asta aqui facil pero yo quero que ademas de esta entrada me muestre tanbien la otra o sea apareceria algo assi en la lcd   4V   -4V

alguna idea porfa

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: saida e entada de un pic
« Respuesta #1 en: 17 de Abril de 2004, 16:59:00 »
não seria possivel fazer isso pois as saidas sao ttl ou seja so saem 1(5v) ou 0(0v)    ,quanto  mostrar tensoes negativas no lcd seria simples é só colocar uma ponte de diodos na entrada das tensoes assim sempre teremos tensoes positivas na entrada analogica so que ainda falta fazer com que o pic saiba que o valor é positivo ou negativo isso é mais simples ainda coloque um foto acoplador(4n25) entre o negativo da ponte e uma das entradas de AC,colocarei uma figura logo mais!



Obs :posso colocar figuras direto do meu pc?

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: saida e entada de un pic
« Respuesta #2 en: 17 de Abril de 2004, 22:28:00 »
Hola, podria ser si empleas en esa patita modulacion por ancho de pulso PWM, o si empleas mas salidas, usando el sistema de resistencias configuradas como R2R ....

Suerte

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: saida e entada de un pic
« Respuesta #3 en: 18 de Abril de 2004, 08:15:00 »
como seria esse projeto?,realmente da para fazer por pwm,ou um decodificador digital-analogico mas vc gastaria mais pinos,faça por pwm!



Jorge

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: saida e entada de un pic
« Respuesta #4 en: 19 de Abril de 2004, 04:27:00 »
bueno e estado aciendo pruebas e lo que consegui es que usando un 74ls193 que es un contador up dow lo que ice fue conectar la patita b0 a la patita 5 del 74ls193 e la patita b1 a la patita 4 del 74ls193

si hago que la patita b0 passa del estado 0 a 1 por algunos microsegundos el 74ls193 sube una posicion o sea a cada pulso en la patita b0 el 74ls193 sube una posicion e si hago lo mismo  en la patita b1 el 74ls193 baja una posicion esto funciona e es facil de incrementar pero me obliga a usar muchos conponentes ya que ademas del pic el 74ls193 me ace falta un descodificador como el 4020 e luego todo una panoplia de componentes mi idea es construir una fuente funcional e de bajo coste

e ya se que me vais a decir que esto se puede acer con otros componentes mas sinplificada pero mi idea es usar un pic e una lcd para controlar todos los estados

lo que quiere acer es una fuente de alimentacion que me de los voltages que a mi mas me acen falta o sea
si quiero trabajar en un proyecto que use un pic un radiocasset de coche e un amplificador de potencia aqui me ace falta 3 alimentaciones una de 5v unos 500ma para el pic otra de 12v unos 3A para el radiocasset e otra de 25v simetrica e unos 5A por rama esto es solo un exemplo porque en otros proyectos nessecitas otros voltages diferentes e amperage diferente e es que me vuelvo loco montando fuentes para cada proyecto que en muchos casos van al cajon de los mal sucedidos

bueno tendre que acer mas pruebas pero sigo sin saber como usar las dos entradas del conversor A/D e echo esto pero no da nada de nada  


void main()
{
   int16 i;
   int16 a;
   //float const resoluc=5.0/256.0;   
   float const resoluc=25.0/1024.0;  
   float valor;
float const resolve=25.0/1024.0;  
   float volt;
   Inicializacion del micro
   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0_1);
   
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);

   lcd_init();      

      WHILE(TRUE)
   {
      i = Read_ADC();
      a = Read_ADC();
     
      valor=i*resoluc;
      volt=a*resolve;
      lcd_send_byte(0,1);delay_us(2);  

printf(lcd_putc,"%02.2f V",valor);
printf(lcd_putc,"     -%02.2f V",volt);

           
      delay_ms(80);    
   }
}


para los pulsos en b0 e usado esto

void BAIXA_MAIS ( void )
{
   output_high (PIN_B0 );
   delay_ms ( 900 );
   output_low ( PIN_B0 );
   delay_ms ( 900 );
}

aver una manita




Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: saida e entada de un pic
« Respuesta #5 en: 19 de Abril de 2004, 10:13:00 »
Hola Nordestenica. El idioma es un problema, he estado leyendo y releyendo tus explicaciones y todavía no tengo claro lo que quieres hacer.

Respecto al programa, creo entender que lo único que quieres que haga es que te represente en la LCD los dos valores, en la 1ª línea positivos y en la 2ª negativos.

Al compilar ¿no te dá error el: set_adc_channel( 0_1); ? Creo que esto está mal, primero debes hacer set_adc_channel(0) seguido de: i = Read_ADC(); y luego lo mismo para el otro canal: set_adc_channel( 1); a = Read_ADC();
Posteriormente puedes usar las variables i, a para pasar los resultados a voltios.

La función generadora de pulsos ¿para que la usas? ... como entrada de reloj del contador ¿? ... no entiendo cual es la misión de este. La verdad es que no entiendo el diagrama de bloques global de lo que quieres conseguir.

Un saludo

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: saida e entada de un pic
« Respuesta #6 en: 19 de Abril de 2004, 22:42:00 »
Realmente deveria apresentar erro no setup_adc,mas se naum apresentou e esta funcionando é uma descoberta,quanto ao codigo meus parabens,agora só alguns conselhos:

faça o maior numero de calculos com o valor ad que é um valor de 10 bits que botem ser guardados em 16 bits,evite ao máximo float,
configure 0s pinos manualmente em progamas complexos eu ja consegui reduzir de 10ms para apenas 2,5 ms,outro conselho entre uma leitura e outra deve-se esperar no minimo 20us para que o capacitor ad se recarregue com o valor no pino ,isso tb serve para a troca de canais Ad

Qualquer duvida post aqui


atenciosamente


Jorge

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: saida e entada de un pic
« Respuesta #7 en: 20 de Abril de 2004, 04:53:00 »
pues si esso esta mal es que con las prisas no me di quenta e puesto un codigo que estava experimentando

este es el correcto para medir de 0 a 25v en la patita a0 pero yo ademas de esto quiero tanbien medir otro voltage en la patita a1 e no me sale



#include <16F877.h>
#device *=16
#device ICD=TRUE
#device adc=10
#use delay(clock=20000000)
#fuses NOWDT,HS, PUT, NOPROTECT, BROWNOUT, NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
#include <lcd_c.C>

void main()
{
   int16 i;
   float const entra_0=25.0/1024.0;
   float valor;
   setup_adc_ports (ALL_analog);
setup_adc (adc_clock_div_32);
setup_counters (rtcc_internal, WDT_2304MS);
set_adc_channel ( 0 );




   lcd_init();

    WHILE(TRUE)
   {
      i = Read_ADC();
     
     
      valor=i*entra_0;
     
     
printf(lcd_putc,"%02.2f V",valor);

           
      delay_ms(80);      
   }
}




este es lo que estoy intentando acer aver si assi me podeis ayudar


una fuente de alimentacion simetrica dividida en 3 partes todas elhas funcionando por separado

la primera a parte seria de bajo amperaje de 700mA por rama para usar en las cosas mas comunes e de bajo consumo el rango de voltage estaria entre unos 3,5V e 24V simetricos la variacion del voltage seria comandado por las patitas B0  para subir ,e B1 para bajar

la otra etapa seria de medio amperage de unos 2,5A e el rango de voltage estaria igual que la otra parte entre 3,5V e 24V tanbien simetricos la variacion del voltage seria comandado por las patitas B2 para subir e B3 para bajar esto seria el ideal para trabajar con radios de coches e otros que requieren algo de amperage

la tercera parte seria de alto amperage de unos 7A por rama e el rango de voltage segiria estando entre los 3,5V e 24V esta parte seria comandada por la patita B4 para subir e B5 para bajar claro esta siempre simetrica esto seria lo ideal para trabajar com amplificadores de audio e otros de grande consumo

e me direis e por que quieres acer todo esto ?

pues por que en muchas ocasiones e tenido que acer algun proyecto e disponer de distintos voltages e amperages e me vuelvo loco montando fuentes de prueba para esses proyectos

mi idea es construir una fuente que te de 3 tipos de salida totalmente independientes e que puedas usar como quieras por ex.

tengo lector de cds de ordenador e lo quiero comandar con um pic ademas conectarlo a un amplificador de sonido (aqui acen falta varias alimentaciones e con distinto amperage una de 5v para el pic otra de 5v e 12v para el lector de cds e una de 25v simetrica para el amplificador )

las entradas del Conversor A/d no las quiero usar para acer mediciones lo que quiero acer es usar essas entradas para que si se produce un cortocircuito el pic desative la salida correspondiente


aqui podeis bajar lo que e conseguido acer asta aora solo es el inicio pero seguire intentando aver lo que consigo ya que solo estoy enpecando en esto del c e los pics

http://miarroba.com/foros/ver.php?foroid=132071&temaid=1827027





Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: saida e entada de un pic
« Respuesta #8 en: 20 de Abril de 2004, 10:19:00 »
En la fórmula de la resolución usas 25V, debieras de usar como máximo 5V.

Debes meter delante del pin A0 un divisor de tensión que pase de 25V a 5V.

El contador reversible 74193 va conectado a un decodificador BCD/decimal ¿cual es la misión de ese conjunto? Cada vez que activas un pulsador el contador no cuenta ¿?

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: saida e entada de un pic
« Respuesta #9 en: 20 de Abril de 2004, 22:42:00 »
não entendi muito o seu projeto ,entendi que vc vai utilizar o ad do pic para ler as tensões de umas fontes,antes deve saber que só pode colocar no máximo 5 volts na entrada analogica ,logo tera que colocar um divisor de tensão,depois eu posto outras considerações por enquanto olhe o seu codigo abaixo revisado e comentado:


#include <16F877.h>
#device adc=10
#use delay(clock=20000000)
#fuses NOWDT,HS, PUT, NOPROTECT, BROWNOUT, NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <lcd_c.C>

void main()
{
float valor;
setup_adc_ports (ra0_analog);
setup_adc (adc_clock_div_32);

set_adc_channel ( 0 );




lcd_init();

WHILE(TRUE)
{
valor= Read_ADC();
delay_us(20);

valor =(valor*25)/1023;


printf(lcd_putc,"%02.2f V",valor);


delay_ms(80);
}
}



caso precise de mais uma porta  analogica
troque :

setup_adc_ports (ra0_analog);

por:

setup_adc_ports (ra0_ra1_ra3_analog);

caso precise ficar alternando entre as portas use este codigo:

#include <16F877.h>
#device adc=10
#use delay(clock=20000000)
#fuses NOWDT,HS, PUT, NOPROTECT, BROWNOUT, NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <lcd_c.C>

void main()
{
float valor;
int1 canal=1;
setup_adc_ports (ra0_analog);
setup_adc (adc_clock_div_32);






lcd_init();

WHILE(TRUE)
{

canal=!canal;

set_adc_channel ( canal );

delay_us(20);

valor= Read_ADC();


valor =(valor*25)/1023;


printf(lcd_putc,"%02.2f V",valor);


delay_ms(80);
}
}


uma pergunta esta aparecendo qualquer coisa no lcd?

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: saida e entada de un pic
« Respuesta #10 en: 23 de Abril de 2004, 08:11:00 »
bueno bueno parece que nos estamos liando todos com mi proyecto

la verdade es que lo mejor olvidamos los posts anteriores e vamos por partes aver si assi no liamos a los maestros e no los aburrimos con tonterias  

aver

PWM que es ? como funciona ? onde conseguir info ?


Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: saida e entada de un pic
« Respuesta #11 en: 07 de Mayo de 2004, 09:09:00 »
esto va al final consegui acer lo que me proponia pero todadia me faltan unos detalhes aver si estudio un poco mas e consigo acer mi fuente de alimentacion controlada por pic

gracias a todos por la ayuda



 

anything