controle servo avec LM35

:'(

je cale sur un prob....Mais je vais trouver peut être au bout de quatre ans. Je veux commander des angles sur un servomoteur en fonction des variations de valeurs d'un LM35.

http://www.national.com/mpf/LM/LM35.html

Prob... Je n'arrive pas à lire la plage des valeurs de la plus petite à la plus grande pour faire la conversion comme expliqué dans le livre physical computing .

Je manque de théorie

voici les données du LM35

Supply Min 4 Volt Quiescent Current_ 56 uA Temperature Min -40, -55, 0 deg C Temperature Max 100, 110, 150 deg C Sensor Gain 10 mV/Deg C

Donc est ce bien un problème de lecture et de conversion d'impulsion du LM35 pour piloter le servo...? Sinon je suis sur la piste d'utiliser deux LM35; une valeur de ref et l'autre pour les variations.

Donc voila je retourne potasser Physical computing , à dans quatre ans!!!

Sauf si....

LordH

salut,

d'apres la datasheet http://cache.national.com/ds/LM/LM35.pdf, le lm35 te sort une tension directement proportionnelle a la temperature, entre -1v, et +6V. donc il va te falloir faire attention car les entrée analogiques sont limitées à 5v si je ne me trompe.

Perso, je commencerais par verifier que j'arrive bien à lire les valeurs du capteur . deuzio, arriver à piloter un servo (par exemple par le clavier). troizio, relier les deux.

:) hello,

Merci de me répondre , je je te préviens suis débutant. :o

Donc les valeurs je les lis bien en baud. serial print 9600...

J'arrive à faire fonctionner mes servo avec le code page 35 du manuel arduino notebook. (c'est à cela que tu fais ref quand tu écris au clavier.)??

Mais en fait je ne sais pas si la lecture de mon LM35 suffiras a dire un truc du genre bah la y'as un degré C° de plus qu'il y'as 10 minutes donc bouge le servo 20 degrés.....C'est en fait ce que je recherche .

D'ou l'idée d'un autre LM35 en ref.

On m'as aussi conseiller un AOP. Pour avoir assez de Voltages pour mon servo venant de lecture du LM35.

C'est ce que je comprends et ce que je lis dans le book Physical computing; En fait il faut mettre à l'echelle la fonction la lecture .Et pour avoir la plage total de lecture du LM35

comme ici....

http://frederic.ducrocq.free.fr/Station_meteo/temperature/etalon_TP_prof.htm C'est chaud!

Je bidouille ...mais j'y arrive pas! Pour l'instant........

ben... pour la plage... le lm35 est linéaire, la sortie est directement proportionnelle a la température mesurée, donc perso, j'étalonnerais en prenant " mesure : une proche de 0, une vers 20°, et une autre vers 40° par exemple en plaçant une lampe près du capteur. A chaque fois, tu récupère la valeur de tension, et tu prends la température au même endroit avec un thermomètre en lequel tu as confiance.

théoriquement deux valeurs suffisent, mais la 3eme permet de vérifier... Une fois que tu as étalonné ton truc, tu sauras calculer la valeur de temperature en fonction de la tension lue.

Pour ce qui est des écarts, rien de plus simple, il te suffit de mémoriser dans l'arduino la valeur lue ! 10 minutes plus tard, tu lis à nouveau ton entrée analogique, et tu la compare avec la valeur lue le coup d'avant. Si ça a changé, hop, tu bouges le servo.

ou alors j'ai loupé un truc... a moins... que tu ne veuilles éteindre l'arduino entre deux mesures.. la ca devient plus coton car il te faudra écrire la valeur en flash pour la garder mesure quand la carte est hors tension.

Merci skall;

J'ai acheter un thermomètre electronique avec sonde :).

Mais avant de faire ce que tu me conseille. J'ai une question stupide! La valeur lu doit être en bauds ce que je faisais jusqu'a maintenant ou en volts (voltmètre) ???

Je t'avais prévenu , je suis débutant!

La sortie du LM35 est en volt (10mV/°C) donc si tu as en sortie de la sonde 100mV, la température est de 10°C. Les bauds c'est pour la vitesse du liaison série ;)

Si tu veux il y a une note d'application :

http://www.national.com/an/AN/AN-460.pdf

Ce que tu vas lire par l'intermédiaire de l'arduino sera une valeur numérique entre 0 et 1023 pour un pin analogique :

http://www.arduino.cc/en/Reference/AnalogRead

Il faut que tu fasses une "formule" pour convertir cette valeur en température, ou en angle à donner à ton servo

Merci, pour toutes ses infos!!

j'ai trouver ceci http://boundingbox.homelinux.net/blog/?p=39

serait- ce l'operation à faire?

Pour ta sonde de température, c'est ça...

      val = analogRead(potPin);    // read the value from the sensor
      temperature = (5.0 * val * 100.0)/1024.0;

dans cette parte de code il converti la mesure analogique en °C.

Reste plus qu'a faire le reste pour commander ton servo par rapport éà la température

J'ai changé le delay à 10000

Bah, en fait je trouve que je n'ai pas de valeurs cohérentes!J'ai un thermo electronique à coté ....

De plus quand je chauffe avec sechoir les valeurs baissent. Pis y'a toujour un 0 ou deuX 0 qui se placent entre les valeurs.....D'ailleurs pour piloter mes servos c'est ce qui me gêne le plus.

Pourtant j'applique le même schéma.Quoique j'ai des doutes sur la resistances, Est ce bien 100KOHMS? J'ai l'impression que ça viens de la???

Tu devrais essayer un delay BCP plus petit genre 10ms pour lire plus de valeurs, ensuite tu peux te faire un petit tableau et de belles courbes pour analyser plus finement ce qui se passe ;)

Il me semble que tu connais la manip pour faire faire un tableau sous excell ? :)

Parce que je sais plus :-?!

Tu peux faire un simple copier coller de ce que tu lis sur le moniteur de port serie dans un tableau excell.

Cette ‘manip’ a ses limites mais tu pourras déjà nous montrer ce que tu obtiens.