• Welcome to LusoRobótica - Robótica em Português.
 

Duvida - Ligar PIC ao PC

Started by Arknum, 26 de May de 2010, 18:26

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Arknum

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.
Visitem os Açores vale a pena.

senso

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()
Avr fanboy

Arknum

Se utilizar RS232 preciso de um max232 não é?
existe uma alternativa que não envolva ter de ir comprar material?
Visitem os Açores vale a pena.

Sérgio_Sena

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.
Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

Arknum

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
Visitem os Açores vale a pena.

Arknum

Boas

Já comprei o max232 e fiz este esquema de ligações
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?
Visitem os Açores vale a pena.

r.mota

Quote from: Arknum on 26 de May de 2010, 23:54
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?

Arknum

Visitem os Açores vale a pena.

Sérgio_Sena

Quote from: Arknum on 28 de May de 2010, 17:48

#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, é muito bom.
Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

Arknum

#9
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
Visitem os Açores vale a pena.

beirao

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 único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

metRo_

Quote from: beirao on 10 de June de 2011, 08:48
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 :)

senso

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.
Avr fanboy

beirao

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!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

senso

Tens Qt em que usas C/C++ ou VIsual Studio.
Avr fanboy