Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
robotics:electronics:utiliser_un_capteur_ultrason_srf04 [2012/08/29 18:31] ldo [Chronogramme] |
robotics:electronics:utiliser_un_capteur_ultrason_srf04 [2012/09/20 10:52] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Présentation du capteur ultrason SRF04 ====== | ====== Présentation du capteur ultrason SRF04 ====== | ||
- | Le capteur SRF04 est un capteur qui utilise les ultrasons pour détecter les obstacles. Il est relativement compact (taille équivalente à un SHARP IR). Il permet de détecter les obstacles de 3 cm à 3 m. | + | Le capteur [[http://www.robot-electronics.co.uk/htm/srf04tech.htm|SRF04]] est un capteur qui utilise les ultrasons pour détecter les obstacles. Il est relativement compact (taille équivalente à un SHARP IR). Il permet de détecter les obstacles de 3 cm à 3 m. |
Il est très simple d'utilisation : il est alimenté en 5 V et possède une entrée Trigger et une sortie Echo . | Il est très simple d'utilisation : il est alimenté en 5 V et possède une entrée Trigger et une sortie Echo . | ||
Ligne 26: | Ligne 26: | ||
{{:robotics:electronics:algorithme.jpg?200|}} | {{:robotics:electronics:algorithme.jpg?200|}} | ||
- | |||
- | D'après le chronogramme de la datasheet, l'impulsion d'entrée Trigger doit durer 10 µs minimum puis le SRF04 génère 8 impulsions ultrason à 40 kHz. Ensuite le signal de sortie Echo peut durer au maximum 36ms (si aucun obstacle n'est détecté) et il faut attendre 10 ms après la fin du signal Echo pour générer à nouveau une impulsion d'entrée Trigger. | ||
==== Timer 1 ==== | ==== Timer 1 ==== | ||
Ligne 59: | Ligne 57: | ||
==== Chronogramme ==== | ==== Chronogramme ==== | ||
+ | D'après le chronogramme de la datasheet, l'impulsion d'entrée Trigger doit durer 10 µs minimum puis le SRF04 génère 8 impulsions ultrason à 40 kHz. Ensuite le signal de sortie Echo peut durer au maximum 36ms (si aucun obstacle n'est détecté) et il faut attendre 10 ms après la fin du signal Echo pour générer à nouveau une impulsion d'entrée Trigger. | ||
{{:robotics:electronics:chronogramme.jpg?400|}} | {{:robotics:electronics:chronogramme.jpg?400|}} | ||
+ | - interruption OVERFLOW. On met TCNT1 = 0xFFFC (pour compter 3 * 4µs = 12 µs) | ||
+ | - interruption OVERFLOW. On met TCNT1 = 0. | ||
+ | - interruption INPUT CAPTURE. On sauvegarde TCNT1. | ||
+ | - interruption INPUT CAPTURE. On sauvegarde TCNT1, on convertit en distance ((finEcho-debutEcho) /58) et on met TCNT1 = 63035 (pour compter 2500 * 4 µs = 10 ms). | ||
- | 1 : interruption OVERFLOW. On met TCNT1 = 0xFFFC (pour compter 3 * 4µs = 12 µs) | + | ===== Code ===== |
- | 2 : interruption OVERFLOW. On met TCNT1 = 0. | + | |
- | 3 : interruption INPUT CAPTURE. On sauvegarde TCNT1. | + | |
- | 4 : interruption INPUT CAPTURE. On sauvegarde TCNT1, on convertit en distance ((finEcho-debutEcho) /58) et on met TCNT1 = 63035 (pour compter 2500 * 4 µs = 10 ms). | + | |
<code c> | <code c> | ||