Página 1 de 2

Preciso de ajuda ... Delphi + PIC

MensagemEnviado: 20 Ago 2007 21:43
por mendes
Caros Colegas

Sou iniciante em DELPHI ( instalei ontem a versão 7 personal ) e também estou começando a fazer alguns “projetinhos” rs rs rs com microcontroladores . Já acompanho o Forum há alguns meses , sempre obtendo boas dicas dos colegas aqui . Agora chegou a hora de pedir uma ajuda aos colegas . No momento gostaria muito de criar um pequeno aplicativo para “LER” alguns valores recebidos pela porta serial do PC utilizando o DELPHI .O funcionamento é simples .
Tenho 8 teclas e 8 LED´s ligados a um PIC16F877 , a cada tecla pressionada acendo um LED e ao mesmo tempo , envio um valor HEX para a saída serial ( RS-232 ) . O aplicativo
feito em DELPHI seria para “mostrar” no PC qual LED está aceso , interpretando o valor recebido .
Ex. .: Na placa protótipo pressiono a tecla 1 , o LED 1 acende e envio 0X01 para rs-232 ,
na tela do PC um texto mostra LED 1 ACESO !

Se algum colega tiver dicas de “como fazer” isso , ficarei muito grato .

Desde já agradeço a ajuda .

Evandro Mendes
sugardelta@gmail.com.br

MensagemEnviado: 21 Ago 2007 09:48
por Fábio Pereira
No nosso site ( www.sctec.com.br ), nas notas de aplicação da Microlab X1, há uma nota de aplicação que descreve a comunicação serial entre um MSP430 e um PC rodando uma aplicação em Delphi.

Não é sobre PIC mas pode ser útil.

Até +

MensagemEnviado: 21 Ago 2007 23:24
por mendes
Olá Fabio ,

Obrigado pela dica , vou dar uma checada lá .

Valew !!

MensagemEnviado: 22 Ago 2007 00:16
por ernande_filho
mendes, eu uso o cport para acessar a serial.

MensagemEnviado: 16 Nov 2010 09:02
por David Henrique
Verifique no site www.rogercom.com. Lá tem vários exemplos de como comunicar o Delphi com PIC pela RS232.

Re: Preciso de ajuda ... Delphi + PIC

MensagemEnviado: 16 Nov 2010 11:09
por Djalma Toledo Rodrigues
mendes escreveu: ... Ex. .: Na placa protótipo pressiono a tecla 1 , o LED 1 acende e envio 0X01 para rs-232

Envie em ASCII

http://equipe.nce.ufrj.br/adriano/c/apo ... bascii.htm

DJ

MensagemEnviado: 16 Nov 2010 18:55
por vtrx
Como o último post da dúvida ja tem tem 3 anos,acho que ele ja descobriu como se faz...

MensagemEnviado: 17 Nov 2010 07:13
por Wagner de Queiroz
Se alguem ainda precisar eu tenho material para isso. eh só mandar um email ou mensagem PVT

MensagemEnviado: 17 Dez 2010 13:21
por mendes
Olá a todos,

Primeiramente desculpe pois fiquei longe do forum por algum tempo.
Realmente meses atras conseguir "ligar e desligar alguns LEDs" num pequeno aplicatico que fiz em Delphi 7.
Fiquei muito tempo sem "mexer" com Delphi pois brinco mesmo com Assembler rs rs rs .Recentemente comecei a montar
um amplificador de potencia com controle de volume digital utilizando o MCP42050, um pot digital da Microchip ,
está tudo funcionado beleza.
Porém agora gostaria de dar um encrementada no "sistema" e controla-lo também por um aplicativo criado em Delphi 7.
Gostaria de saber se algum colega pode me ajudar ou dar uma dica da melhor maneira de fazer isso ,quero dizer,
quando enviar (via serial) os dados do PIC para o PC (utilizando string) como "separar as informações e mostra-las em campos
no aplicativo ( campos tipo TEXTBOX) os dados, que seriam ... lado - esquerdo ou direito , nivel do volume
do lado direito e do lado esquerdo . Algo do tipo : D20+E55+VUL... o que seria mostrado no aplicativo :
O lado direito está com o nivel 20 o lado esquerdo está com nivel 55 e o V.U. está ligado.

O link do controle de volume digital :

http://www.youtube.com/watch?v=Qocn0PpTsDQ

Obrigado a todos e boas festas

Evandro

MensagemEnviado: 17 Dez 2010 14:43
por Wagner de Queiroz
Evandro, faca sua string sair do pic com um caracter de inicio e de fim:

tipo: STX strings...strings ETX

O caractere STX eh o 02 e o ETX acho que é 03.

No delphi no evento de receber a serial, pega cada byte recebido e compara com STX. é igual STX, entao tudo que chegar, guarda numa variavel string. fica de olho até chegar o ETX. chegou o ETX. Pega a string guardada e envia para o decodificador e limpa o buffer e fica de olho no STX

O decodificador sabe que cada pedaco da string eh algo e a separa com o velho comando copy

duvida eh só chamar no msn

MensagemEnviado: 17 Dez 2010 18:00
por vtrx
Voce pode padronizar um tamanho fixo de 'string' enviado pelo PIC.
Exemplo;
D20E55VUL= 9 bytes,então o Delphi separa as partes que interessa.

Código: Selecionar todos
var
Info,Vu:String;
Volume_D,Volume_E:integer;
begin
Info:=ReadComm;//Aqui vc usa sua rotina de leitura na serial,Ex:'D20E55VUL';
Volume_D:=StrToInt(Copy(Info,2,2));
Volume_E:=StrToInt(Copy(Info,5,2));
Vu:=Copy(Info,7,3);


Depois disto a variável 'Volume_D'vai ter o volume direito,Volume_E o volume esquerdo e Vu vai ter se Vul(ligado)ou Vud(desligado).

MensagemEnviado: 20 Dez 2010 07:29
por Wagner de Queiroz
O problema da string de tamanho fixo, é que nem sempre o Windows entrega ao delphi a string inteira. Exemplo:

o PIC envia: 1234567890
o Delphi recebe num evento: 12
o Delphi recebe noutro evento: 34567890
Isso eu vejo muito quando uso cabos USB/Serial.

Faça da forma segura, fique de butuca esperando o byte de inicio, quando ele ocorrer, vc comeca a guardar numa variavel buffer até encontrar o byte de fim e ai sim vc envia a string para a decodificacao.

Fique atento tambem a possibilidade de timeout da transmissao, seu programa pode ficar travado esperando dado quando a conexao cai ou recebe ruido e perde dados.

MensagemEnviado: 20 Dez 2010 10:36
por vtrx
O problema da string de tamanho fixo, é que nem sempre o Windows entrega ao delphi a string inteira

Ha algum problema com a programação que voce usou.
Voce deve rever a estrutura de programação relacionada a porta serial,não use timer para recepção,só use 'thread'.
Tenho programadores de Eeprom que le e grava mais de 1 mega de dados usando 'strings' fixas de 32 bytes pela serial sem problemas.
Se voce usar o componente Tcomport,terá um limite de recepção por vez,voce deve ter usado este componente.

MensagemEnviado: 20 Dez 2010 11:37
por mendes
Obrigado a todos pela ajuda e pela "luz".

Nos próximos dias começarei a fazer os testes com as dicas que foram passadas aqui , logo logo postarei os resultados. ( é que no periodo de férias estou trabalhando com a velocidade reduzida :lol: ).
Mais uma vez obrigado.

Abçs

O tempo voa...

MensagemEnviado: 22 Out 2011 23:30
por Budweiser
:idea: Três anos para fazer LEDs piscarem e RS-232 com Delphi...