Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   ASM y Microcontroladores (https://www.clubdelphi.com/foros/forumdisplay.php?f=44)
-   -   ayuda con componente comport (https://www.clubdelphi.com/foros/showthread.php?t=58774)

dperezju 31-07-2008 07:08:14

ayuda con componente comport
 
buenas noches amigos del foro.

Creo que ya se ha hablado mucho des este tema pero bueno la verdad no he comprendido del todo como hacer la comunicacion de un programa en delphi hacia el puerto serie, es decir, configurarlo, mandar una señal al puerto, etc.

Mi intención es algo muy sencillo (eso creo):crear un programita en delphi que al presionar un boton mande una señal a un PIC por el puerto serie y este PIC a su vez envie una señal a un circuito que controle los aspersores de un jardin, solo que aun no he encontrado como enviar esa señal al puerto serie con el programita, he instalado los componentes APRO y Comport, he leido el post de Control relay pero no he entendido bien como es que funciona, quisiera que me ayudaran con el programita ya que en cuanto al hardware siento que no estoy tan perdido.

Espero que me puedan ayudar. Saludos!!!

FGarcia 31-07-2008 17:04:07

De la programacion de los PIC y ensamblador se lo mismo que de astrofisica nuclear...¡nada!

De ComPort es tan simple como que envies solo esto:

Código Delphi [-]
//Por ejemplo al hacer click en un boton se envia una cadena 
ComPort1.WriteStr('tuComando');

por otro lado en el paquete del comport viene una carpeta de ejemplos, estudialos y practica.

JoseFco 31-07-2008 17:28:55

Hola amigos.

Lo que sobra aqui en este mismo sub-foro son ejemplos de como mandar un byte (comando a un micro) por el serial port.

Seria bueno que nos digas que componente usas para el puerto serie a ver si te damos una mejor ayuda.

Un Saludo.

JoseFco 31-07-2008 17:33:17

Veo que tienes Comport:

Aqui tienes un ejemplo:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if not ComPort.Connected then
 ComPort.Open; Comport.WriteStr(#17);
end;

esto manda un byte al serial port.

Un Saludo.

dperezju 31-07-2008 17:41:43

Exactamente, eso es lo que necesito, como enviar un byte al puerto serie, Al gonzalez me recomendo el componente APRO aunque precisamente en este foro he encontrado que mas personas usan el Comport aunque en los ejemplos aun no me queda muy claro el envio de los bytes al puerto, ya que con el comando:

ComPort1.WriteStr('tuComando');

En la parte de "tuComando" se envia una cadena, solo que necesito por ejemplo, un dato en binario o hexadecimal,y no se por que pines del puerto es donde obtengo esos bits, estas son las partes que aún no comprendo muy bien.

De antemano, gracias por su tiempo y ayuda.

egostar 31-07-2008 17:49:17

Cita:

Empezado por dperezju (Mensaje 304722)
Exactamente, eso es lo que necesito, como enviar un byte al puerto serie, Al gonzalez me recomendo el componente APRO aunque precisamente en este foro he encontrado que mas personas usan el Comport aunque en los ejemplos aun no me queda muy claro el envio de los bytes al puerto, ya que con el comando:

ComPort1.WriteStr('tuComando');

En la parte de "tuComando" se envia una cadena, solo que necesito por ejemplo, un dato en binario o hexadecimal,

Ya te ha puesto [JoseFco] el ejemplo de como enviarlo,

Cita:

Empezado por dperezju (Mensaje 304722)
y no se por que pines del puerto es donde obtengo esos bits, estas son las partes que aún no comprendo muy bien.

De antemano, gracias por su tiempo y ayuda.

Hola

Lee este documento (en inglés) para que te des una idea de lo que estas preguntando.

En específico los pines 2 y 3 son los que se usan para transmitir y para recibir datos, sin embargo, los demas pines son muy importantes.

Salud OS

dperezju 31-07-2008 18:34:09

muchas gracias amigos, voy a probar lo que me han comentado y les digo como me fue.

Muchas gracias por su ayuda!!!
Saludos!!!:)

JoseFco 31-07-2008 19:41:33

Cita:

Empezado por dperezju (Mensaje 304742)
muchas gracias amigos, voy a probar lo que me han comentado y les digo como me fue.

Muchas gracias por su ayuda!!!
Saludos!!!:)

Por el pin 3 tu envias algo y por el pin 2 recives, el pin 5 lo pones a tierra en el board del micro.
No veo mayor complicacion en conectar un micro a un programita en Delphi.

Un Saludo.

egostar 31-07-2008 19:44:15

Cita:

Empezado por JoseFco (Mensaje 304770)
Por el pin 3 tu envias algo y por el pin 2 recives, el pin 5 lo pones a tierra en el board del micro.
No veo mayor complicacion en conectar un micro a un programita en Delphi.

Un Saludo.

Depende amigo, depende :D, si estas hablando de un DB9 si, pero en DB25 es al revés y el Pin 5 es para DB9 y 7 para DB25 :)

