• Lunes 23 de Diciembre de 2024, 16:56

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - © Jonathan ©

Páginas: 1 ... 51 52 [53] 54 55 ... 65
1301
Microcontroladores / Re: Pic 16f87x
« en: Miércoles 7 de Enero de 2004, 20:50 »
Bueno, lo que ahora te voy a comentar lo saque en un ratito, minutos despues de leer el ultimo mensaje que posteaste. No se si funcionaria, pero intentar no cuesta nada.

   El resultado del conversor es de 10 bits, dentro de un regustro de 16.

   Supongamos que la parte baja esta en ADRESL y la parte alta en ADRESH.
   Tenemos el siguiente resultado del conversor analogico digital:

 _____________________________________
|  1 |  0  |  1  |  0  |  0  |  0  |  0 |  0  | 0  | 1 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   512   256   128   64  32   16   8   4   2    1

   El numero corresponde al 641 en decimal y al 281 en Hexa... lo que nosotro queremos es que envie el numero en decimal a la PC.

   Leemos la parte baja del resultado del conversor y la convertimos en hexadecimal, la guardamos en un registro y leemos la parte alta del resultado del conversor, a esa lectura tambien la convertimos en hexa y luego se la sumamos a la conversion que hoy hicimos la cual habiamos guardado en un registro.
   Ahi lo que hicimos es tomar el resultado del conversor analogico digital y convertirlo a Hexa.

   Bien, ahora al tener el resultado convertido en vez de ser el binario '1010000001' seria el Hexadecimal '281' el cual sera trabajado para ser convertido a decimal.

   Una vez obtenido el valor Hexa, haremos la parte mas complicada, la cual te explicare con palabras simples, el tema sera hacerlo fucnionar en el pic.
   Tomas el primer digito del valor Hexa que seria de '281' el caracter '2' y haces lo siguiente:

          2      
 2*(16)   ; dos por diesciseis al cubo

   y lo guardas en un registro. Luego lees el siguiente digito y haces lo mismo para en vez de hacerlo al cuadrado lo haces por 1:

         1      
 8*(16) ; ocho por diesciseis a la uno

  Al resultado le sumas el valor que habiamos registrado anteriormente y lo guardas en el registro. Luego haces lo mismo con el ultimo digito pero esta vez por 0:

        0      
 1*(16) ; uno por uno

   Esto ultimo se lo sumas al valor que habiamos guardado anteriormente.
   Hasta ahi, si todo esta bien, las sumas que hemos hecho de las conversiones de hexa a dec seria de 641, ese es el valor de la conversion del numero binario a decimal.

   Bueno, esta es una de mis ideas, la cual si fuera muy necesario haria funcionar, ahi tienes como para pensar y hacer funcionar lo que necesitas. Cualquier duda me consultas. Saludos y hasta pronto. :hola:  :blink:

1302
Microcontroladores / Re: Evaluacion De La Idea De Mi Proyecto
« en: Miércoles 7 de Enero de 2004, 20:04 »
Es buena idea cambiar de micro, aparte sera mas facil en muchos sentidos... la idea del reloj es exelente.
   Dime... la alimentacion del dispositivo, sera con una bateria de 9 Volt???. Bueno, veo que estas a full con las ideas, recuerda que debes estudiar! :whistling: ... Saludos y hasta pronto!. :hola:

1303
Por nada amigo, estoy a las ordenes por aqui en lo que necesites. Saludos :hola:

1304
Microcontroladores / Re: Pic 16f87x
« en: Martes 6 de Enero de 2004, 21:47 »
Hola, mira, aunque no me creas di muchas vueltas buscando informacion para ayudarte, pero cero resultados.

   Intente hacer el programa para el pic, pero imposible, si quieres intentamos hacerlo, eso si, tendrias que comenzarlo y de ahi te ayudo ya que el tiempo libre cada vez se me hace menos. Poder si se puede, en esto no hay imposible a menos que el micro no te lo permita.

   Espero tu respuesta, saludos y suerte. :hola:

1305
Microcontroladores / Re: Elaborador De Retardos
« en: Martes 6 de Enero de 2004, 16:19 »
Hola, el generador de retardos, consiste en generar un codigo para pic el cual genera los bucles para crear el retardo que uno necesite.
   
   Si necesitas crear un retardo de un minuto exacto, pues, puedes matarte pensando como hacerlo y sacar miles de cuentas, o solo usar un programita y copiar el codigo generado por el mismo.  ;)  B) ...Saludos  :hola:

1306
Te entendi perfecto, pero para el manejo via internet, primero lo que necesites es trabajar con socket's, en lo que tendras que elaborar una aplicacion que permita el envio de datos por el puerto 80 que es el que utiliza el navegador.

   El programa puede ser hecho con builder, el mismo ya trae opciones de socket, no cuales son ni como se manejan, de igual forma puedes elaborar las tuyas.

   Deberia postear alguna pregunta en el foro de builder, seguro que ahi te diran bien como poder hacer paara mandar informacion desde un programa por el puerto 80 a una direccion o IP especifica, en donde estara el programa que recibira la informacion y decodificara para realizar el trabajo que desees.

   Por ahora es todo lo que puedo hacer por ti. Si supiera bien sobre builder estaria encantado en ayudarte, pero recien estoy iniciandome en el tema.
   Poste lo que te dije anteriormente en el foro de builder, es seguro que ahi obtendras tus respuestas. Saludos y quedo atento por aqui :hola:  :comp:

1307
Hola, he visto por ahi navegando que con dos programitas elaborados en C, manejaban via internet una camara conectada a una circuiteria que poseia un microcontrolador el cual estaba conectado el puerto.

   Para hacer los programas si es que los harias en C, deberas trabajar con sockets, para eso no soy muy bueno, pero no es muy dificil segun creo, buscare el proyecto del cual te hable, talvez te sirva como guia para darte una idea.

   Segun pienso, al habilitar el puerto 80 para trabajar via exploradres web ya tienes todo, solo necesitarias un lenguaje capaz de dominar el puerto paralelo.

   Como dices Java es bueno, me gustaria ayudarte con eso, pero no poseo conocimientos del mismo, puedes tambien utilizar C, ya seria un poco mas laborioso, pero se puede realizar.

   La circuiteria necesaria para el puerto paralelo varia segun que es lo que deseas hacer con el puerto. Me gustaria que me especifiques un poco mas que es lo que deseas hacer y veo en que puedo servirte. Saludos :hola:

1308
Programación de Aplicaciones para Dispositivos / Re: Actuar Sobre Un Relé
« en: Martes 6 de Enero de 2004, 13:22 »
Gracias igualmente para ti, si me permites modificare el titulo de la discucion para que sea entendida por otros usuarios. Saludos :hola:

1309
Microcontroladores / Elaborador De Retardos
« en: Martes 6 de Enero de 2004, 13:19 »
Gracias a la web de todo pic, he conseguido para que ustedes utilicen, un elaborador de retardos, el programita es super sencillo y te ahorrara mucho tiempo, el cual aveces vale oro si se trata de un proyecto importante  ;) ... Esta comprimido en un zip, y es un ejecutable de windows, el programa es de 32 bits, muy bueno!!!... espero les sirva. Saludos  :hola:  :comp:

1310
Microcontroladores / Emulador De Lcd
« en: Martes 6 de Enero de 2004, 13:09 »
Hola a todos, talvez esto le sea de utilidad a alguien interesado en aprender el manejo de los LCD's, la pagina esta muy buena, hay funciones del LCD que aun no estan implementadas. Espero les sirva de algo. Saludos :hola:

Emulador LCD Online

