Go Down

Topic: controle servo avec LM35 (Read 1 time) previous topic - next topic

lord H

May 08, 2008, 11:49 pm Last Edit: May 09, 2008, 08:05 am by said_halbane Reason: 1
:'(


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

Skall

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.

lord H

#2
May 09, 2008, 10:25 am Last Edit: May 09, 2008, 11:07 am by said_halbane Reason: 1
:)
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........






Skall

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.




lord H

#4
May 09, 2008, 08:28 pm Last Edit: May 09, 2008, 08:30 pm by said_halbane Reason: 1
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!

Vincent

#5
May 09, 2008, 10:07 pm Last Edit: May 09, 2008, 10:09 pm by Vincent Reason: 1
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

Jean-François

#6
May 09, 2008, 10:09 pm Last Edit: May 09, 2008, 10:12 pm by jfs Reason: 1
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
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

lord H

#7
May 10, 2008, 11:23 am Last Edit: May 10, 2008, 12:00 pm by said_halbane Reason: 1
Merci, pour toutes ses infos!!


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

serait- ce l'operation à faire?

Jean-François

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

Code: [Select]
     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
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

lord H

#9
May 14, 2008, 09:34 pm Last Edit: May 15, 2008, 07:16 am by said_halbane Reason: 1
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???


okdko

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  ;)

lord H

#11
May 15, 2008, 07:58 pm Last Edit: May 15, 2008, 07:58 pm by said_halbane Reason: 1
Il me semble que tu connais la manip pour faire faire un tableau sous excell ? :)

Parce que je sais plus :-?!

okdko

#12
May 16, 2008, 12:18 am Last Edit: May 16, 2008, 12:20 am by okdko Reason: 1
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.

Go Up