collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: pic18f4550 hc-sr04  (Lida 9028 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
pic18f4550 hc-sr04
« em: 12 de Abril de 2013, 00:02 »
Boas,

sabem se é possível utilizar o sensor HC-SR04  com pic 18F4550?

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: pic18f4550 hc-sr04
« Responder #1 em: 12 de Abril de 2013, 01:03 »
o SR04 não tem nenhum protocolo especial, dás um impulso e esperas a resposta.

Em resumo qq microcontrolador que tenha GPIO's pode ser utilizado.
Dronetech BlogThe Scientist and the Geek

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #2 em: 12 de Abril de 2013, 11:54 »
Eu sou novato em PIC, estou a começar apreender agora.
Precisava de conseguir fazer isto para um trabalho escolar, tem conhecimento de algum tutorial em que possa aprender como posso fazer esta comunicação com o sensor e PIC18F4550?


Obrigado desde já, por me tentar ajudar e responder, um grande obrigado.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: pic18f4550 hc-sr04
« Responder #3 em: 12 de Abril de 2013, 12:04 »
apesar de nao ser o pic exacto aqui fica um exemplo com outro pic.


Na descrição tem tudo o que percisas, codigo e esquema.

Não conheço o pic, mas deve ser +/- a mesma coisa.

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #4 em: 18 de Abril de 2013, 09:45 »
Boas , eu estou a usar MPLABX, conhece algum tutorial com base neste programa.
Não estou a trabalhar com MikroC que julgo ser pago.


Cumps.

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: pic18f4550 hc-sr04
« Responder #5 em: 23 de Abril de 2013, 22:05 »
Boas , eu estou a usar MPLABX, conhece algum tutorial com base neste programa.
Não estou a trabalhar com MikroC que julgo ser pago.


Cumps.

se tiveres alguma dúvida com o mplab X manda aí. Costumo usar, apesar de estar expert na matéria, posso ajudar!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #6 em: 02 de Maio de 2013, 13:35 »
Em MAPLABx, com compilador C18
Estou a tentar aprender a fazer a leitura da distancia com o uso do sensor HC-SR04 e PIC18F4550.


Sei que devo trabalhar com o modulo do AD.
Conhece algum tutorial onde possa apreender ?

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: pic18f4550 hc-sr04
« Responder #7 em: 02 de Maio de 2013, 14:21 »
Antes de mais, vê bem o sensor que estás a usar. Para usares o SR04 necessitas medir tempo, certo? Então para que queres o módulo AD? Basta teres uma interrupção num pin que quando muda de estado (passa de 0  para 1 ou de 1 para 0), medes o tempo, certo?

Este é o primeiro passo. Verifica bem isso.
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #8 em: 02 de Maio de 2013, 14:56 »
Antes de mais, vê bem o sensor que estás a usar. Para usares o SR04 necessitas medir tempo, certo? Então para que queres o módulo AD? Basta teres uma interrupção num pin que quando muda de estado (passa de 0  para 1 ou de 1 para 0), medes o tempo, certo?

Este é o primeiro passo. Verifica bem isso.
Exatamente eu vou medir o tempo, sendo que pelo que percebi ele mede o tempo de "ida e volta" portanto vou ter de dividir este tempo por 2 e de seguida fazer uma conversão para distância.

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: pic18f4550 hc-sr04
« Responder #9 em: 02 de Maio de 2013, 15:26 »
Já chegámos a uma conclusão: tens de medir tempo.

Agora... porque falaste no módulo AD? Conheces os módulos que um PIC tem? podes sempre consultar o site da microchip e ver as especificações do teu PIC. Podes usar interrupções em entradas digitais, que é o que tens de fazer..
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #10 em: 02 de Maio de 2013, 15:31 »
Já chegámos a uma conclusão: tens de medir tempo.

Agora... porque falaste no módulo AD? Conheces os módulos que um PIC tem? podes sempre consultar o site da microchip e ver as especificações do teu PIC. Podes usar interrupções em entradas digitais, que é o que tens de fazer..

Julguei que para leitura da distância seria necessário uma entrada analógica, e daí pensar no AD.
Mas posso coloco-las e devo, como digitais.

Portanto, tenho de fazer uma interrupção em que meço o tempo que o echo passa de 0 a 1, e dps passa de 1 a 0.

Dentro disto o que devo fazer?
-configuro o TIMER0
-preciso de saber o tempo que demorou a chegar ao objecto e a voltar ( parte que nao estou a perceber como faço)
-depois fazer a conversão do tempo para distancia

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: pic18f4550 hc-sr04
« Responder #11 em: 02 de Maio de 2013, 20:21 »
Olhando para o datasheet, o funcionamento é simples: envias um trigger de 10us, e depois esperas o eco; o eco é um sinal que tipicamente está a 0 e tens de medir o tempo que está a 1, pois é esse tempo que irá ser proporcional à distância.

Portanto, tens de ter o sinal do eco num pin com interrupção, sendo que inicias um timer quando essa interrupção é ativa, estando configurada para o flanco ascendente. (aqui, tens de configurar a interrupção para o flanco descendente, para teres interrupção quando o sinal voltar a 0). Assim, quando acontecer outra vez a interrupção (no flanco descendente agora) vês o tempo que passou e tens a distância ;)
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline takersdown

  • Mini Robot
  • *
  • Mensagens: 35
Re: pic18f4550 hc-sr04
« Responder #12 em: 03 de Maio de 2013, 11:39 »
Tenho de verificar quando o echo vai a 1 e quando vai a 0.
Tenho de usar uma interrupção para o flanco ascendente e outra para o descendente?
 ( portanto duas interrupt ? )


Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.189
Re: pic18f4550 hc-sr04
« Responder #13 em: 03 de Maio de 2013, 13:49 »
Sim, uma interrupção para o contador interno do micro e outro externo para detectar a passagem para 0 do sensor.
O código é simples:
- aplicar 1 ao "trigger" por 10uS
- iniciar o contador interno - Int1 (o sensor envia um sinal a 40KHz)
- esperar pela passagem do "echo" para 0 - Int2
- ler o contador do Int1 e realizar os cálculos para saber a distancia percorrida.

O @beirão explicou bem o processo