Bonjour;
J'essaie de résoudre le problème ci-contre:
Réalisez un système mesurant une distance par ultrasons, et tenant compte de la température pour la vitesse de propagation des ultrasons (autres hypothèses : altitude 0 et air sec). La distance et la température seront affichés au moniteur série.
Attention : pour plus de précision vous prendrez deux capteurs de température et vous ferez leur moyenne. Si vous détecter un problème dans les capteurs (plus de 0.5°C d'écart), allumez une LED rouge.
Matériel : HC-SR04 + TMP36 + 74HC151 + Arduino
Pour résoudre le problème , Je propose l'algorithme suivant :
int Value1;
int Value2;
int S0=1;
int S1=2;
double temps;//Or time
double distance;//Distance
double vitesse=0.034;//Speed
void setup()
{
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
digitalWrite(S1,LOW);
digitalWrite(S0, LOW);
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
Serial.begin(9600);
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(S1,LOW);
digitalWrite(S0, LOW);
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
delay(15);
digitalWrite(7, LOW);
digitalWrite(S0, HIGH);
digitalWrite(S1,LOW);
Serial.print("Capteur");
pinMode(7, INPUT);
temps=pulseIn(7, INPUT);
distance=(float)((vitesse*temps)/);
Serial.println("La distance est:")//The distance is
Serial.print(distance);
digitalWrite(7, LOW);
digitalWrite(S0, LOW);
digitalWrite(S1,HIGH);
pinMode(7, INPUT);
Value1=analogRead(7);
digitalWrite(S1,HIGH);
digitalWrite(S0,HIGH);
pinMode(7, INPUT);
Value2=analogRead(7);
Serial.println("Premier capteur");
Serial.print(Value1);
Serial.println("Second capteur");
Serial.print(Value2);
if ( abs( Value1- Value2)<0.5)// Connected to led for blinking it
{
pinMode(2, OUTPUT);
digitalWrite(2,HIGH);
}
Pouvez vous me dire si il est correct s'il vous plait ?
if ( abs( Value1- Value2)<0.5)// Connected to led for blinking it
Pouvez vous me dire si il est correct s'il vous plait ?
Le mieux c'est de tester, c'est évident, mais petite remarque, ton capteur ne renvoie probablement pas une température en degrés C, mais un indice, en fait c'est juste une tension renvoyée par ton capteur.
Bonjour;
J'essaie de résoudre le problème ci-contre:
Réalisez un système affichant sur le moniteur série les températures de 4 capteurs de température multiplexés dont la valeur sera lue sur le pin A2.
Attention : Si vous détecter un écart de plus de 0.5°C entre 2 capteurs, allumez une LED rouge.
Matériel : multiplexer 74hc151 , Carte Arduino et un TMP36 ;
Étant donné que je ne possède pas le matériel pour faire le test à mon domicile, je sollicite votre aide afin de valider mon codage arduino .
Consigne :
Il faut obligatoirement faire du multiplexage .
Le voici :
Si tu as le droit d'utiliser des bibliothèques, profites-en !
Il existe une bibli qui permet d'utiliser plusieurs HC-SR04 de manière simple, cherche sur internet tu la trouveras facilement. De même pour tes capteurs de température
Avant de parler codage je pense qu'il faut parler choix du matériel.
Tu indiques :
4 capteurs TMP36
un multiplexeur 74HC151
Si le 74HC151 est prévu pour multiplexer les 4 TMP36 cela me surprendrait que cela fonctionne.
Le capteur TMP36 est un capteur analogique qui délivre 10 mV par degré.
Le multiplexeur 74HC151 est un multiplexeur numérique qui n'accepte que des niveaux à la norme 74HC.
Il faudrait un multiplexeur analogique.
Attention : Si vous détecter un écart de plus de 0.5°C entre 2 capteurs, allumez une LED rouge.
Quelques conseils pratiques.
Une différence de 0,5°C c'est seulement 5mV.
5mV c'est vite gagné ou perdu en fonction du câblage --> il faut impérativement utiliser un fil de masse par TMP36 et n'y raccorder aucun autre composant.
Bien évidement il faut lire la datasheet entièrement : selon les lots de fabrication, la valeur absolue peut varier de +/- 2 °C.
Une mesure de la dispersion entre les 4 capteurs sera à prévoir.
Tu as déja un Topic (projet classe 1) ouvert concernant quasiment la même problématique, cela serait plus cohérent de poser les questions au même endroit.