[tutorial] semaforo com um PIC

postagem de conteudo sobre programação de microcontroladores pic
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 743
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] semaforo com um PIC

Post by Kodo no Kami » Thu Jan 05, 2017 9:27 pm

e ae galera blz nesse tutorial vamos criar um pequeno semaforo com leds e um PIC, devo lembrar que eletronica não é meu forte sei apenas o basico dela então se estiver alguma coisa errada ou se sua casa pegar fogo nao é minha culpa (e sim culpa dos gnomos tibetanos do alasca do sul '-' ), nesse tutorial como nos outros sobre eletronica vou esta usando o proteus mesmo por que não tenho os componentes para montar esse circuito tambem nao vamos nos aprofundar em corrente tensao ou resistencia passada pelo circuito ou seja se for fazer esse tutorial usando componentes reais tenha certeza de usar resistores para não queimar os demais componentes, entao para começar abrimos o proteus

Image

agora precisamos de 3 leds de cores diferente ou as mesmas cores caso deseje, tambem precisamos de um PIC que no caso vou usar o 16f84a

Image

agora colocamos o PIC e interlgamos os leds nos pinos RB do PIC sendo cada um em um pino no meu caso vou colocar o led verde no pino RB0, amarelo no pino RB1 e o vermelho no pino RB2

Image

colocamos um ground e interligamos todos os leds nele, tambem colocamos uma fonte de alimentação que no caso vai ser um power e ligamos ele no pino mclr

Image

é necessario configurar o power rails e os pinos tambem para funcionar para isso de dois cliques em cima do pic e veja no hidden pin veja se os pinos que estao definidos ali são os mesmos que as strings do power e do ground (tambem modifque a frequencia do pic de 1mhz para 8), o foco aqui nao é ensinar usar o proteus e sim mostrar a logica do semaforo

Image

o circuito esta pronto basta a gente criar o codigo do pic, para criar o codigo vou usar um compilador de C da mikrotek, depois de abrir ele basta escolher um novo projeto depois o tipo de pic a frequencia e o local (igual o outro tutorial a diferença que no outro usei o compilador pascal)

Image

depois disso ele vai gerar o nosso projeto bastando digitar o nosso codigo em C

Image

zeramos todo os pinos B atribuindo 0 ao TRISB

Code: Select all

void main() {
   TRISB = 0;
}
como o semaforo vai ficar repetindo permanentemente entãoo vou criar um loop infinito

Code: Select all

void main() {
   TRISB = 0;
   
   while(1){
   }
}
dentro desse loop infinito vou começar acendendo o led verde (pino RB0) e apagando o vermelho (pino RB2), para fazer isso basta usar PORTB.RB seguido do numero equivalente ao do pino bastando atribuir 1 para ativar e 0 para desativar

Code: Select all

void main() {
   TRISB = 0;
   
   while(1){
      PORTB.RB0 = 1;
      PORTB.RB2 = 0;
   }
}
colocamos uma pausa de 1 segundo com a função Delay_ms

Code: Select all

void main() {
   TRISB = 0;
   
   while(1){
      PORTB.RB0 = 1;
      PORTB.RB2 = 0;
      Delay_ms(1000);
   }
}
agora temos que apagar o led verde e acender o amarelo para isso basta fazer o mesmo esquema

Code: Select all

void main() {
   TRISB = 0;
   
   while(1){
      PORTB.RB0 = 1;
      PORTB.RB2 = 0;
      Delay_ms(1000);
      
      PORTB.RB1 = 1;
      PORTB.RB0 = 0;
      Delay_ms(1000);
   }
}
por fim falta o ultimo trecho de codigo que é apagar o amarelo e acender o vermelho com isso vai ficar nesse loop permanentemente

Code: Select all

void main() {
   TRISB = 0;
   
   while(1){
      PORTB.RB0 = 1;
      PORTB.RB2 = 0;
      Delay_ms(1000);
      
      PORTB.RB1 = 1;
      PORTB.RB0 = 0;
      Delay_ms(1000);
      
      PORTB.RB2 = 1;
      PORTB.RB1 = 0;
      Delay_ms(1000);
   }
}
depois disso basta compilar o codigo para gerar o arquivo binario .hex sendo esse o arquivo que temos que colocar no PIC

Image

no caso do simulador proteus bastaria dar dois cliques em cima do pic e abrir o programa .hex na opção "program file"

Image

por fim executamos o proteus para ver se realmente funcionou se vai esta mundado a cada um segundo

Image

entao galera PIC são usados para diversos fins como eletronica automação e robotica com baixo custo \o

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “PIC”