Autor Tema: Empezando con PIC y 232  (Leído 2860 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Empezando con PIC y 232
« en: 07 de Septiembre de 2009, 21:35:00 »
Hola a todos, estoy intentando diseñar un circuito simple con el PIC 16F84A que al pulsar un pulsador me genere un string 232 para enviarla a otro dispositivo

La cadena es la siguiente

FF 40 01 12 53

la configuracion es 9600 8 E 1

Llevo mucho tiempo leyendo y buscando, he encontrado mil informaciones diferentes, interesantes y utiles para este y otros proyectos, pero digamos k solo me urge "arrancar", tener por donde empezar, que entre los estudios, el trabajo y las investigaciones no tengo ni tiempo pa dormir



Muchisimas gracias a todos de antemano

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Empezando con PIC y 232
« Respuesta #1 en: 07 de Septiembre de 2009, 21:49:15 »
Un circuito podría ser el siguiente:



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #2 en: 07 de Septiembre de 2009, 22:26:11 »
Ummmmm, GRACIASSSSS, k rapidez, que alegria, jejeje, bueno, ahora mas preguntitas...


1    Veo que tiene 2 pulsadores, uno es la entrada RA0 que haria generar el pulso verdad? y el MCLR seria para   resetear     el PIC???


2     Cuantos pulsadores podria ponerle como entradas??? mi idea seria por ahora poner 8, podria usar las restantes RA1 a RA3 y RB2 a RB7???? o mejor poner una especie de array en RA0 a RA3?? no se si me explico



3       Algo de software????? Por ahora no tengo ni idea, supongo que algo de IF RA0=0 ====> ..... mejor lo dejo k hace años k no toco el C, tengo k retomarlo. Si teneis algo lo agradeceria



Gracias de nuevo



Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Empezando con PIC y 232
« Respuesta #3 en: 07 de Septiembre de 2009, 22:38:45 »
1. exacto, el otro pulsador es el del reset
2. si, puedes poner pulsadores en los pines restante..a q te refieres con el array?
3.aqui hay algo de soft

saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Empezando con PIC y 232
« Respuesta #4 en: 07 de Septiembre de 2009, 22:52:13 »
Yo te recomendaria que trabajaras con el 16f88 si es que puedes, ya que ese pic ya trae el modulo rs232 dentro,

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #5 en: 07 de Septiembre de 2009, 23:16:28 »
Gracias a todos. A ver, el PIC  16f88 no lo tengo disponible en mi tallercito, en cambio del 16f84a tengo a patadas, asi que me resulta mas comodo. Con el array me referia a crear una especie de teclado multiplexado o demultiplexado, no se muy bien explicarme, pero parece que la mejor opcion es la directa, meter 1 pulsador por cada entrada y listo.

El tema del 232 no tengo problema, ya que realmente la salida seria en 485 mediante un chip conversor que tengo por aqui que creo que admite saltarse al MAX, tengo que mirarlo


Jhozate, gracias por la referencia al soft, la verdad es que llevo toda la noche leyendo ejemplos buenisimos de este PIC.... y son las 4 de la mañana aki en España.


Por lo pronto creo que ya tengo para empezar, mi idea es crear un teclado con 4 botones de direccion y 2 para zoom y 2 para el foco, para manejar unas camaras con un protocolo un tanto raro. Tambien implementare un contador incremental para seleccionar una direccion de cámara, puesto que cada una tiene un numero diferente del 1 al 32. Este numero sera tanto un caracter del string de salida como de dos 7 segmentos, pero eso por ahora es lo d menos


Una preguntita muy basica y k no me deja aclararme... la señal serial (232) en este caso consta de 8 bits mas el d inicio y el d arranque verdad??? pero eso solo generaria una "letra" verdad? Para formar un String seria enviar una detras de otra no??? tambien tiene que seguir algun tipo de timing o algo asi? o pueden ir mas espaciadas en el tiempo??? (es por comprender mejor este tipo de comunicacion)


Otra cosa simple, string pa mi k es igual que word o palabra no??? es para aclararme el termino

Vereis k tengo muchas dudas "existenciales", jejejej

Mil gracias a todos




Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Empezando con PIC y 232
« Respuesta #6 en: 07 de Septiembre de 2009, 23:21:56 »
Gracias a todos. A ver, el PIC  16f88 no lo tengo disponible en mi tallercito, en cambio del 16f84a tengo a patadas, asi que me resulta mas comodo. Con el array me referia a crear una especie de teclado multiplexado o demultiplexado, no se muy bien explicarme, pero parece que la mejor opcion es la directa, meter 1 pulsador por cada entrada y listo.

El tema del 232 no tengo problema, ya que realmente la salida seria en 485 mediante un chip conversor que tengo por aqui que creo que admite saltarse al MAX, tengo que mirarlo


Jhozate, gracias por la referencia al soft, la verdad es que llevo toda la noche leyendo ejemplos buenisimos de este PIC.... y son las 4 de la mañana aki en España.


Por lo pronto creo que ya tengo para empezar, mi idea es crear un teclado con 4 botones de direccion y 2 para zoom y 2 para el foco, para manejar unas camaras con un protocolo un tanto raro. Tambien implementare un contador incremental para seleccionar una direccion de cámara, puesto que cada una tiene un numero diferente del 1 al 32. Este numero sera tanto un caracter del string de salida como de dos 7 segmentos, pero eso por ahora es lo d menos


Una preguntita muy basica y k no me deja aclararme... la señal serial (232) en este caso consta de 8 bits mas el d inicio y el d arranque verdad??? pero eso solo generaria una "letra" verdad? Para formar un String seria enviar una detras de otra no??? tambien tiene que seguir algun tipo de timing o algo asi? o pueden ir mas espaciadas en el tiempo??? (es por comprender mejor este tipo de comunicacion)


Otra cosa simple, string pa mi k es igual que word o palabra no??? es para aclararme el termino

Vereis k tengo muchas dudas "existenciales", jejejej

Mil gracias a todos





Aqui esta algo que yo diceñe

http://www.todopic.com.ar/foros/index.php?topic=26076.0

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #7 en: 07 de Septiembre de 2009, 23:41:00 »
Gracias Darck, una preguntita, la salida del pic es ttl verdad? la podre convertir directamente con el max485 (o cualquier equivalente) para conseguir 485???? si no tampoco me importa sacar con el MAX232 directamente y luego pasarla por el conversor de 232 a 485, pero si me ahorro intermediarios pues mejor que mejor. La verdad es que es algo que no me asusta por el momento, pero tengo k mirarlo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Empezando con PIC y 232
« Respuesta #8 en: 07 de Septiembre de 2009, 23:44:23 »
Aqui esta algo que yo diceñe
Ortografía por favor!

foshland, puedes hacer un teclado matricial de por ejemplo 16 teclas (4x4) y controlarlo mediante interrupción por cambio de estado del puerto B, usar los pines del puerto A para algún led y la comunicación RS232/RS485 según tu necesidad. Aquí un ejemplo de comunicación RS485. (Aquí con las imágenes  :) )


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #9 en: 07 de Septiembre de 2009, 23:54:09 »
Gracias Suky, voy a mirarlo ahora mismo, estoy leyendo los ejemplos del Maestro Vszener, que bien se explica el jodio, jejejje. Me he fijado en especial en este ejemplo


