Sensor sonic com pic 16f628a
Página 1 de 1
Sensor sonic com pic 16f628a
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_;
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);
}
}
}
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_;
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
Re: Sensor sonic com pic 16f628a
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_;
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
luisfandrade8- Mensagens : 1
Data de inscrição : 30/07/2015
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|