Go Down

Topic: capteur infrarouge sharp utilisation (Read 11769 times) previous topic - next topic

vike229

Code: [Select]
#include <LiquidCrystal.h> // librairie

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int valeur=0;
int capteur = A5;
int moyenne;
int valeurCapteur;

void setup() {
  lcd.begin(16, 2); // configurer le lcd
}

void loop () {
for(int i=1 ; i<=10 ;i++){
  valeurCapteur = analogRead(capteur);
  valeur = valeurCapteur + valeur;
  delay(2000);
}
moyenne = valeur / 10;
lcd.print(moyenne);
}

comme ça ?

fdufnews

non comme ça:
Code: [Select]
void loop () {
valeur = 0;
for(int i=1 ; i<=10 ;i++){
  valeurCapteur = analogRead(capteur);
  valeur = valeurCapteur + valeur;
  delay(2000);
}
moyenne = valeur / 10;
lcd.print(moyenne);
}

Tu peux aussi simplifier l'écriture de ta boucle comme ça:
Code: [Select]
void loop () {
valeur = 0;
for(int i=1 ; i<=10 ;i++){
   valeur += analogRead(capteur);
  delay(2000);
}
moyenne = valeur / 10;
lcd.print(moyenne);
}

vike229


Artouste


c'est vrai, c'est mieux merci  :)

...
et tu peux peut etre aussi reduire le delai entre acquisitions
puisque tu a decouvert  que celui-ci  est de au pire de 38.3 + 9.6 ms , arrondi par confort à 50 ms
meme en doublant à 100 ms, ça prendra "seulement" une seconde au lieu de 20 secondes dans ton code  8)

2000 * 10

vike229

oui le temps est précieux ^^
Merci

vike229

Je pense faire comme tu as dit , vendredi nous allons trouver le nombre (0-1023) pour chaque cm.
Mais après on fait comment ? notre prof avait parlé de tableau mais j'ai pas compris
On rentre nos valeurs dans une fonction puis on regarde quel est la valeur la plus proche de la moyenne ?

Christian_R

Il faut lire la datasheet (citée plus haut http://www.farnell.com/datasheets/1657845.pdf).
page 5.

La réponse du capteur Sharp n'est pas linéaire. Sa tension de sortie décroît de façon hyperbolique selon la distance de mesure.

La courbe OutputVoltage = f(Distance) peut être assez bien linéarisée en transformant les distances en leurs inverses : 1 / Distance.

Un tableur comme Microsoft Excel dispose de fonction d'ajustement de courbes.
Tu rentres tes mesures dans un tableau à 3 colonnes : Output voltage, Distance, 1/ Distance
Tu sélectionne tes 2 colonnes de données y=f(x),
Menu : Insertion / Graphique / Nuages de points / Suivant / Terminer.
Puis menu Graphique /  Ajuster une courbe de tendance, et dans les options tu coches "Afficher l'équation sur le graphique".

Cocher aussi "Afficher le coefficient de détermination R² sur le graphique".
Le R² (qui doit être proche de 1) permet de s'assurer d'un bon ajustement.
Christian

vike229

Ok  :) merci de l'info ,et merci à tous  :smiley-mr-green: !!!!!
je vous montrerai  la courbe et le projet une fois tout terminé  !

Artouste

#38
Feb 09, 2014, 08:31 pm Last Edit: Feb 09, 2014, 08:38 pm by Artouste Reason: 1

Ok  :) merci de l'info ,et merci à tous  :smiley-mr-green: !!!!!
je vous montrerai  la courbe et le projet une fois tout terminé  !

Bonsoir
je suppose que tu n'est pas seul sur "le coup" ?
si vraiment tu/vous n'avez que 2 heures vendredi, il faut preparer avant une "manip collegiale"

consistant dés le debut "du cours" à :
- faire une "campagne de calibration" = lister les valeurs renvoyées par le capteur pour des pas de 1 ou 2 cm sur paillasse.
- rechercher l'equation selon la methode exposée par Christianr ET... l'integrer dans le programme arduino
- Verifier/valider que ça marche en situation reelle (citerne)

tout ça en ...  deux heures

vike229

oui, on étudie tout ça ! pour le pas 1cm c'est pas mal , et a 4 cela devrait passer. Il faut juste un peu d'organisation et de précision .
Merci   :)

Go Up