Salud OS

JoseFco 31-07-2008 19:50:03

Cita:

Empezado por egostar (Mensaje 304774)
Depende amigo, depende :D, si estas hablando de un DB9 si, pero en DB25 es al revés y el Pin 5 es para DB9 y 7 para DB25 :)

Salud OS

Todavia existen DB25? en que parte del mundo anu no llega el desarrollo?:D

Asi es maestro, como siempre estas en lo correcto y le cabe el derecho.:D:D:D


Un Saludo.

egostar 31-07-2008 19:55:43

Cita:

Empezado por JoseFco (Mensaje 304779)
Todavia existen DB25? en que parte del mundo anu no llega el desarrollo?:D

Pues me gustaría decirle que ya no existen, pero pues si, aún siguen vigentes sobre todo para el uso con modems, debería darle una leída a cada una de las señales para que vea "pa' que" sirven :D:D:D

Cita:

Empezado por JoseFco (Mensaje 304779)
Asi es maestro, como siempre estas en lo correcto y le cabe el derecho.:D:D:D

Que paso mi amigo tan temprano está usted de agresivo :D

Salud OS

dperezju 31-07-2008 20:45:00

Ya hice el programita que me hizo favor de enviarme JoseFco:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if not ComPort.Connected then
ComPort.Open; Comport.WriteStr(#17);
end;

no sin antes utilizar un boton que muestre la ventana de los settings del comport.
Bueno, (no se si estoy mal con lo siguiente) estoy usando el DB9 y quiero medir el voltaje que sale del pin 3 y el pin 5 para verificar que efectivamente estoy obteniendo un dato, pero no alcanzo a medir nada, no se si necesito forzosamente un MAX232 para obtener un poco más de voltaje para por lo menos encender un led y así continuar con lo de los aspersores que le habia comentado.

JoseFco 31-07-2008 21:23:16

Cita:

Empezado por dperezju (Mensaje 304799)
Ya hice el programita que me hizo favor de enviarme JoseFco:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if not ComPort.Connected then
ComPort.Open; Comport.WriteStr(#17);
end;

no sin antes utilizar un boton que muestre la ventana de los settings del comport.
Bueno, (no se si estoy mal con lo siguiente) estoy usando el DB9 y quiero medir el voltaje que sale del pin 3 y el pin 5 para verificar que efectivamente estoy obteniendo un dato, pero no alcanzo a medir nada, no se si necesito forzosamente un MAX232 para obtener un poco más de voltaje para por lo menos encender un led y así continuar con lo de los aspersores que le habia comentado.

Hermano esta usted mas perdido que un raton en una ferreteria.Primero para leer un byte que salga del puerto serial tienes que tener un terminal o usar el mismo comport y puentiar los pines 2 y 3 asi te regresara y con el procedure ComPortRxChar pues leerlo.
En algunos PIC no hace falta el Max232.Pero que quieres subir el voltage a ver si enciendes un led? eso me deja saber dos cosas:

1) No tienes idea que es un puerto serie.
2)No tienes idea como trabaja un uC.

Para hacer lo que quieres amigo.Tienes que entender que el serial port solo podras conectarlo a un micro y recibir ese byte de data(comando)despues procesarlo y si es el comando que esperas, pues hacer algo con el.(encender un relay, un led,lo que se pueda conectar.
Nunca puedes usar el voltage del serial port para nada de eso.
Me gustaria poder ayudarte pero no trabajo los PIC y no tengo idea ni como configurar su puerto serial.;)
Te aconsejo encontrar algun projecto que este hecho para ese PIC que quieres usar y pues modificar tu programita Delphi de acuerdo a el.

Un ejemplo tu envias un byte de data al micro, este lo recive y entonces comparas ese byte, si es igual a lo que esperas entonces hacer una rutina que ponga uno de los pines de un puerto a cero (CLR) o lo pongas a 1 (SET), pero jamas usar un pin del puerto serie para conectar algo mas, como un led por ejemplo.

Un Saludo.

JoseFco 31-07-2008 21:27:52

Cita:

Empezado por egostar (Mensaje 304781)
Pues me gustaría decirle que ya no existen, pero pues si, aún siguen vigentes sobre todo para el uso con modems, debería darle una leída a cada una de las señales para que vea "pa' que" sirven :D:D:D



Que paso mi amigo tan temprano está usted de agresivo :D

Salud OS

Le prometo que antes que termine el año me aprendo los 25 pines del DB25.;)

Lo que no entiendo es lo de agresivo.:confused:

Acaso es alguno de esos componentes raros para serial port que tu recomiendas por aca.:D:D:D

Un Saludo.

egostar 31-07-2008 21:48:10

Cita:

Empezado por JoseFco (Mensaje 304817)
Le prometo que antes que termine el año me aprendo los 25 pines del DB25.;)

Me parece bien, le recordare el primer día de 2009 :D


Cita:

Empezado por JoseFco (Mensaje 304817)
Lo que no entiendo es lo de agresivo.:confused:

Acaso es alguno de esos componentes raros para serial port que tu recomiendas por aca.:D:D:D

No se haga Wey, sabe de lo que hablo :D:D

Salud OS

JoseFco 31-07-2008 21:53:44

Cita:

Empezado por egostar (Mensaje 304821)
Me parece bien, le recordare el primer día de 2009 :D




No se haga Wey, sabe de lo que hablo :D:D

Salud OS

jajajajajajaja para nada amigo, yo soy wey de fabrica.:D:D:D

Bueno y hablando de wey.Tengo dias que no hablo con Eduarcol, sabes algo de el?:D

Un Saludo.

egostar 31-07-2008 21:57:01

Cita:

Empezado por JoseFco (Mensaje 304823)
jajajajajajaja para nada amigo, yo soy wey de fabrica.:D:D:D

Bueno y hablando de wey.Tengo dias que no hablo con Eduarcol, sabes algo de el?:D

Un Saludo.

:D:D:D

Salud OS

poliburro 02-08-2008 07:24:04

Amigo josé no seas duro con el compañero :D, jajaja a él precisamente le hablé de ti por ser un experto en esto de la circuitería. El desea desarrollar un sistema en delphi que le permita por ejemplo encender un aspersor.

Tendrás alguna fuente que le puedas recomendar?, u orientarle sobre lo que debe investigar para conseguir su objetivo?.

Saludos

JoseFco 02-08-2008 15:07:22

Cita:

Empezado por poliburro (Mensaje 305240)
Amigo josé no seas duro con el compañero :D, jajaja a él precisamente le hablé de ti por ser un experto en esto de la circuitería. El desea desarrollar un sistema en delphi que le permita por ejemplo encender un aspersor.

Tendrás alguna fuente que le puedas recomendar?, u orientarle sobre lo que debe investigar para conseguir su objetivo?.

Saludos

Hola mi Poli.
jajajajajajaja como que duro? para nada, lo que pasa es que el amigo comenzo muy bien este hilo y en el primer post del mismo el hombre esta muy claro.despues el hombre no solo quiere medir el voltage del pin 3, tambien quiere medir el del pin 5 y para rematar la cosa quiere elevar el voltage a estos pines a ver si puede conectar un led.Entendi mal?

Aqui esta la idea y cuando trabaje en ese programita lo deje universal,puedes usarlo en el micro que quieras y el antes de comenzar este hilo paso por el.
Control Relay.

Me gustaria poder ayudarlo en el hardware y en el firmware.Pero de PIC no se nada carnal.

PD:Dile al amigo que el no conocer algo no es pecado,el pecado es no hacer el esfuerzo por aprenderlo.Siempre es mas lo que ignoramos que lo que podamos aprender.

Un Saludo.

dperezju 02-08-2008 18:32:59

Pues esa era mi duda, si ya simplemente con lo que mandara un dato por el puerto serie podia controlar por ejemplo el PIC o un led pero ya revise que hay que utilizar forzamente el protocolo RS232 para la comunicación con el mismo PIC, no asi???

Y otra cosa que queria saber era, que dato necesito enviar al puerto serie por ejemplo en binario, hexadecimal o una cadena lo cual creo que el programa contro relay lo deja claro.

Saludos!!!


La franja horaria es GMT +2. Ahora son las 00:32:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi