Sensor sonic com pic 16f628a

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Sensor sonic com pic 16f628a

Mensagem por Luis fernando em Qui 30 Jul - 21:09:26

boa noite,

Estou começando agora a trabalhar com microcontroladores estou tentando fazer um projeto utilizando o sensor sonico HC-SR04 com um pic 16f628a, eu comecei umas pesquisas pela internet encontrei um projeto próximo ao que eu preciso, fiz minhas alterações fui simular no Protheus nao deu certo, queria uma ajuda de vocês para saber onde esta o meu erro!

como peguei de uma pesquisa da internet e aprimorei para meu uso, esta indo com comunicação de display de lcd eu nao estou utilizando o display, oque eu quero somente que mude o status do led conforme a distancia.

o programa de compilação que estou utilizando e o CCS.

conto com a ajuda de vocês.


#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>

#define trig pin_B1    
#define echo pin_B0
float distance, time;  

void main()
{

 
  set_tris_b(0x00);
  lcd_init();
  printf(LCD_PUTC, "\fWelcome ");
  delay_ms(1000);

 
 setup_timer_1(T1_INTERNAL|T1_DIV_BY_Cool;
 
  while(1)
  {
   output_high(trig);                      
   delay_us(20);                            // sending 20us pulse
   output_low(trig);
 
   set_timer1(0);
   while(!input(ECHO))                       // wait for high state of echo pin
   {}
   set_timer1(0);                           // setting timer zero

   while(input(ECHO))                      
   {}

    time=get_timer1();                       // Getting the time

    distance=time*0.028 + 1.093 ;            // Calculating the distance
                           
                           
  printf(LCD_PUTC, "\fTime :%f \nDistance = %f",time,distance); // Putting the time and
                                    //distance to the LCD
  delay_ms(1000);

 {
 
 //Apagando todos os leds
 output_low (pin_b3);
 output_low (pin_b7);
 
 
 //Acendendo o led adequado para a distância lida no sensor
 if (distance > 1.00) {
 output_high (pin_b3);
   
 }
 
 }
 
 if (distance < 2.00) {
 output_high (pin_b7);

   }
   }
   }

Luis fernando
Convidado


Voltar ao Topo Ir em baixo

Re: Sensor sonic com pic 16f628a

Mensagem por luisfandrade8 em Qui 30 Jul - 21:17:29

Luis fernando escreveu:boa noite,

Estou começando agora a trabalhar com microcontroladores estou tentando fazer um projeto utilizando o sensor sonico HC-SR04 com um pic 16f628a, eu comecei umas pesquisas pela internet encontrei um projeto próximo ao que eu preciso, fiz minhas alterações fui simular no Protheus nao deu certo, queria uma ajuda de vocês para saber onde esta o meu erro!

como peguei de uma pesquisa da internet e aprimorei para meu uso, esta indo com comunicação de display de lcd eu nao estou utilizando o display, oque eu quero somente que mude o status do led conforme a distancia.

o programa de compilação que estou utilizando e o CCS.

conto com a ajuda de vocês.


#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>

#define trig pin_B1    
#define echo pin_B0
float distance, time;  

void main()
{

 
  set_tris_b(0x00);
  lcd_init();
  printf(LCD_PUTC, "\fWelcome ");
  delay_ms(1000);

 
 setup_timer_1(T1_INTERNAL|T1_DIV_BY_Cool;
 
  while(1)
  {
   output_high(trig);                      
   delay_us(20);                            // sending 20us pulse
   output_low(trig);
 
   set_timer1(0);
   while(!input(ECHO))                       // wait for high state of echo pin
   {}
   set_timer1(0);                           // setting timer zero

   while(input(ECHO))                      
   {}

    time=get_timer1();                       // Getting the time

    distance=time*0.028 + 1.093 ;            // Calculating the distance
                           
                           
  printf(LCD_PUTC, "\fTime :%f \nDistance = %f",time,distance); // Putting the time and
                                    //distance to the LCD
  delay_ms(1000);

 {
 
 //Apagando todos os leds
 output_low (pin_b3);
 output_low (pin_b7);
 
 
 //Acendendo o led adequado para a distância lida no sensor
 if (distance > 1.00) {
 output_high (pin_b3);
   
 }
 
 }
 
 if (distance < 2.00) {
 output_high (pin_b7);

   }
   }
   }
Anexos
circuito.PNG circuito do projeto(31 Kb) Baixado 48 vez(es)

luisfandrade8

Mensagens : 1
Data de inscrição : 30/07/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum