Sei sulla pagina 1di 9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

Marcelo Cuin
Arduino | Computao | Eletrnica | Engenharia e etc Incio Contato
-- Main Menu --

mai 13 By Hemicharly Thiago

Como controlar Arduino via Delphi


Category: Arduino, Dicas, Tutorial Tags: Arduino, ComPort, Delphi, Tutorial 24 Comments Uma dica para quem quiser obter comunicao entre arduino e o delphi, para desenvolver interfaces que possibilita controlar o arduino atravs do delphi, desenvolver aplicaes para projetos de automao e outros projetos. Para conseguir esta comunicao com o delphi ser necessrio a instalao do componente TComPort, pois este componente que lhe dar todo suporte para que voc consiga obter a comunicao quanto ao envio e o recebimento de dados com arduino. Para instalar o componente TComPort, preciso fazer o download do componente no LINK: http://www.cuin.com.br/wpcontent/uploads/2013/05/COMPONENTE.rar Instalando o componente utilizarei a verso Delphi 7: 1 Passo: Depois de baixar o componente, salve ele em uma pasta de preferencia a pasta que voc utiliza pra salvar outros componentes. 2 Passo: Abra o delphi necessrio encerrar as aplicaes abertas para isto clique em FILE e clique em CLOSE ALL.

3 Passo: Clique OPEN abrira uma janela nesta janela voc localiza o componente no diretrio o qual voc o salvou: Localize a pasta comport411 e abra pasta source nesta pasta e localize o arquivo DsgnCPort7 ou o da verso do delphi o qual esta utilizando e seleciona e clica em abrir.

4 Passo: Ser aberto uma janela, clique em Compile depois clique em Install, feche a janela, ser solicitada uma mensagem para salvar clique em no.
Related Searches:

www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/

1/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

Servo Controller

PIC Microcontrollers AVR Freaks Stepper Motor Controller

5 Passo: Agora preciso voc setar diretrio do componente liberando seu funcionamento, para isto clique em TOOL/OPTION IDE, abrira uma janela clique na aba Library, clique nos 3 pontinhos que corresponde a Library path, ser aberto uma janela chamada directories clique nos 3 pontinhos e sete o diretrio onde encontra se salvo o componente em seu computador, feito isto clique em ok duas vezes.

Pronto instalao do componente est concluda. Utilizando o Componente. Abra o delphi procure a aba CPortLib e adicione o componente ComPort, para voc obter a comunicao com o arduino, voc s precisar praticamente duas partes. O mtodo ComPort1.WriteStr e o evento ComPort1RxChar. Trust Rating
Whilokii Ads

Enviando Dados:

Not Yet Rated


cuin.com.br

Para enviar dados pela porta Serial, basta passar uma String com o contedo desejado para o mtodo WriteStr basta adicionar um boto para enviar os dados para o arduino. Exemplo cdigo abaixo:

Recebendo Dados: Para receber dados pela porta Serial, basta utilizar o evento OnRxChar que acionado automaticamente toda vez que alguma informao chega porta Serial. Exemplo cdigo abaixo:

A interface do programa bem simplesinho s o bsico mesmo:

www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/

2/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

Para testar funcionamento do aplicativo basta compilar o cdigo abaixo no arduino e utilizar a interface desenvolvida em delphi para realizar os teste. Cdigo para o Arduino:

Basta digitar os comando A e B no campo comando e clicar em enviar e ser recebida a resposta logo em seguida. Para fazer o download do cdigo fonte do aplicativo desenvolvido em delphi e o cdigo fonte para o arduino esta disponvel no LINK: http://www.cuin.com.br/wp-content/uploads/2013/05/CODIGO-FONTE.rar A principal ideia conseguir a comunicao com o arduino via delphi, a partir desta ideia voc tem uma noo de como funciona o envio e recebimento de dados, agora s usar criatividade e desenvolver diversos projetos.

Espero que tenha ajudado. Abraos!

C urtir

Tw eetar

Share

24 Responses to Como controlar Arduino via Delphi

1.

Cristianosays: 15 de julho de 2013 at 21:28 Responder Cara valeu mesmo!!! Seu artigo me ajudou bastante. J estava procurando como instalar este componente. Um lembrete os componentes do tcomport esta faltando um arquivo eu tive que baixar de outro site ai deu certo a instalao. Muito obrigado por compartilhar!!!

Marcelo Cuinsays: 16 de julho de 2013 at 8:44 Responder Ol Cristiano, que bom que gostou do artigo. Com relao ao arquivo que est faltando, informe o nome do arquivo e tambm onde voc pegou, assim ajustamos a postagem para no ter mais problemas. Obrigado.

2.

Thom Lucassays: 1 de agosto de 2013 at 12:53 Responder Uso o Delphi 7 e o componente Tcomport corretamente instalado, s que quando vou compilar o projeto d erro na seguinte linha: Unit1 in Unit1.pas {F_COMUNICACAO}; O erro que aparece esse:

www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/

3/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

[Fatal Error] teste.dpr(5): File not found: Cport.dcu O que pode ser isso?

Hemicharly Thiagosays: 1 de agosto de 2013 at 13:29 Responder Vou ajudar voc por e-mail. 3. Pingback: Reconhecimento de Voz com ARDUINO + DELPHI | Marcelo Cuin

4.

Mrciosays: 28 de agosto de 2013 at 21:52 Responder Ola, achei excelente o tutorial, porm tenho trs dvidas: 1) Preciso de outro tipo de cabo (serial) para fazer conexo com o Arduino ou s o fato dele estar ligado ao usb funciona? 2) Como devo configurar o componente ComPort? S sei que o Arduino est usando a porta COM4 e 9600 baud, mas como configuro corretamente o ComPort? 3) Baixei o seu codigo fonte, mas quando clico em conectar ele d erro Unable to open com port (Error: 5). Tem alguma sugesto?

Hemicharly Thiagosays: 29 de agosto de 2013 at 17:35 Responder Ol Marcio! Respondendo suas dvidas. 1) No precisa de nenhum outro tipo de cabo serial, somente o cabo USB do Arduno o suficiente para conexo. 2) Para configurar o componente ComPort, quando voc liga o Arduno com o cabo USB, automaticamente deve-se aparecer a porta o qual o Arduno est conectado, verifique no no compilador de cdigo C do Arduno qual porta esta usando, e clique no boto configurao do software que faz a comunicao com Arduno e delphi e o configure, voc no precisa mudar nada basta colocar a porta que o Arduno est usando o resto deixa como est. 3) Esse erro provavelmente no est instalado corretamente o componente ComPort, verifique o se encontra-se instalado corretamente. Espero que tenha ajudado, qualquer duvida estarei a disposio, comunique se obter resultados. Abraos!

5.

Camilosays: 13 de setembro de 2013 at 13:34 Responder Estou com o seguinte problema, estou lendo a temperatura de um sensor de temperatura atravs do arduino, e escrevo este valor j convertino na serial, leio este valor no delphi, se eu coloco o valor em label, ele escreve o valor tudo blz, eu quero converter este valor para inteiro ou float, para que possa comparar no proprio delphi, se a temperatura for maior que 30 escreva no programa delphi o tempo esta quente, porem da erro. procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var buffer: AnsiString; contador: integer; valor: real; temperatura:String; begin Sleep(500); comport1.Connected:=true; contador:=comport1.InputCount; comport1.ReadStr(buffer,contador); label3.Caption:=ansistring(buffer); valor:=strtofloat(buffer); // abaixo da conversao farei as validaoes desde j agradeo a ajuda !

Hemicharly Thiagosays:
www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/ 4/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

15 de setembro de 2013 at 14:03 Responder Ol, Camilo. Tenta fazer o seguinte: Voc me disse que consegue mostrar os dados na Label3. Pelo que entendi voc quer armazenar os dados recebido na varivel valor certo. Voc est utilizando o seguinte cdigo: label3.Caption:= ansistring(buffer); // Para mostrar os dados no Label3 valor:= strtofloat(buffer); // Para armazenar os dados na varivel valor Creio que o erro encontra-se aqui nesta linha de cdigo. Faa o seguinte ao invs de fazer com que a varivel valor receba (buffer), faa com que ela receba o dados do label3, pois nele j encontra-se os dados que voc precisa. Ento corrigindo o cdigo que estava assim: label3.Caption:= ansistring(buffer); valor:= strtofloat(buffer); Voc muda o cdigo para: label3.Caption:= ansistring(buffer); valor:= strtofloat(label3); Caso no de certo, coloque os dados de (buffer) em um edit e faa com que a varivel valor receba os dados do edit. Caso conseguiu solucionar o erro me avisa os resultados, espero que tenha ajudado qualquer dvida entre em contato. Abraos.

6.

lucas Henriquesays: 17 de setembro de 2013 at 11:50 Responder Primeiramente Muito obrigado Marcelo pela grande ajuda em relao a edio de aplicativos em delphi, Prezado estou tendo a mesma dificuldade do Tom em relao ao erro: Unit1 in Unit1.pas {F_COMUNICACAO}; O erro que aparece esse: [Fatal Error] teste.dpr(5): File not found: Cport.dcu qual o procedimento para resoluo desde j agradeo att

Hemicharly Thiagosays: 20 de setembro de 2013 at 11:21 Responder Ol Lucas, tudo que indica que o componente no esta instalado corretamente, tenta desinstalar e instalar novamente, no esquea de setar o diretrio aonde esta a pasta do componente.

7.

Elinelson Colaressays: 18 de setembro de 2013 at 14:40 Responder Estou gostando muito destas informaes, afinal pretendo utilizar RFID com o Arduino para leitura de tags. Meu caro amigo, dentro das possibilidades, gostaria da sua ajuda para leitura dos cdigos com tags ou etiquetas utilizando o Arduino e RFID, possvel?

Hemicharly Thiagosays: 20 de setembro de 2013 at 11:14 Responder Ol Elinelson, no momento no poderei te ajudar com nenhuma informao, pois nunca utilizei RFID, mas posso estar pesquisando se eu encontrar alguma informao, posso estar lhe enviando. Abraos!!!

8.

Klederson Lucas Monteiro da Luzsays: 18 de setembro de 2013 at 17:03 Responder


5/9

www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

Estou tentando fazer o arduino conversar com meu software, porem alguns dos comando passados no tutorial no funcionam no componente do delphi XE4. Por exemplo o comando comport1.readsrt no existe, tem como me dar uma mo pra usar o componente do delphi xe4??

Hemicharly Thiagosays: 20 de setembro de 2013 at 11:11 Responder Ol Klederson, o aplicativo que desenvolvi foi em delphi 7, nunca utilizei em outras verses do delphi, vou estar verificando o que acontece, mas posso ir adiantando que muitos componentes utilizados em verses inferiores no rodam 100% em verses superiores do delphi, no caso teria que estar pesquisando componentes compatvel com a verso de seu delphi.

9.

Eduardo Costasays: 23 de setembro de 2013 at 22:05 Responder Ola! como fao para controlar a posiao de um servo via Delphi ? Ja instalei o componente e testei a comunicao

Hemicharly Thiagosays: 24 de setembro de 2013 at 11:03 Responder Bom, se voc j instalou os componentes tudo certo testou a comunicao, a comunicao do servo com delphi mesma coisa da comunicao com compilador do arduino, se voc consegue fazer ele funcionar, tipo no compilador voc programa se 1 para esquerda 2 para direita, voc envia estes comando para o delphi.

10.

Stephaniesays: 26 de setembro de 2013 at 1:44 Responder Boa Noite, gostei muito do post, fiz de primeira e deu tudo certo, porm depois que fechei o delhpi, a aba CPortLib no aparece mais, eu desisntalei e reinstalei o delphi, instalei os componentes novamente, mas no h mais santo que faa a aba aparecer novamente, e eu testei com o seu teste.exe para ver se funcionava, e no importa qual comando eu digite, sempre aparece que o comando foi digitado errado, sabe me dizer o pq nao estou mais conseguindo adicionar a porta para comunicao?? Obrigada.

Hemicharly Thiagosays: 26 de setembro de 2013 at 10:18 Responder Bom dia Stephanie, respondendo sua pergunta, sobre os comandos digitados no estarem sendo reconhecido, voc deve compilar o cdigo para o arduino, pois foi programado para ser reconhecido no delphi os comando A e B caso digitado outro comando, aparecer que no foi digitado comando correto. Respondendo a parte que a aba CPortLib no aparece mais, voc indicou o diretrio certinho? Quando desinstalar o componente para instalar novamente no esquea de apagar os arquivos que contem nomes CPortLib que esto no diretrio C:\Program Files\Borland\Delphi7\Projects\Bpl. Espero ter ajudado, qualquer dvida e sucesso obtido entre em contato em me diga os resultados obtidos. Abraos!

11.