1311
Microcontroladores / Re: Pic 16f87x
« en: Martes 6 de Enero de 2004, 12:56 »
Tengo la posible solucion a tu problema, pero consiste en la elaboracion del programa del PC, el pic toma el resultado del conversor A/D y envia la parte alta, el programa multiplica esa parte por 255 y almacena el numero, luego el pic envia la parte baja, la cual se suma a la parte alta multiplicada por 255 que fue lo hecho  anteriormente, luego con eso tendrias el resultado siendo un numero que puede ser desde 0000 hasta 1023... es mas facil elaborar loo que quieres creando la conversion dentro del programa del PC, ya que haciendolo en el pic deberias hacer muchos calculos matematicos y eso marea. Bueno, me comentas, si necesitas ayuda con tu programa de PC, si es en C puedo darte una mano... Saludos :hola:

1312
C/C++ / Re: Problema Con C++
« en: Lunes 5 de Enero de 2004, 22:13 »
Hola, pues te entiendo, como consejo seria bueno que en vez de poner case 's': case 'S'...dos veces pogas:

case 's'|'S': /* seria lo mismo pero queda mejor */

   Te pido si es posible, que postees el codigo de funcion.h, ya que segun parece ahi esta el problema, aveces pasa que la funcion a la que llamas te retorna un valor que hacer que el bucle desde donde se llama la llame una y otra vez... espero tu code. Saludos :hola:

1313
C/C++ / Re: Problema Con C++
« en: Lunes 5 de Enero de 2004, 13:34 »
Hola, segun creo, cualquier numero que sea negativo te ejecutaria lo que esta dentro del bucle, porque no intentas comparar pero con caracteres:

 char a;

/* antes tenes que leer el teclado */

if(a != "-999")

   Lo mismo con el bucle while, creo que al ser un tipo de entero negativo el if trabaja mal, no se realmente porque, solo se que las veces que he intentado hacer eso nunca logro hacerlo andar. Prueba como te dije, buscare alguna solucion mas eficaz. Saludos  :hola:

1314
C/C++ / Re: Aplicacion De La Funcion Getpass...
« en: Lunes 5 de Enero de 2004, 13:14 »
Hola, hay muchas maneras, una podria ser utilizando un bucle while.

 while (teclado != "password")
 {
     ...pedir contraseña
 }

   Debes comparar la cadena con la que se introduce en el teclado. Si esto no te sirve te puedo seguir ayudando, solo dime. Saludos  :hola:

1315
Microcontroladores / Re: Pic 16f87x
« en: Viernes 2 de Enero de 2004, 21:26 »
Hola amigo, estuve buscandote informacion pero no logre encontrarte nada, yo lo unico que he hecho es convertir los 16 bits pero a codigo BCD, (codigo binario decimal) para llevar una lectura de temperatura a un LCD... si eso te sirve lo puedo postear. Me informas, Saludos :hola:

1316
Microcontroladores / Re: Evaluacion De La Idea De Mi Proyecto
« en: Viernes 2 de Enero de 2004, 14:00 »
Es una idea realmente interesante, lo veo bueno, ya que de otra manera no se estaria seguro de que se hagan bien los movimientos. Seria lindo poner tambien aparte un contador de 2 seg de tiempo para hacer el otro movimiento, ahi se estaria mucho mas seguro de que no habra forma de ingresar. Saludos :hola:

1317
C/C++ / Re: Archivos En C++
« en: Miércoles 31 de Diciembre de 2003, 16:08 »
Hola, Feliz año nuevo, espero te ayude mi info. Saludos

Archivos en C y C++

1318
Programación de Aplicaciones para Dispositivos / Re: SOFTWARE DE CELULARES
« en: Miércoles 31 de Diciembre de 2003, 00:05 »

1319
Microcontroladores / Re: Pic 16f87x
« en: Martes 30 de Diciembre de 2003, 15:47 »
Creo haberte entendido, pero si tienes programas que hacen lo mismo pero con caracteres hexa a ascii, porque no conviertes tus numeros binarios a hexa y luego asi se convertira a ascii???.

   Bueno, es una sugerencia, deberias explicarte un poquito mas, desearia saber en que es lo que necesitas ayuda.
   En el programa del PIC???
   En el programa del PC???
   Porque en vez de leer los resultados del conversor en binario no lo lees en Hex???.

   Bueno, espero tu respuesta. Saludos  :hola:

1320
Programación de Aplicaciones para Dispositivos / Re: Actuar Sobre Un Relé
« en: Lunes 29 de Diciembre de 2003, 21:42 »
Hola, bueno, pasare a contestarte:

Código: Text
  1. -Los 5 voltios que entra a los integrados vienen del pin que yo decida del puerto paralelo, entonces las salidas digitales del puerto paralelo (8 de registro de datos y 4 de control) es simplemente información que se manda a través de código, pero ¿por el mismo pin que le entra el voltaje?.
  2.  

- Tu tienes 8 pines que puedes usar como entrada o salida, con codigos o programas como los hechos en C, tu puedes decidir que pin del puerto paralelo tendra un nivel alto (5v) o un nivel bajo (0V).

Código: Text
  1. -De cada una de las 32 salidas que obtenemos al final se puede conectar a un relé y mandándole un 1 a una salida ¿se activa el relé que tuvieramos conectado ahí?.
  2.  
  3.  

- Para activar el reley que quieras debes hacer el programa que te di en el algoritmo, ahi decides cual sera el relay que se activara.

Código: Text
  1. -Si con las 8 salidas iniciales de momento tengo bastante para probar, no tengo integrados, ¿el código me sirve igual? pero sólo con las salidas S0 a S7.
  2.  
  3.  

- Exacto!... sin integrados puedes hacerlo igual, de hecho, para que todo te sea mas facil te he buscado informacion de como debes hacerlo en Basic.
   El enlace es el que sigue:

Manejo del puerto Paralelo en basic

   Espero te sea de utilidad y que tambien te responda las preguntas que tengas. Saludos!!!  :hola:

1321
Programación de Aplicaciones para Dispositivos / Re: Actuar Sobre Un Relé
« en: Lunes 29 de Diciembre de 2003, 14:16 »
Aqui el diagrama de pines...

1322
Programación de Aplicaciones para Dispositivos / Re: Actuar Sobre Un Relé
« en: Lunes 29 de Diciembre de 2003, 14:14 »
Hola, como mejor puerto se recomendaria el puerto paralelo, ya que las lineas de entrada/salida son mayores, si utilizas el puerto serie necesitarias una electronica para ampliar las salidas a las cuales conectaras el relay, si quieres utilizar 7 relay's deberias poner un microcontrolador o algo para poder definir a cual quieres activar y a cual no.
 
   Eso se deja de lado si utilizas el puerto paralelo, ya que tu defines por que pin sacaras los 5 voltios... El puerto paralelo estándar sólo tiene 12 salidas digitales (8 del registro de estado y 4 del registro de control), pero las puedes ampliar y llevarlas a 32 salidas digitales utilizando una electronica exterior que constara de cuatro integrados 74LS244, aparte deberas realizar unas rutinas de programacion para el manejo de cada salida, yo solo puedo ayudarte con la misma sobre C, pero creo no es dificil su conversion a visual basic, con eso te bastara y sobrara para lo que deseas hacer.

   Te adjunto la imagen de la electronica que debes realizar y a continuacion te escribo el algoritmo para el manejo de cada salida:

