Bonjour,
J'aurai besoin d'un peu d'aide , voila je viens d'acheter un capteur telemetrique infrarouge sharp gp2d120. je l'ai connecté a un cubloc 280 sur une entré analogique.
Mon probléme ces que je n'arrive pas a trouvé de formule pour pouvoir convertir en cm la valeur trouvé par le capteur.
Si y'a une ame charitable pour m'eclairé un peu
Merci
Aide pour calcul distance gp2d120
Débuté par tiiteuf, nov. 10 2007 09:10
3 réponses à ce sujet
#2
Posté 11 novembre 2007 - 10:01
Tu as un datasheet ici qui peut peut être aider ? : http://www.robotshop.ca/PDF/rbsha01_manual.pdf
#3
Posté 11 novembre 2007 - 11:00
Tu as un datasheet ici qui peut peut être aider ? : http://www.robotshop.ca/PDF/rbsha01_manual.pdf
J'ai le datasheet, il me donne cette courbe
Mon capteur est relié sur une entré A/N 10 bits ce qui me donne une valeur allant de 80 à 600
Ce que je n'arrive pas a trouvé ces une formule qui me donne la distance a partir de la valeur que je lit sur mon entré A/N
#4
Posté 13 novembre 2007 - 01:48
Salut,
Il faut que tu crées une table de conversion.
Exemple avec une conversion 8 bits :
// rangeTable is a 128-entry table that converts the 8-bit A/D value
// to the corresponding range in cm.
//==============================================================
const unsigned char TableIR[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 80, 76, 72, 68, 65, 62, 59, 57, 54, 52, 50, 48, 47,
45, 44, 42, 41, 40, 38, 37, 36, 35, 34, 33, 33, 32, 31, 30, 30,
29, 28, 28, 27, 26, 26, 25, 25, 24, 24, 23, 23, 23, 22, 22, 21,
21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 18, 17, 17, 17, 17,
16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14,
13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10};
...
ADCON1=0;
ADCON0=0x81; // IR_av_D
DelayUs(50);
ADGO=1;
while(ADGO) continue;
Res_IR_av_D1=ADRESH;
distance=TableIR[Res_IR_av_D1];
Il faut que tu crées une table de conversion.
Exemple avec une conversion 8 bits :
// rangeTable is a 128-entry table that converts the 8-bit A/D value
// to the corresponding range in cm.
//==============================================================
const unsigned char TableIR[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 80, 76, 72, 68, 65, 62, 59, 57, 54, 52, 50, 48, 47,
45, 44, 42, 41, 40, 38, 37, 36, 35, 34, 33, 33, 32, 31, 30, 30,
29, 28, 28, 27, 26, 26, 25, 25, 24, 24, 23, 23, 23, 22, 22, 21,
21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 18, 17, 17, 17, 17,
16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14,
13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10};
...
ADCON1=0;
ADCON0=0x81; // IR_av_D
DelayUs(50);
ADGO=1;
while(ADGO) continue;
Res_IR_av_D1=ADRESH;
distance=TableIR[Res_IR_av_D1];
Répondre à ce sujet
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users