Stephaniesays: 26 de setembro de 2013 at 13:56 Responder Ol Thiago, Percebi o erro q estava fazendo, tava com sono j e a cabea comea a no pensar direito, ao invs de estar instalando o DsgnCPort7, estava instalando o CPortLib7, por isso a cport nao tava aparecendo, agora apareceu novamente, obrigada

Stephaniesays: 26 de setembro de 2013 at 14:00 Responder S uma pergunta, h algum modo do programa identificar automaticamente a porta em que o arduino foi conectado??

Hemicharly Thiagosays: 27 de setembro de 2013 at 11:06 Responder Ol Stephanie, tem como sim identificar a porta automaticamente, basta colocar o seguinte comando Edit1.Text :=
www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/ 6/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

ComPort1.Port; junto ao boto conectar, ento ele te retornar a porta que o arduino est conectado. E para conectar o arduino automaticamente, basta colocar o comando que est no boto conectar na inicializao do programa, pois quando voc configura pela primeira vez o programa na opo configurao e logo conecta o arduino ele fica pr configurado, ento sempre que iniciar o programa se o arduino estiver conectado na entrada USB ele ser iniciado automaticamente, caso ele no esteja conectado voc pode colocar uma mensagem dizendo que o arduino no esta conectado na USB. Espero que tenha ajudo. Abraos!!!

12.

FELIPE VINHASsays: 21 de novembro de 2013 at 16:22 Responder Ola Tas dando uma grande fora ao pessoal que esta precisando estes tutoriais Fiz o teu passo a passo e me deu um erro sobre os parametros usar com a variavel Lembrando passei teu codigo para o Delphi Xe3 Buffer : ansistring; Erro: Types of actual and formal var parametres must be identical. Entendi que o erro diz que no est identico ao parametro utilizado. Mas no achei onde estou errando.. Espero. Grande Abrao

Hemicharly Thiagosays: 21 de novembro de 2013 at 19:01 Responder Ola Felipe, tenta fazer o seguinte substitui a varivel, Buffer : ansistring; por Buffer : String; Pois ja utilizei est definio de varivel e funcionou. Qualquer duvidas e resultados obtidos me avisa. Abraos!

Deixe uma resposta


O seu endereo de email no ser publicado Campos obrigatrios so marcados * Nome * Email * Site

Comentrio Voc pode usar estas tags e atributos de HTML: < ah r e f = " "t i t l e = " " >< a b b rt i t l e = " " >< a c r o n y mt i t l e = " " >< b >< b l o c k q u o t e
c i t e = " " >< c i t e >< c o d e >< d e ld a t e t i m e = " " >< e m >< i >< qc i t e = " " >< s t r i k e >< s t r o n g > Publicar comentrio

Pesquisar por:

Pesquisar

Tpicos recentes
Estacionamento inteligente com Arduino Arduino, Python e Iptables Detector de Campo Eletromagntico com Arduino Sistema Anti Chamas Arduino + Shield GSM/GPRS + Flame Detection (sensor de chamas) Ativando uma lmpada por trs sadas independentes

DevTronic
www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/ 7/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

ArduinoSP

Participe do grupo ArduinoSP E-mail: Inscrever Visitar este grupo

Publicidade

Arquivos
novembro 2013 outubro 2013 setembro 2013 agosto 2013 junho 2013 maio 2013 fevereiro 2013 janeiro 2013 dezembro 2012 outubro 2012 agosto 2012 julho 2012

Categorias
Android Arduino ArduinoSP Controle Remoto Delphi Dicas Facebook Grupo Iptables
www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/ 8/9

27/11/13

Como controlar Arduino via Delphi | Marcelo Cuin

Linguagem C Motor Novidade Optoacopladores PCB PCI Ponte H Python Raspberry PI Rel RF Sem categoria Sensores Serial Temperatura Tutorial

Tags
4n25 AC Alone

Arduino

atmega circuito Circuito Impresso controle remoto

Delphi Economia Energia estado Hardware impresso infravermelho interruptor Java


relay

laminadora led Leonardo

Linux LM35 lmpada Massimo Banzi moc3021 monitoramento Open pcb pci placa Projeto

rel Sensor servo solid slido temperatura

Tenso transferncia triac Tutorial trmica Voltage Voltagem

Twitter
2013 Marcelo Cuin Powered by WordPress and the Designfolio Theme.

www.cuin.com.br/2013/05/como-controlar-arduino-via-delphi/

9/9

Potrebbero piacerti anche