Mesure de période

Pour expliquer certains fonctionnements, principes et fondements.
fraisse
Level 5
Level 5
 
Messages: 128

Messagepar fraisse » Mar Oct 15, 2013 5:55 pm

Image

Je veux mesurer la période d'un pendule . Il est équipé d'une palette qui vient renvoyer la lumière sur le photo capteur quand il est en bout de course .
Mon programme :
-variable cpy mise à 0
-boucle commandée par un temps (300 s)
-comparaison réflexion , période sombre .
-incrémentation de cpy puis délai de 0.5 s autrement la boucle est parcourue plusieurs fois avant que le pendule se retire.
-affichage.

Mes questions :
-y a t'il un détecteur de front pour éviter d'avoir un délai?
-je suppose que l'on peut faire beaucoup mieux . Comment?
-peut on mesurer la vitesse d’exécution d'une boucle?

Avatar de l’utilisateur
Plastik
Level 6
Level 6
 
Messages: 330
Âge: 41 ans

Messagepar Plastik » Mar Oct 15, 2013 8:23 pm

Salut,
Pour detecter le front montant, j'ai peut être une idée :

Tu rajoutes une variable booléene "vb" et tu fait le programe suivant :

-variable cpy mise à 0
-variable vb mise à 0
-boucle commandée par un temps (300 s)
-comparaison réflexion , période sombre .
........si réflexion :
................si vb = 0 :
........................vb = 1
........................cpy = cpy +1
................si vb = 1 :
........................rien à faire
........si sombre :
................vb = 0
-affichage.

En gros, tu te sers de la variable vb pour savoir si dans la précédente itération le pendule était déja en reflexion, si c'est le cas tu ne comptes pas cette itération. Et dès que ca passe en zone sombre tu remet vb à 0...

A tester,
Dis moi si ca marche

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 51 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Mar Oct 15, 2013 11:38 pm

Salut,
Faudrait savoir en quoi tu programme ?

A priori il faut attendre un dépassement de seuil du capteur, déclencher un compteur de temps, attendre que le capteur passe sous le seuil, attendre qu'il revienne sur le seuil, mémoriser la valeur du compteur et l'afficher.

La fonction d'attente d'un capteur est disponible en NXT-G et peut-être faite dans les autres langages avec une routine du style while (lecture capteur<seuil) ;

fraisse
Level 5
Level 5
 
Messages: 128

Messagepar fraisse » Mer Oct 16, 2013 10:54 am

Merci Plastik ça marche au prix d'une plus grande complexité du programme . Mon pendule a une période
de1.4 s , donc le délai que j'ai mis au pif est de 0.7 s pour être sur que le pendule soit à l'autre bout de la période pour relancer la boucle de comptage .Ça marche , mais ça fait pifomètre, ta solution est plus satisfaisante
J’aimerais envoyer des images de mes essais de programme NXT mais je ne sais pas le faire

fraisse
Level 5
Level 5
 
Messages: 128

Messagepar fraisse » Jeu Oct 17, 2013 9:27 pm

Peut on faire du chronométrage avec le bloc minuterie?


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 13 invités