Page 1 sur 1

Capteurs ultrasoniques ?

Message non luPosté: Lun 18 Juin 2012 20:37
de SaW3r
Bonsoir, je viens vers vous car j'ai récemment retrouvé deux petits composants que j'avais surement du acheter il y a longtemps et je n'ai donc plus la documentation. Je crois savoir que ce sont des transducteurs à ultrasons donc pour détecter une présence ou mesurer une distance avec un objet par exemple mais je n'ai aucune idée de comment m'en servir (avec une carte Arduino par exemple), pourriez-vous me venir en aide ?

Voici quelques photos de ceux-ci :
Image
Image
Image

EDIT : Pour le moment j'ai trouvé ce lien qui a l'air de bien mettre en oeuvre ce couple d'émetteur - récepteur ultrasonique ! Et voici le schéma de câblage :
Image

Ici, c'est un PIC qui commande le tout mais il peut très bien être remplacé par un ATmega ! Il faut simplement créer un signal de 40kHz via une sortie PWM de l'ATmega et la je coince un peu, je ne sais pas vraiment comment m'y prendre. Je vous tien au courant en tout cas !

Re: Capteurs ultrasoniques ?

Message non luPosté: Mar 19 Juin 2012 10:59
de Lionel
Bonjour,

Concernant des réglages fins de la PWM sur arduino, je vous conseille la lecture de cet excellent article
http://www.arcfn.com/2009/07/secrets-of ... o-pwm.html

vous trouverez certainement votre bonheur avec ça.

Re: Capteurs ultrasoniques ?

Message non luPosté: Mar 19 Juin 2012 13:00
de SaW3r
Bonjour ! Merci beaucoup pour ce lien, j'ai trouvé finalement ce que je vais utiliser pour recréer une fréquence de 40kHz. Je vais repartir de la librairie "IRremote" qui inclus une fonction permettant de créer une fréquence voulue, voici la fonction :
Code: Tout sélectionner
void IRsend::enableIROut(int khz) {
  // Enables IR output.  The khz value controls the modulation frequency in kilohertz.
  // The IR output will be on pin 3 (OC2B).
  // This routine is designed for 36-40KHz; if you use it for other values, it's up to you
  // to make sure it gives reasonable results.  (Watch out for overflow / underflow / rounding.)
  // TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B
  // controlling the duty cycle.
  // There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A)
  // To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin.
  // A few hours staring at the ATmega documentation and this will all make sense.
  // See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details.

 
  // Disable the Timer2 Interrupt (which is used for receiving IR)
  TIMSK2 &= ~_BV(TOIE2); //Timer2 Overflow Interrupt
 
  pinMode(3, OUTPUT);
  digitalWrite(3, LOW); // When not sending PWM, we want it low
 
  // COM2A = 00: disconnect OC2A
  // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted
  // WGM2 = 101: phase-correct PWM with OCRA as top
  // CS2 = 000: no prescaling
  TCCR2A = _BV(WGM20);
  TCCR2B = _BV(WGM22) | _BV(CS20);

  // The top value for the timer.  The modulation frequency will be SYSCLOCK / 2 / OCR2A.
  OCR2A = SYSCLOCK / 2 / khz / 1000;
  OCR2B = OCR2A / 3; // 33% duty cycle
}


Je vais réaliser le câblage ci dessus et essayer tout ça, ça me fera un couple d'émetteur - récepteur ultrasonique pas chère si ça fonctionne :)