LusoRobótica - Robótica em Português
Sistemas específicos => PIC => Tópico iniciado por: Arknum em 26 de Maio de 2010, 18:26
-
Como faço para ligar um pic, no meu caso 16f84, ao pc? para enviar dados e ver no pc.
Eu quando estudava fazia isso mas já não me lembro como fazia, o que me lembro é que o programa que via o que o pic enviava era o Hyper Terminal.
-
Precisas de ter uma porta serie para ligar a usart do pic ao pc, ou então um adaptador usb-serial, e depois precisas de configurar a usart do pic e depois é fazer printf()
-
Se utilizar RS232 preciso de um max232 não é?
existe uma alternativa que não envolva ter de ir comprar material?
-
Podes sempre fazê-lo com um par de transistores e umas resistências. Mas precisas sempre de material.
E vais ter que fazer a porta série do PIC em software, o F84 não tem nada.
É por isso que já se falou em evoluires para outros mais capazes.
Não estou a dizer que o 84 não presta, nada disso.... estou a dizer que com os PIC mais completos, se faz um trabalho melhor e mais rápido.
-
Pois é tens razão, vou ler o teu manual asena para ver se evoluo um pouco mais para dar passos mais compridos.
Entretanto descobri aqui perdido um 16f877 e já vi que tem muito mais coisas que o f84, vai dar para, enquanto leio o manual, fazer umas experiencias.
Obrigado pela ajuda
-
Boas
Já comprei o max232 e fiz este esquema de ligações
http://www.rogercom.com/ (http://www.rogercom.com/)
e até utilizei o programa dele e tudo
programei o meu pic com este código
#include <16F84.h>
#fuses hs,noprotect,nowdt
#use delay (clock=4000000) // igual ao cristal
#use RS232(baud=2400, bits=8, parity=N, xmit=pin_b6, rcv=pin_b5)
char valor;
main()
{
while (1){
output_low(PIN_a1);
valor=getch();
output_high(PIN_a1);
delay_ms(10);
printf("%c",valor);
delay_ms(100);
}
}
E nada, não consegui ver nada nem no hyperterminal nem no programa que o site em cima fornece.
Já agora a ficha está ligada da forma que mostra o site.
Estou a fazer alguma coisa de mal?
-
Pois é tens razão, vou ler o teu manual asena para ver se evoluo um pouco mais para dar passos mais compridos.
Que manual é esse do asena? Agora fiquei curioso, podes-me indicar asena?
-
O manual está aqui
http://lusorobotica.com/index.php?topic=1041.0 (http://lusorobotica.com/index.php?topic=1041.0)
-
#include <16F84.h>
#fuses hs,noprotect,nowdt
#use delay (clock=4000000) // igual ao cristal
#use RS232(baud=2400, bits=8, parity=N, xmit=pin_b6, rcv=pin_b5)
char valor;
main()
{
while (1){
output_low(PIN_a1);
valor=getch();
output_high(PIN_a1);
delay_ms(10);
printf("%c",valor);
delay_ms(100);
}
}
E nada, não consegui ver nada nem no hyperterminal nem no programa que o site em cima fornece.
Já agora a ficha está ligada da forma que mostra o site.
Estou a fazer alguma coisa de mal?
# estás seguro que o "printf" te configura uma porta série?
# o programa envia o q recebe da prta série, faz eco. Portanto, o q escreveres no teclado, ele vai reenviar para o PC.
Instala este programa TERMINAL (http://www.senaeng.com/files/terminal.exe), é muito bom.
-
Sim a ideia era fazer o eco, e faz, entretanto identifiquei o erro. O erro foi meu, em vez de ligar o rx ao pino 2 da ficha tinha ligado ao pino 4 :-[.
Quando chegar a casa vou experimentar o tal programa.
Obrigado asena
-
Pegando neste tópico: quero ligar um 18f4520 ao pc. a ideia é enviar dados (valores de velocidade, por exemplo) para o PC e lá fazer uma aplicação em que mostre os valores, dê para fazer gráficos, etc. Numa fase mais avançada, até configurar o PIC através do PC.
Agora: comunico pelo UART através do hyperterminal, certo? Como aconselham a mostrar os resultados? Queria ter uma aplicação (para ficar bonitinho e tal) mas como vou buscar os dados ao hyperterminal? E qual a melhor maneira para fazer essa aplicação?
Obrigado :)
-
Pegando neste tópico: quero ligar um 18f4520 ao pc. a ideia é enviar dados (valores de velocidade, por exemplo) para o PC e lá fazer uma aplicação em que mostre os valores, dê para fazer gráficos, etc. Numa fase mais avançada, até configurar o PIC através do PC.
Agora: comunico pelo UART através do hyperterminal, certo? Como aconselham a mostrar os resultados? Queria ter uma aplicação (para ficar bonitinho e tal) mas como vou buscar os dados ao hyperterminal? E qual a melhor maneira para fazer essa aplicação?
Obrigado :)
O hyperterminal é uma aplicação que te permite efectuar comunicação pela porta série mas a tua aplicação também o pode fazer não precisas do hyperterminal :) Por exemplo em C# há montes de exemplos e é bastante simples e até por aqui pelo forum há exemplos :)
-
Qualquer terminal abre a porta serial e lê, podes fazer um programa em C e usar a biblioteca serial ou com ou qualquer coisa assim parecida, não vais buscar os dados ao terminal, lês directo da porta.
-
Hum ok. Obrigado ;)
Então agora pensando na aplicação, que linguagem aconselham para fazer uma aplicação bonitinha e que use os dados da porta serie para fazer uns graficos e tabelas?
obrigado!
-
Tens Qt em que usas C/C++ ou VIsual Studio.
-
Hum ok... vou averiguar entao :)
thanks!
-
Como já disseram, do lado do PIC é configurares a USART e utilizares o printf() ou mesmo funções criadas por ti (por exemplo usart_putc(), etc).
Do lado do PC: no windows eu gosto de usar C# por ja ter a classe "SerialPort" pronta a usar e é super simples. Tens também o Qt (C++) mas não tem nenhuma classe oficial para comunicação série (RS232). Existem algumas alternativas não oficiais, mas do que experimentei, nenhuma me agradou (qextserialport e QSerialDevice).