Entrar    Registrar

Preciso de ajuda ... Delphi + PIC

Programação Delphi e Pascal

Moderadores: guest2003, 51

  • Autor
    Mensagem

Preciso de ajuda ... Delphi + PIC

Mensagempor mendes » 20 Ago 2007 21:43

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
mendes
Bit
 
Mensagens: 6
Registrado em: 29 Nov 2006 23:17
Localização: São Paulo

Mensagempor Fábio Pereira » 21 Ago 2007 09:48

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é +
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor mendes » 21 Ago 2007 23:24

Olá Fabio ,

Obrigado pela dica , vou dar uma checada lá .

Valew !!
mendes
Bit
 
Mensagens: 6
Registrado em: 29 Nov 2006 23:17
Localização: São Paulo

Mensagempor ernande_filho » 22 Ago 2007 00:16

mendes, eu uso o cport para acessar a serial.
Ernande Filho

==>> Meus cabelos já não caem, PULAM!! <<==
Avatar do usuário
ernande_filho
Byte
 
Mensagens: 233
Registrado em: 13 Out 2006 17:28
Localização: Recife/PE/Brasil

Mensagempor David Henrique » 16 Nov 2010 09:02

Verifique no site www.rogercom.com. Lá tem vários exemplos de como comunicar o Delphi com PIC pela RS232.
David Henrique
Nibble
 
Mensagens: 68
Registrado em: 17 Jun 2008 08:05

Re: Preciso de ajuda ... Delphi + PIC

Mensagempor Djalma Toledo Rodrigues » 16 Nov 2010 11:09

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
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor vtrx » 16 Nov 2010 18:55

Como o último post da dúvida ja tem tem 3 anos,acho que ele ja descobriu como se faz...
Avatar do usuário
vtrx
Dword
 
Mensagens: 2005
Registrado em: 20 Abr 2008 21:01

Mensagempor Wagner de Queiroz » 17 Nov 2010 07:13

Se alguem ainda precisar eu tenho material para isso. eh só mandar um email ou mensagem PVT
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor mendes » 17 Dez 2010 13:21

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
mendes
Bit
 
Mensagens: 6
Registrado em: 29 Nov 2006 23:17
Localização: São Paulo

Mensagempor Wagner de Queiroz » 17 Dez 2010 14:43

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
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor vtrx » 17 Dez 2010 18:00

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).
Avatar do usuário
vtrx
Dword
 
Mensagens: 2005
Registrado em: 20 Abr 2008 21:01

Mensagempor Wagner de Queiroz » 20 Dez 2010 07:29

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.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor vtrx » 20 Dez 2010 10:36

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.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2005
Registrado em: 20 Abr 2008 21:01

Mensagempor mendes » 20 Dez 2010 11:37

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
mendes
Bit
 
Mensagens: 6
Registrado em: 29 Nov 2006 23:17
Localização: São Paulo

O tempo voa...

Mensagempor Budweiser » 22 Out 2011 23:30

:idea: Três anos para fazer LEDs piscarem e RS-232 com Delphi...
Budweiser
Nibble
 
Mensagens: 64
Registrado em: 28 Mar 2008 15:37
Localização: Florianópolis - SC

Próximo

Voltar para Delphi e Pascal

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante