Ir ao conteúdo
  • Cadastre-se

Medir distancia com sensor de ultra som


cesarlg

Posts recomendados

Ola pessoal. me deparei com uns videos mostrando o sensor ultrasonico com arduino mostrando distancia de aprox.4mts.

pois bem nao encontrei nada em pic ccs. .

edit. estou tentando converter o codigo do arduino .. vou tentar kkkk

aproveitando gostaria de saber como posso ter o seguinte recurso. digamos que estou apresentando um valor no lcd. digamos q eu tenha um "float distancia 0.0"ok e ao chegar devido valor quero executar uma tarefa utilizando um simples If. ok . simples. minha questao é? como posso escrever, de modo q esse valor seja mudado a qq momento, atraves de um incremento ou decremento.. e melhor q fique guardado no pic ,mesmo desligando-o?

valeu

outra questao é sobre o uso do sensor hc-sr04, existe uma forma q posso fazer uma proteçao contra poeira e umidade? estou em duvida isola-lo pois como o nome diz a captaçao é feita por som(ultra)

Link para o comentário
Compartilhar em outros sites

terminei algumas adaptaçoes e fica agora essa duvida :

gostaria de saber como posso ter o seguinte recurso. digamos que estou apresentando um valor no lcd. digamos q eu tenha um "float distancia 0.0"ok e ao chegar devido valor quero executar uma tarefa utilizando um simples If. ok . simples. minha questao é? como posso escrever, de modo q esse valor seja mudado a qq momento, atraves de um incremento ou decremento.. e melhor q fique guardado no pic ,mesmo desligando-o?


#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000)
#byte PIR1=0x0C
#byte trisa=0x85
#byte porta=0x05
#byte trisb=0x86
#byte portb=0x06
#byte trisc=0x87
#byte portc=0x07

#define use_portb_lcd TRUE
#include <lcd.c>
#define BIT_TEST_ON output_high(PIN_C0)
#define BIT_TEST_OFF output_low(PIN_C0)
#define soma PIN_C5
#define subt PIN_C6

void main (void);
void pulso_test (void);
void ccp2_int(void);

int1 nuevopulso=0;
int16 TFB=0,TFS=0,TF=0;
float distancia=0.0;
int1 cambio=0;
int16 x=0;

void pulso_test(){
enable_interrupts(INT_CCP2);
BIT_TEST_ON;
delay_us(10);
BIT_TEST_OFF;

while(nuevopulso==0)
{}

if(nuevopulso==1){
TF=(TFB-TFS);
distancia=TF*1.0;
distancia = distancia/58; // cm
distancia=distancia/100;

nuevopulso=0;
}
disable_interrupts(INT_CCP2);
}

#int_ccp2

void ccp2_int(){
if(cambio==0){
TFS=CCP_2;
setup_ccp2(CCP_CAPTURE_FE);
cambio=1;
}
else {
TFB=CCP_2;
setup_ccp2(CCP_CAPTURE_RE);
cambio=0;

if(nuevopulso==0)
nuevopulso=1;
}
}

void main(){

trisb=0x00;
trisc=0b00000100;

setup_timer_1(T1_INTERNAL);
setup_ccp2(CCP_CAPTURE_RE);
disable_interrupts(INT_TIMER1);
disable_interrupts(INT_CCP2);
enable_interrupts (GLOBAL);

lcd_init();
printf(lcd_putc, "\f BARRAS \nAUTOMATICAS");
delay_ms(2000);
printf(lcd_putc,"\f com\n srf04 ");
delay_ms(2000);

while (true)
{
pulso_test();
printf(lcd_putc,"\fALTURA %5.2f \nconta: %1.2f",distancia,v);
delay_ms(200);

{
if (input(soma))
{
x++;
if (x == 9)
{
x = 0;
}
do{}
while (input(soma));
}

if (input(subt))
{
x--;
if (x == 0)
{
x = 9;
}
do{}
while (input(subt));
}


}}}
#include <16F876A.h>

Link para o comentário
Compartilhar em outros sites

Se eu entendi bem, você quer ter uma variá vel onde você possa incrementar como você está fazendo com a variável X do seu código e depois compará-la com a distância medida. Seria isso né.

Bom, incrementar e decrementar você já está fazendo. Apenas adicione mais um if no final comparando os valores. Mas sugiro que use os sinais de > ou < e nao o de == igual pois como está trabalhando com float. Pode ser difícil encontrar o valor exato que você deseja.

Falou

Link para o comentário
Compartilhar em outros sites

bom consegui simular no proteus dessa forma

pulso_test();

printf(lcd_putc,"\fREGULAR : %lu\nALTURA %5.2f "x,distancia);

delay_ms(200);

*** gostaria ainda saber se é possivel incrementar no codigo ao invés de unidade (1,2,3,4...) por partes de unidade (0.1 , 0.2 , 0.3 , 0.4 ....)?

valeu

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!