Ir ao conteúdo
  • Cadastre-se

Ajuda - PIC18F4550 (Projeto)


Luuizc

Posts recomendados

Olá galera!

Acho que é o primeiro post que faço aqui!

Bom vamos ao que interessa!

Primeiro, vou explicar o que pretendo fazer e vocês me digam se é possível fazer!

O meu projeto é fazer uma CNC, controlando os eixos XYZ e ativar um relé para acionar um motor. Tudo isso controlado via USB pelo PIC 18F4550.

Como vou controlar os eixos através de motores de passo e como os motores que pretendo usar usam 4 entradas, então pelas minhas contas o projeto irá precisar de no mínimo 13 saídas do PIC18F4550. Isso é possível? Pelo que eu vi tem como configurar o PIC para 32 I/O, mas não tenho certeza se usando através da USB isso é possível.

Bom esta é a ideia do projeto até então!

Agora eu já comprei um gravador e uma placa de desenvolvimento para o PIC 18F4550 e estou usando o MPLAB C18 para gravar o PIC, porém eu não consegui sequer gravar um código nele!

Está ocorrendo o seguinte erro: PKWarn0003: Unexpected device ID: Please verify that a PIC18F4550 is correctly installed in the application. (Expected ID= 0x1200, ID Read= 0x0)

Quando eu tento gravar o código no PIC.

Eu configurei o MPLAB de acordo com o PIC e usei um projeto pronto então já importo todas as bibliotecas necessárias. Cheguei a compilar o código e não apresentou erros.

Bom, não sei se este erro já aconteceu com alguém, mas se alguém souber o que é e puder ajudar vou ficar muito agradecido.

O gravador que eu disse que comprei é este:

http://produto.mercadolivre.com.br/MLB-242888462-gravador-de-pic-usb-e-placa-de-desenvolvimento-pic18f4550-_JM

E o print da tela do erro é este:

http://forum.clubedohardware.com.br/attachment.php?attachmentid=89841&stc=1&d=1347622654

Pessoal, agradeço desde já qualquer ajuda ou colaboração!

post-993096-13884963963471_thumb.jpg

Link para o comentário
Compartilhar em outros sites

É eu enviei a placa para teste então não vou conseguir testar agora, mas eu estava tentando gravar qualquer projeto, qualquer código, acho que isso é indiferente do erro que estava ocorrendo, no caso eu tinha feito só um código mandando um sinal para uma das portas.

Eu então entendi o que você quis dizer com " programação de OS(Windows ou Linux)."

Programação de OS? Você quer dizer linguagem normal, C, C++, etc...isso?

E quanto ao projeto você acha que o eu consigo controla todos os motores via USB pelo PIC?

Obrigado!

Link para o comentário
Compartilhar em outros sites

Programação de OS? Você quer dizer linguagem normal, C, C++, etc...isso?

Sim.

E quanto ao projeto você acha que o eu consigo controla todos os motores via USB pelo PIC?

Claro,qualquer 'coisa'.

Só tem um detalhe.

Começar do zero(programação OS/PIC/Hardware),não vai ser fácil para voce.

Link para o comentário
Compartilhar em outros sites

Eu tenho um conhecimento de programação em C, C++ e C#.

Já programei também o pic 8051 em assembler ( em um simulador ).

Eu já vi uns projetos aqui com o 18F4550, mas ainda estou confuso como funciona a comunicação PC>PIC USB>PC.

Creio que o problema que esteja acontecendo comigo na hora de gravar o PIC seja problema da placa, então já enviei de volta ao fornecedor e ele vai testar para ver se está funcionando ( espero que seja um problema na placa mesmo! :mellow: )

Eu vi um projeto do MatheusLPS em que ele fez a programação da interface em C# e usou uma classe em C para comunicar via USB com o PIC. Eu vi as funções onde ele manda os sinais, mas na hora que eu fui ver a programação do PIC em C eu não entendi a relação de qual sinal enviando pela interface em C# ativa a pino do PIC.

Se vocês puderem disponibilizar um exemplo explicado bem simples de somente como acender um led via USB ficaria muito grato. :)

Link para o comentário
Compartilhar em outros sites

mas ainda estou confuso como funciona a comunicação PC>PIC USB>PC

Então,existem classes em USB e cada uma comunica de um jeito.

Eu tenho um exemplo progamado no CCS,mas usa ou Delphi ou Borland C++ e classe HID USB(não usa drivers específicos,é só plugar no PC).

Aguarde mais respostas.

Link para o comentário
Compartilhar em outros sites

Nesse momento estou usando uma classe HID USB também e novamente usando C#.

Em todos os casos, sempre pego projetos bem iniciados, faço engenharia reversa e pego o jeito de como os dados são enviados e recebidos.

Mais tarde posto um exemplo.

O grande lance é assim:

No PIC tem uma variável tipo vetor de digamos 80 posições.

você envia esse vetor grande de uma vez só para o PC.

No C# você espera a chegada desse vetor grande e lê cada uma das 80 posições do vetor.

Aí você sabe o que está vindo. E cada valor você joga em alguma coisa que você presisa.

O inverso é válido também.

No seu caso. De cotrolar motores de passo, você só precisa enviar para o PIC a direção e velocidade.

você deixa esses 2 valores sempre na posição 4 e 5 do vetor, por exemplo. Assim o PIC pega isso e interpreta que nessa posição sempre vai vir direção e velocidade.

Outra sugestão que andei lendo bem por alto por aí seria um tal de microsteping. Seria uma forma mais suave de controlar motores de passo. Sendo que usando essa técnica o motor de passo não dá os "trancos" dos passos.

Mas não estudei muito bem isso. Por isso as infos meio vagas.

@vtrx, poste sim seu projeto.

Nunca mexi no C++ mas quem sabe não migro do c# pra ele? Você usa o Visual Studio C++ Express?

Falou

Link para o comentário
Compartilhar em outros sites

Demorei mas achei o link.

Eu postei no ano passado um exemplo para CCS + USB/HID + C++ Borland.

Usei o Borland 6 C++,pois é fácil e leve achá-lo para download,assim fica fácil ajudar alguem da família 'Borland' (Delphi ou C++).

Uma observação é que utilizo um componente que foi programado para Delphi,mas postei um arquivo txt ajudando como instalar no C++ 6.

Ainda não utilizei as APIs do Windows.

Foi testado no XP e Win 7.

-> Exemplo HID CCS <-

Lembrando que escolhí o CCS pois tem muita gente que usa.

Nunca mexi no C++ mas quem sabe não migro do c# pra ele? Você usa o Visual Studio C++ Express?

Se foi para mim,costumo evitar C# e Visual Studio apenas pelo motivo que o executável é totalmente direcionado para Windows e quase sempre tem que instalar Run Times na máquina que vai rodar o exe.

O executável gerado pelo Delphi ou Borland C++ é um executavel só e mais nada.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!