Ir ao conteúdo
  • Cadastre-se

Ajuda com PIC


Skylord_one

Posts recomendados

Olá!

Estou querendo iniciar em PIC's.

E.. preferi começar pelo simples (obviamente ^_^) , uma placa PCI , com uns 10 LED's e o PIC , para que eu possa programar sequencias de acendimento.

Minhas dúvidas são..

Qual PIC devo comprar?

Onde posso achar um esquema de gravador de PIC's?

Quais programas uso pra poder programar o PIC?

Outra dúvida... é necessário eu fazer 2 placas separadas? Tipo..

1 Para gravar o PIC e outra com os led's pra executar o que programei?

Desde já agradeço e aguardo respostas ^^

Link para o comentário
Compartilhar em outros sites

Boa noite! Cara, você pode começar a programar o PIC16F84A, que é bem básico e dá conta tranquilo do que você precisa fazer e também sugiro que você programe em C, como gravador, você pode montar o seu próprio ou comprar um, no meu caso, eu comprei um PIC Burner, tá em torno de 25 pila, mas dá e sobra para quem está começando. Abraço!

Link para o comentário
Compartilhar em outros sites

Supondo que você utilize o compilador CCS para desenvolver abaixo colocarei um pequeno exemplo que será um oscilador, ligado um led e desligando o mesmo a cada segundo:

#include <16F84A.h> //Configura o modelo do PIC

#FUSES NOWDT,HS,NOPUT,NOPROTECT //Configura os bits de inicialização

#use delay(clock=20000000) //Cristal usado

void main()

{

for(;;){ //loop infinito

delay_ms(1000); //tempo de 1 segundo em espera

output_low(pin_b2); //desliga o led

delay_ms(1000);

output_high(pin_b2);//liga o led

}

}

Basta lembrar que para ligar um led diretamente a um pino do PIC, é necessário colocar em série um resistor de 470R.

Link para o comentário
Compartilhar em outros sites

Caramba CeDahmer valeu pelo exemplo =D

Tenho algumas dúvidas...

Tem algum problema se eu não definir o modelo do PIC?

#include <16F84A.h> //Configura o modelo do PIC

Como assim o cristal? Isso varia de PIC pra PIC?

#use delay(clock=20000000) //Cristal usado

-EDIT-

Esqueci de perguntar?

Já fiz a lista de componentes para comprar , farei um gravador de PIC básico para o 16F84A.

Depois que eu montar a PCB , qual o procedimento para conectar com o PC pela Porta Serial?

E Você falou do Compilador CCS , acho que eles são pagos certo? Não existe algum Freeware?

Link para o comentário
Compartilhar em outros sites

É o seguinte, esse exemplo que eu te passei é no compilador CCS, existe sim compiladores gratuitos, mas para esse PIC acreditou que so o MPLAB, fornecido pela própria microchip, mas ele é em assembler, e não em C. Os microcontroladores inicialmente foram projetados para trabalharem com códigos hexadecimais elaborados em assembler, mas se criou compiladores em outras linguagem, como C e basic, mas é claro que quem criou quer receber por isso, o CCS, é o mais usado, para que esta começando é o que mais tem exemplos no google, e mais fácil de encontrar ajuda, existe uma versão demonstrativa do CCS, e gratuita, mas só faz pequenos programas até 2 K se eu não me engano, para esse problema já seria o sufiente. Não podemos incentivar a pirataria, mas tem até quem baixa a versão completa do emule, muitos fazem isso enquanto estudam e depois compram a versão.

No #include voc~e precissa definir o tipo do PIC, pois na verdade você está indicando uma biblioteca de funções específicas para aquele PIC.

O cristal é conectado externamente ao PIC, ligado em série a ele ainda tem dois pequenos capacitores de 15pf ao terra. E a frequência indicado tem que ser a mesma do cristal.

Antes de estudar comunicação entre o PIC pela porta serial, estude e pratique bastante, pois tem muitos conceitos que você ainda precissa aprender, baixe o datasheet, desse uC, e procure estudá-lo bastante.

Link para o comentário
Compartilhar em outros sites

Obrigado , estou imprimindo o datasheet agora . vai ser meu livro de noite agora ^^

Apareceram algumas dúvidas quanto ao gravador que quero fazer..

Aqui vai o esquema.:

schaltbildjdm.gif

O Que eu quero saber é.: A Alimentação do circuito é fornecida pela própria porta serial?

CeDahmer , você me forneceu o código , mas e sobre o Hardware ? Qual circuito eu aplico aquele código? Terei que comprar o cristal?

Link para o comentário
Compartilhar em outros sites

A alimentação é fornecido pela porta serial. Para ser mais seguro compra um gravador, no mercado livre que custa R$ 28,00 se não me engano, e não corre o risco de voc~e queimar a porta do PC, e nem o PIc, a não ser que entenda de eletrõnica analógica, ou quer montar por satisfação própria.

As peças que terá que comprar para usar junto ao capacitor, para uma montagem mínima, precisa ser um cristal de 4 mhz, no exemplo acima de passei 20 Mhz mas se não me enganho o 16f84, só suporta 4 Mhz, mas é precisso verificar, dois capacitores de 15 pf, tome cuidado é picoFarad e não microFarad e nem nanoFarad, resistor de 10 K para o pino MCLR, leds para os testes e resistores de 470r para ligar em série com os resistores. Abaixo segue o exemplo do circuito para o programa acima, lembrando que lá o valor do cristal tem que ser mudado para 4000000.

post-9775-13884958278796_thumb.jpg

Link para o comentário
Compartilhar em outros sites

Valeu deixa eu ver se entendi bem...

1º Faço uma PCI com esse circuito.

2º Gravo o 16F84A com aquele código ( mudando o clock para 4000000 )

3º Ligo e curto a minha primeira montagem com PIC ^^

E A Alimentação desse circuito?

OBS.: Depois que eu fazer isso pretendo passar pra algo intermediário.:

Usar um LM35 com um Display LCD + o 16F84A pra poder mostrar a temperatura.

Eu sei que é errado tentar correr antes de aprender a andar , mas se eu tropeçar volto pro andador :D

Não sabe o quanto sou grato pela ajuda ^^ Vou deixar o tópico em aberto para poder solucionar futuras dúvidas.

Link para o comentário
Compartilhar em outros sites

É isso aí...

A alimentação é feita com 5V, e 0V, não lembro qual são os pinos desse PIC para a alimentação, você encontrara fácil no datasheet, ou no amigo google, tome cuido que os PICs só aceitam no máximo 5,5V, mais que isso queima, com o tempo você verá os problemas que surgem, mas vai devagar, mas com um objetivo grande, e corra atrás. De preferência compra várias peças sobresalentes, pois são baratas, com certeza queimará algumas delas tentando, eu queimei vários PICs, e olha que começei com os de 40 pinos, que são mais caros.

Boa sorte... e qualquer coisa conte com a ajuda dos amigos daqui. Eu sempre faço isso.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

olá. voltando ao início do começo do princípio do tópico considere usar pic16f628 (o f84 é meio que obsoleto), mplab e proteus no teu início de carreira. passe os olhos sobre o asm rapidão MESMO! (pode até pular esta parte) logo em seguida, use o mikroc que tem muitos exemplos e continue simulando no proteus. depois parta para a parte prática. gravador tem às pencas na net. já tive sucesso com jdm e ic-prog.

se eu perguntar se já visitou www.microchip.com vai me chingar? então faça de conta que não perguntei.

sucessos!

Link para o comentário
Compartilhar em outros sites

Valeu deixa eu ver se entendi bem...

1º Faço uma PCI com esse circuito.

2º Gravo o 16F84A com aquele código ( mudando o clock para 4000000 )

3º Ligo e curto a minha primeira montagem com PIC ^^

E A Alimentação desse circuito?

OBS.: Depois que eu fazer isso pretendo passar pra algo intermediário.:

Usar um LM35 com um Display LCD + o 16F84A pra poder mostrar a temperatura.

Eu sei que é errado tentar correr antes de aprender a andar , mas se eu tropeçar volto pro andador :D

Não sabe o quanto sou grato pela ajuda ^^ Vou deixar o tópico em aberto para poder solucionar futuras dúvidas.

Link para o comentário
Compartilhar em outros sites

olá. voltando ao início do começo do princípio do tópico considere usar pic16f628 (o f84 é meio que obsoleto), mplab e proteus no teu início de carreira. passe os olhos sobre o asm rapidão MESMO! (pode até pular esta parte) logo em seguida, use o mikroc que tem muitos exemplos e continue simulando no proteus. depois parta para a parte prática. gravador tem às pencas na net. já tive sucesso com jdm e ic-prog.

se eu perguntar se já visitou www.microchip.com vai me chingar? então faça de conta que não perguntei.

sucessos!

Link para o comentário
Compartilhar em outros sites

Será que alguém poderia me responder isso .:

Eita , não demorou muito pra surgir uma dúvida

Procurei e vi que VCC / VDD = Positivo (+)

VEE/ VSS = Negativo (-)

A Informação é correta?

Já tenho a fonte de 5V , só fazer essa ligação?

A informação está correta. Pode fazer a ligação.

e outra.: Cristal de 4.000Mhz não é de 4Mhz certo? ( Daqui a uns anos quando eu aprender mais sobre eletrônica , vou falar meu deus eu era muito mula pra perguntar isso )

Os cristais de 4.000MHz não são 4GHz. O ponto é uma vírgula. Até porque nunca vi cristais de 4GHz.

Link para o comentário
Compartilhar em outros sites

Apenas um comentário. Sim existe um compilador gratuito para PIC16f. É da Hi-TECH C, e se não me engano quando você instala o MPLAB ele pergunta se você quer instalar. Qualquer coisa o link é este: LINK

A versão LITE não tem limite de codigo, apenas não otimiza ao maximo.

Comentario 2: Eu compraria um PIC da familia 18F apenas pela reutilização do mesmo. Você poderá utilizar o mesmo PIC para muitos mais projetos. Ele não é muito mais complexo do que a familia 16f, porém tem BEM mais recursos de memoria e perifericos.

Abs

Link para o comentário
Compartilhar em outros sites

Ajuda ai nesse circuito...

Vi na revista Elektor de Dezembro/Janeiro , um circuito muito interessante , que usa apenas um PIC 16F616 , 8 Resistores e 7 Led's pra criar uma Mensagem Flutuante .

Você monta isso em uma placa e liga , e sacode a placa na horizontal e a palavra aparece ,com a devida gravação do PIC Claro ^_^

Aqui vai o Esquema.:

circuitotm.th.jpg

esquemay.th.jpg

O Que eu queria saber é o seguinte , no site da ELEKTOR tem para baixar uma planilha que é usada para criar o código da palavra e gravar no PIC , e um arquivo .hex e um arquivo .bas

message_flotant.hex

message_flotoant.bas

font_generator.xls <- Planilha pra criar o código da palavra.

O Que são esse .hex e .bas? Devo gravá-los no PIC?

-EDIT-

AH! Esqueci de pedir...alguém tem algum circuito gravador de PIC16F616?

Link para o comentário
Compartilhar em outros sites

Eu ja programo pic a quase 1 ano, uso o modelo 16F690. Faço projetos dos mais diversos e estou pensando em migrar para um 18F4550, tanto pelo usb, quanto pelo adicional de 40 pinos e uma vastidão de recursos que não há no meu atual. Se topar se arriscar indicaria ocmeçar ocm o 18F direto, pois futuramente tem bem mais proveito.

Link para o comentário
Compartilhar em outros sites

Ajuda ai nesse circuito...

Vi na revista Elektor de Dezembro/Janeiro , um circuito muito interessante , que usa apenas um PIC 16F616 , 8 Resistores e 7 Led's pra criar uma Mensagem Flutuante .

Você monta isso em uma placa e liga , e sacode a placa na horizontal e a palavra aparece ,com a devida gravação do PIC Claro ^_^

Aqui vai o Esquema.:

circuitotm.th.jpg

esquemay.th.jpg

O Que eu queria saber é o seguinte , no site da ELEKTOR tem para baixar uma planilha que é usada para criar o código da palavra e gravar no PIC , e um arquivo .hex e um arquivo .bas

message_flotant.hex

message_flotoant.bas

font_generator.xls <- Planilha pra criar o código da palavra.

O Que são esse .hex e .bas? Devo gravá-los no PIC?

-EDIT-

AH! Esqueci de pedir...alguém tem algum circuito gravador de PIC16F616?

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Eu costumo usar o PICwizard do proprio CSS, mas desta vez eu pesquisei os fuses e tentei fazer um pisca com interrupção, sei que a velocidade que vai piscar é rápido, mas a intenção é só ver se funciona mesmo. Podem conferir itens como FUSES, CLOCK, INT que nao sei bem como faz.

#include <16F690.h>
#fuses RC,NOWDT,PUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT
/*oscilador interno

SEM:
master clear
watch dog
code protect
data protect
brownout reset

COM:
power up timer*/
#use delay(clock=4000000)
#define led PIN_A0

#INT_T0
voit T0_isr(void)
{
output_toggle(led);
}


void main(void)
{
setup_timer_0(T0_INTERNAL|T0_DIV_BY_256);
enable_interrupts(GLOBAL);
enable_interrupts(INT_T0);
output_low(led);
while(1);
}

Link para o comentário
Compartilhar em outros sites

Corrigindo o código do EDU, temos uma interrupção que o LED pisca a cada 1 Segundo:

#include <16F690.h>
#fuses INTRC_IO,NOWDT,PUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT

#use delay(clock=4000000)

#define led PIN_B7

int aux;

#INT_TIMER0
void trata_int(void)
{
if (aux > 16)
{
output_toggle(led);
aux = 0;
}
aux++;
}


void main(void)
{
setup_timer_0(RTCC_INTERNAL |RTCC_DIV_256);
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0);
output_low(led);
while(1);
}

Falou

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