////////////////////////////////////////////////////////////////////////////////////
//                     VsZeNeR"05      
//                     11/Septiembre/05
//
//   Programa:   Comunicacion PC via RS232
//   Version:   0.0
//
//   Dispositivo: PIC 16F648A         Compilador:    CCS vs3.227
//   Entorno IDE: MPLAB IDE v7.21      Simulador:    Proteus 6.7sp3
//
//   Notas: Se muestra por pantalla de lcd(LM016L) en la primera linea la
//         frase "hola mundo " y en la segunda linea "VsZeNeR"05". Se muestra el
//         mismo mensaje por el PC. Tener en cuenta que hay que poner la directiva
//         NOLVP para que el pin B4 sea de salida.
//
//   Conexiones:      B0 -> E            
//               B1 -> RS        
//               B2 -> RW      
//               B4 -> D4        
//               B5 -> D5            
//               B6 -> D6  
//               B7 -> D7
//               A0 -> T1IN MAX232
//               A1 -> R1OUT MAX232                  
//////////////////////////////////////////////////////////////////////////////////
#include <16f648a.h>            //pic a utilizar          
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz
#use rs232(baud=9600, xmit=PIN_A0, rcv=PIN_A1)   //manejo del RS232
#define use_portb_lcd TRUE         //definir portb lcd
#include<lcd.c>                  //libreria manejo lcd

///PROGRAMA
void main(void)
{  
   lcd_init();         //inicializa lcd
  
   printf(lcd_putc,"hola mundo ; )
VsZeNeR"05" );   //mensaje por lcd
   printf("hola mundo VsZeNeR"05" );            //mensaje por PC  
}



Asi de simple mando yo por la salida del PIC una palabra???????? (en rojo)con el simple printf de toda la vida??? pues si que me tengo que poner al dia, como sea asi de simple me corto las venas, jejejeje, entonces podria simplemente convertir mi cadena a ascii y enviarla asi????

Como seria ennviarla en HEX?? para no tener que andar traduciendo


Graciasss

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Empezando con PIC y 232
« Respuesta #10 en: 08 de Septiembre de 2009, 00:14:03 »
 :D :D :D Siii! Así de sencillo  :undecided:

Y para convertir variables decimales o flotantes a string también es muy sencillo:

Código: C
  1. int Entero=54;
  2. int16 EnteroL=1036;
  3. float Flotante=3.56;
  4. printf("%u",Entero);  // Se imprime 54;
  5. printf("%X",Entero); // Se imprime 36h
  6. printf("%lu",EnteroL);
  7. printf("%1.2f",Flotante);
No contesto mensajes privados, las consultas en el foro

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #11 en: 09 de Septiembre de 2009, 00:08:35 »
Bueno, he avanzado bastante pero tengo un problemilla, os explico, he cogido varios circuitos de VsZener, de los tutoriales del 16f648A y por ahora todo ha sido copiar y pegar, para no jartarme de escribir, solo me he dedicado a modificar y hacer pruebas, me he bajado el virtual serial port, el CCSC y el proteus y estoy aprendiendo a marchas forzadas, pero he conseguido k todo funcione, k el proteus me compile directamente y solo tengo el codigo en C y el proteus abiertos, y del tiron funciona perfecto, pero... suponiendo k la cadena k deseo enviar es FF 40 20 30 y escribiendo esto:

////////////////////////////////////////////////////////////////////////////////////
//                  Teclado Control DOMO Ver 0.0
//
//(Experimentado y aprendiendo, basado completamente en circuitos y codigos de VsZeNeR, al que agradezco su esfuerzo)   
//
//
//                     09/09/2009
//
//                  Foshland@hotmail.com
//
//   Programa:   Generando señales en 232
//   Version:   0.0
//
//   Dispositivo: PIC 16F648A         Compilador:    CCS No se que version, no tengo ganas de mirarlo
//   Entorno IDE: Ni idea      Simulador:    Proteus 7.4 Pro sp3
//
//   Notas:     En pantalla LCD por ahora simplemente el nombre del programa
//         Por la salida serial se muestra una frase, por ahora
//         Tener en cuenta que hay que poner la directiva
//         NOLVP para que el pin B4 sea de salida.
//
//   Conexiones:      B0 -> E           
//               B1 -> RS         
//               B2 -> RW      
//               B4 -> D4       
//               B5 -> D5           
//               B6 -> D6   
//               B7 -> D7
//               A0 -> T1IN MAX232
//               A1 -> R1OUT MAX232                 
//////////////////////////////////////////////////////////////////////////////////


#include <16f648a.h>            //pic a utilizar          
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT   //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz
#use rs232(baud=9600, xmit=PIN_A0, rcv=PIN_A1)   //manejo del RS232
#define use_portb_lcd TRUE         //definir portb lcd
#include<lcd.c>               //libreria manejo lcd


///PROGRAMA
void main(void)
{   
   lcd_init();         //inicializa lcd
   
   printf(lcd_putc,"FOSHHHH :D\nFosh_232 V00");   //mensaje por lcd
   printf("FF 40 20 30 50");         //mensaje por PC 
   

//   printf ("%X %X %X", 64, 32, 48);


}








El programa que uso me lee los caracteres uno a uno e incluso me indica los espacios en blanco, usease, en el modulo de 232 me sale bien la cadena, pero claro, lo que sale son caracteres en ASCII, pero el programa me los traduce asi.... FF 40 20 30    ====>    46 46 20 34 30 20 32 30 20 33 30 20 35 30           Como se puede ver me "traduce" hasta los espacios, como hago para enviar la cadena FF 40 20 30 y que el programa los reciba bien????? Supongo que enviando directamente caracteres en HEX, tengo las tablas de conversion, pero no se la sentencia, seguro k es algo facil



Doy las gracias a todos los que me estan ayudando ya que son preguntas de muy novato, pero es k se me mezclan los conceptos, jejejejje

Mil saludos

Desconectado foshland

  • PIC10
  • *
  • Mensajes: 16
Re: Empezando con PIC y 232
« Respuesta #12 en: 09 de Septiembre de 2009, 00:14:49 »
Os dejo aki mi modificacion de la simulacion, es la original de VsZener pero algo retocada, no me echeis lo leones ehhhh


http://rapidshare.com/files/277513241/Fosh_232.rar.html