Bonjour a tous alors voici mon problème:
je suis élève en classe de terminale et je doit programmer un capteur hcsr04 pour qu'il mesure une certaine distance,lorsque le capteur aura capter cette distance le haut parleur devra dire "c'est bon".
j'ai programmer le haut parleur pour qu'il puisse prononcer les mots et sur un autre code j'ai programmer le capteur hcsr04 pour qu'il puisse mesurer la distance jusqu’à ce que l'ultrason rencontre un obstacle, comment je peut faire pour "relier" ces deux codes pour que a une certaine distance le haut parleur se déclenche automatiquement ?
merci d'avance
Tu pourrais mettre tes deux "bouts" de programmes, pour qu'on puisse t'aider ?
En réalité ça dépend de tes programmes, ça peut être très simple (un simple copier/coller) ou un peu plus complexe.
merci de ta réponse alors voici mes codes.
capteur hcsr04:
/*
- Code d'exemple pour un capteur à ultrasons HC-SR04.
*/
/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;
/** Fonction setup() */
void setup() {
/* Initialise le port série */
Serial.begin(115200);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
/** Fonction loop() */
void loop() {
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
/* 3. Calcul la distance à partir du temps mesuré */
float distance_mm = measure / 2.0 * SOUND_SPEED;
/* Affiche les résultats en mm, cm et m */
Serial.print(F("Distance: "));
Serial.print(distance_mm);
Serial.print(F("mm ("));
Serial.print(distance_mm / 10.0, 2);
Serial.print(F("cm, "));
Serial.print(distance_mm / 1000.0, 2);
Serial.println(F("m)"));
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
delay(500);
}
et le haut parleur
// Copyright 2011 Peter Knight
// This code is released under GPLv2 license.
// Jean-Luc Deladrière
// last modified by Technozone51 ( Grosse Christophe )
#include "talkietz.h"
// Define various ADC prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Talkie voice;
//Coller ci-dessous les définitions des chaines LPC des mots à prononcer
//veuillez
const uint8_t spW135224 [] PROGMEM ={0x00,0xB0,0xE6,0x2E,0x8D,0xD9,0xCC,0xCE,0x19,0xAA,0x74,0x63,0xF5,0x34,0xA7,0x4D,0x4A,0xDD,0x33,0x56,0x9D,0x26,0x73,0x0B,0x5F,0x6F,0x74,0x86,0xCA,0xD4,0xE4,0x6A,0xF1,0x19,0x06,0x27,0xD3,0xE9,0x99,0x6B,0x9A,0x98,0xD4,0x6B,0x46,0x8D,0x75,0x61,0xD2,0xCC,0x0E,0x35,0xB6,0xC3,0x49,0x2C,0x6A,0xD2,0x9A,0x37,0x23,0xF1,0xEC,0xD2,0x67,0x99,0x18,0x6D,0xA7,0x4A,0x9D,0xB5,0x23,0xAA,0xD9,0x36,0x7D,0xB6,0x86,0x39,0x77,0xDB,0xE4,0x39,0x3A,0x16,0xCB,0x9D,0x92,0xE7,0x58,0x9C,0xC5,0x7B,0x66,0xAE,0x73,0x50,0xD6,0xD8,0x09,0x3C,0xEE,0x45,0x49,0x6A,0xA6,0x10,0x3C};
//vider
const uint8_t spW135430 [] PROGMEM ={0xA3,0x0F,0x36,0xCC,0x2B,0x2B,0xAD,0xD5,0xBB,0xE4,0xE8,0xAA,0xB4,0x96,0x60,0xC3,0xD4,0x63,0xF1,0x59,0x92,0x72,0x57,0xD3,0xAC,0x6B,0xA9,0x5C,0xCD,0x54,0x95,0xAC,0xB6,0x2B,0x63,0x32,0x6F,0x73,0xEA,0x6E,0x54,0x28,0xA3,0xCD,0x29,0x07,0x25,0xCB,0xA9,0x96,0xA7,0x28,0x98,0xB3,0xAB,0x22,0x9E,0xA2,0x63,0xD6,0xA8,0x1E,0xBD,0x8A,0xC6,0x45,0xB8,0x66,0x74,0xAA,0x8D,0x90,0xA8,0x4E,0x33,0xB0,0xC6,0xA1,0x8D,0x55,0xAD,0xF2,0x9A,0x2A,0x67,0x89,0x8A,0x49,0x67,0x2A,0x5A,0xC4,0xA6,0x2E,0x9F,0xA5,0x0A,0xB6,0xAC,0x1A,0x75,0xD6,0x2A,0x44,0x63,0xFA,0xE4,0xD9,0x9A,0x56,0xD2,0xED,0x59,0xEB,0xA8,0x52,0xC4,0xA7,0x0B,0x8E,0xAB,0x32,0x96,0x9A,0x2A,0x55,0xAE,0x4A,0x44,0xF3,0xAA,0xD4,0x03};
//le
const uint8_t spW076448 [] PROGMEM ={0x30,0xC6,0xA0,0xC5,0x32,0xAF,0xF6,0x1A,0x83,0x61,0x8B,0xAE,0x25,0xA7,0xAF,0x54,0xD2,0xB3,0xDA,0x9C,0x3E,0x51,0x6B,0xAF,0xEC,0x78,0xFA,0x24,0x22,0x39,0xB2,0xD5,0x69,0xA2,0xF2,0xD4,0xB0,0x45,0xF0};
//bac
const uint8_t spW012156 [] PROGMEM ={0xA9,0x93,0x3C,0x33,0xCB,0x62,0xB9,0x09,0xFA,0x0A,0x4B,0x8F,0x74,0xEA,0x2C,0x2D,0x2C,0xBC,0xD6,0x19,0xAB,0xF2,0x74,0xAB,0x96,0x67,0xEB,0x4E,0x33,0xC2,0x17,0x9F,0xBD,0x3B,0x4F,0x0D,0x5F,0x74,0xF6,0xE1,0xC5,0xBD,0xA2,0xD2,0x39,0x9A,0x63,0xF1,0xCC,0x32,0xED,0x68,0x86,0xA9,0x2E,0x42,0xB1,0x23,0x11,0x66,0x4F,0x77,0x8C,0x8E,0x21,0x55,0x4C,0xD4,0x0E,0x3A,0xBA,0x10,0x11,0x55,0xCB,0x00,0x40,0x80,0x1B,0x45,0x15,0xB0,0x25,0x89,0x00,0x16,0x21,0x53,0xC0,0x51,0x24,0x0A,0x38,0x8A,0x58,0x00,0x5B,0x09,0x3F};
//marc
const uint8_t spW080198 [] PROGMEM ={0x6D,0xF2,0x24,0xFC,0xCA,0x23,0xB7,0x51,0x0B,0x9D,0xCE,0xB0,0x39,0x26,0x23,0x65,0xBB,0xDD,0xD2,0x9A,0x84,0xF1,0xAC,0x6C,0x3B,0x67,0xCD,0x36,0x1D,0x3D,0x2A,0x9F,0xBD,0x9A,0xA8,0x10,0x4B,0x78,0xF6,0xE2,0xAB,0x5C,0xCA,0xE6,0x39,0x72,0x3C,0x75,0xCB,0xD0,0xE7,0xCA,0x69,0xC3,0xAD,0x82,0x9C,0xBD,0xC4,0xC9,0x50,0xAF,0x70,0xF6,0xA1,0x2B,0xAF,0xA4,0x8B,0x03,0xAA,0x2E,0x33,0x40,0x11,0x29,0x06,0xE8,0xA6,0x59,0x01,0x35,0x88,0xC0,0x03};
void setup()
{
Serial.begin(9600);
// set up the ADC
ADCSRA &= ~PS_128; // remove bits set by Arduino library
// you can choose a prescaler from above.
// PS_16, PS_32, PS_64 or PS_128
ADCSRA |= PS_32; // ## was 16 but give problem with getmode unstable 32 seems ok
//Réglage des paramêtres de restitution vocale
voice.SetSpeed(900); //entre 0 et 1023 . augmenter la valeur pour augmenter la vitesse. Valeur normal=800
voice.SetPitch(1000); //entre 0 et 1023 : Pitch normal=700. Augmenter pour rendre la voix plus aigue
//voice.SetBending(120);//entre 0 et 1023 : 0=pas de distortion ; 512=ion maximale ; 1023=pas de distortion
//voice.BendingOn();
voice.BendingOff(); //Pas de distortion du son
}
void loop()
{
//Coller ci-dessous les appels à la procedure Say pour prononcer les mots
voice.say(spW135224);
voice.say(spW135430);
voice.say(spW076448);
voice.say(spW012156);
voice.say(spW080198);
voice.SetSpeed(900); voice.SetPitch(1000); voice.BendingOff();
delay(1000);
}
Bonjour,
Il faut mettre ton programme entre balises codes. Voir messages épinglées
quesque ca veut dire exatement ?
hello
voir ICI