Código: Text
  1. El siguiente algoritmo permite colocar en 1 cualquiera de las 32salidas del circuito, sin modificar el resto.
  2.  
  3.  
  4.  
  5.  
  6.  
  7. /* Definimos las variables */
  8.  
  9. Buffer es un arreglo[1..4] de tipo byte
  10.  
  11. i de tipo entero
  12.  
  13. dir_base,dir_control de tipo word
  14.  
  15. procedimiento inicializar
  16.  
  17. inicio
  18.  
  19. obtener dir_base del puerto paralelo
  20.  
  21. calcular: dir_control=dir_base+2
  22.  
  23. para i=1 hasta 4 hacer buffer[i]=0
  24.  
  25. fin
  26.  
  27. función dos_a_la(i de tipo entero) retorna un dato de tipo byte
  28.  
  29. definimos las variables:
  30.  
  31. r,ctd de tipo entero
  32.  
  33. inicio
  34.  
  35. r=1
  36.  
  37. para ctd=1 hasta i hacer r=r*2
  38.  
  39. dos_a_la=r
  40.  
  41. fin
  42.  
  43. procedimiento enviar(dir_salida,dato de tipo byte)
  44.  
  45. dir_salida puede estar entre 0 y 31
  46.  
  47. dato puede ser 0 o 1
  48.  
  49. inicio
  50.  
  51. Si (dir_salida>=0) Y (dir_salida<=7) entonces
  52.  
  53. inicio
  54.  
  55. Si dato=1 entonces buffer[1]=buffer[1] Odos_a_la(dir_salida)
  56.  
  57. sino buffer[1]=buffer[1] Y NO dos_a_la(dir_salida)
  58.  
  59. /*activar el buffer 1*/
  60.  
  61. port[dir_control]=7 XOR 11 /* 7=0000 0111 recuerde que el74LS244 se activa
  62.  
  63. con un valor bajo (bit en 0).
  64.  
  65. utilizamos la operacion OR con 11
  66.  
  67. para invertir los bits del registro
  68.  
  69. de control*/
  70.  
  71. /*enviar los datos*/
  72.  
  73. port[dir_base]=buffer[1]
  74.  
  75. Fin
  76.  
  77. Si (dir_salida>=8) Y (dir_salida<=15) entonces
  78.  
  79. inicio
  80.  
  81. Si dato=1 entonces buffer[2]=buffer[2] Odos_a_la(dir_salida-8)
  82.  
  83. sino buffer[2]=buffer[2] Y NO dos_a_la(dir_salida-8)
  84.  
  85. /*activar buffer 2*/
  86.  
  87. port[dir_control]=11 XOR 11 /* 11= 0000 1011*/
  88.  
  89. /*enviar los datos*/
  90.  
  91. port[dir_base]=buffer[2]
  92.  
  93. Fin
  94.  
  95. Si (dir_salida>=16) Y (dir_salida<=23) entonces
  96.  
  97. inicio
  98.  
  99. Si dato=1 entonces buffer[3]=buffer[3] Odos_a_la(dir_salida-8*2)
  100.  
  101. Sino buffer[3]=buffer[3] Y NO dos_a_la(dir_salida-8*2)
  102.  
  103. /*activar buffer 3*/
  104.  
  105. port[dir_control]=13 XOR 11 /* 13= 0000 1101*/
  106.  
  107. /*enviar los datos*/
  108.  
  109. port[dir_base]=buffer[3]
  110.  
  111. Fin
  112.  
  113. Si (dir_salida>=24) Y (dir_salida<=31) entonces
  114.  
  115. inicio
  116.  
  117. Si dato=1 entonces buffer[4]=buffer[4] Odos_a_la(dir_salida-8*3)
  118.  
  119. sino buffer[4]=buffer[4] Y NO dos_a_la(dir_salida-8*3)
  120.  
  121. /*activar buffer 4*/
  122.  
  123. port[dir_control]:=14 XOR 11 /*14=0000 1110*/
  124.  
  125. /*enviar los datos*/
  126.  
  127. port[dir_base]=buffer[4]
  128.  
  129. Fin
  130.  
  131. Fin
  132.  
  133. /*Utilización*/
  134.  
  135. primero se debe llamar al procedimiento inicializar
  136.  
  137. Luego llamar el procedimiento enviar
  138.  
  139. Ejemplos:
  140.  
  141. Si se quiere enviar un 1 a la salida 24 la llamada será:
  142.  
  143. Enviar(24,1)
  144.  
  145. Si se quiere enviar un 0 a la salida 14 la llamada será:
  146.  
  147. Enviar(14,0)
  148.  
  149. Si se quiere enviar un 1 a las salidas 3, 15 y 27 las llamadas serán:
  150.  
  151. Enviar(3,1)
  152.  
  153. Enviar(15,1)
  154.  
  155. Enviar(27,1)
  156.  
  157. Si se quieres enviar un 0 a las salidas 2, 24 y 16 y enviar un 1 a la salida 25, las llamadas serán:
  158.  
  159. Enviar(2,0)
  160.  
  161. Enviar(24,0)
  162.  
  163. Enviar(16,0)
  164.  
  165. Enviar(25,1)
  166.  
  167. /* Fin */
  168.  

   Bueno, deberia copiar todo esto y pegarlo en un documento word e imprimirlo para que lo veas mejor, este programa debes realizar para el manejo del puerto sobre las 32 salidas

   Espero te sea de utilidad y si no entiendes algo me avisas, te ayudare sin problemas. Saludos  :hola:

PD: Te adjunto aqui la conexion y en otro mensaje el diagrama de pines del integrado.

1323
Microcontroladores / Re: Read/write Flash De Código (16f87x)
« en: Lunes 29 de Diciembre de 2003, 13:19 »
Se puede leer o escribir en la eeprom de un pic16f84 sin problemas, la eeprom del mismo es de 64 Bytes. En google encontraras codigos para trabajar sobre los mismos. Saludos  :hola:

1324
Microcontroladores / Re: Evaluacion De La Idea De Mi Proyecto
« en: Lunes 29 de Diciembre de 2003, 13:11 »
Realmente interesante B) , te recomendaria realizar todas las rutinas que debas solo en lenguaje assembler, ya que la velocidad en que realizara todo sera algo super bueno... luego se podria realizar un nuevo codigo utilizando los sistemas operativos que vienen para los pic, donde puedes realizar que trabaje en modo multitarea, osea, realizaria muchas cosas a la vez, eso es algo muy interesante, pero en lo que todavia no tengo experiencia.
   Los led's que dices que tiene el display, los puedes utilizar para informar al usuario sobre la posicion que se encuentra en el texto, que se encienda el verda para avizar que se esta de la mitad del texto para  arriba, ambos cuando valla al medio y el rojo cuando cruce la mitad, solo para tener una nocion de donde se esta, y de paso iluminar el display.
   Dime... puedes escribir sin problemas en el display del celular, o es algo muy dificil... en una epoca se me habia cruzado en mente destripar mi Nokia 5160i tan solo para ver si lograba escrbir sobre el LCD, pero luego me dio miedo no volver a recuperarlo, tu sabes, aqui es dificil conseguir algo y cuando lo tienes lo cuidas como oro. :)
   Ha, queria preguntarte acerca de la cantidad de texto que puedes introducir, puede ser que sean 1.030 caracteres???... de ser asi, alcansaria muy bien pero creo no bastaria para algunas cosas.
   Bueno, te comento que te di acceso a mi MSN, va ser bravo que nos encontremos ya que segun creo, los horarios que manejas son muy distintos a los de aqui, pero ya veremos como solucionarlo... Saludos y nos mantenemos en contacto.  :hola:

PD: Por ahora vengo tranqui con los proyectos, ya que hay un reto que me esta volviendo loco, estaba trabajando en un discador telefonico para una central de alarmas. Saludos  :hola:

1325
Microcontroladores / Re: Evaluacion De La Idea De Mi Proyecto
« en: Domingo 28 de Diciembre de 2003, 01:09 »
Desde hace mucho tiempo tengo en mente realizar un proyecto para evitar tener que estudiar para lo examenes de la clase, segun lo que he visto de tu proyecto, se asemeje a lo que queria realizar yo. Dime... Eso sirve para almacenar mucho texto???... cuantos años tienes tu???... Bueno, podria ayudarte, pero no conosco de programar micros bajo C, siempre lo hago en Assembler, ya que el C no es algo super bueno, lo unico bueno es su facilidad. Saludos y espero tu respuesta.  :hola:

Páginas: 1 ... 51 52 [53] 54 55 ... 65