[p18f4520] Réaliser une acquisition moyennée via CAN
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

[p18f4520] Réaliser une acquisition moyennée via CAN



  1. #1
    invite8d0b7120

    [p18f4520] Réaliser une acquisition moyennée via CAN


    ------

    Bonjour à tous.

    J'explique mon projet, même si certains doivent certainement déjà le connaître

    Je dispose d'un matelas constitués de plusieurs coussins pilotés indépendamment par une pompe et des électrovannes. Des capteurs de flexion installés sur chaque coussin fournissent une information quand à leur déformation.

    Mon but est de réguler la pression (en gonflant/dégonflant le matelas) selon les informations que me fournissent ces capteurs.

    Ex: Si tension capteur < x, gonfler et si tension capteur > y, dégonfler... etc...

    J'utilise un p18f4520 associé à une carte picdem2+ (verte). Je réalise une conversion analogique numérique afin de piloter ce matériel via des ULN2803.

    Voici la partie CAN de mon programme, qui fonctionne:

    Code:
    		ADCON0 = 0b00000001;	// Select AN0 as An i/p
    		ADCON1 = 0b00001001;	// Vref = +vdd & GND AN0 to AN0 AN i/p
    		ADCON2 = 0b10101101;	// Right justify result, Set Acq Time & Conversion clock was 10101111
    		Delay100TCYx(20); 		// Delay 
    		ADCON0bits.GO = 1;		// Start acquisition
    		Delay100TCYx(20); 	// Delay 
    
    		while (ADCON0bits.GO == 1)	// Wait until conversion complete
    		{}
    
    	Sortie_Capteur1 = ADRES;
    
                 Delay10KTCYx(200);
    La carte fait donc une acquisition toutes les 2 secondes. Le problème c'est que j'ai programmé des seuils de tension (capteurs), et à cause des parasites, la tension varie autour du seuil lorsque je m'en approche... Résultat: le montage ne sait pas comment réagir.

    Ce que j'aimerais réaliser, c'est une acquisition de valeurs toutes les 5 secondes par exemple sur 5 minutes et ensuite stocker la moyenne de ces valeurs dans le registre ADRES, plutôt qu'il le fasse toutes les 2 secondes (via le delay).

    Ca permettra de limiter l'influence des parasites, ainsi que d'éviter de gonfler/dégonfler le matelas tout le temps.

    Je ne vois pas trop comment m'y prendre, j'ai essayé avec une boucle for mais je n'ai rien eu de convaincant (erreurs, warnings etc...).

    Je ne demande pas une réponse toute faite, mais juste de me guider sur le raisonnement à suivre .

    Merci bien.

    -----

  2. #2
    invite8d0b7120

    Re : [p18f4520] Réaliser une acquisition moyennée via CAN

    Petit up

  3. #3
    Qristoff
    Animateur Électronique

    Re : [p18f4520] Réaliser une acquisition moyennée via CAN

    Bonjour,
    tu peux déja essayer de faire une moyenne glissante ou une moyenne pondérée sur les valeurs d'acquisition, ce qui va créer un filtre.
    Tout existe, il suffit de le trouver...!

  4. #4
    invite8d0b7120

    Re : [p18f4520] Réaliser une acquisition moyennée via CAN

    Bonjour Qristoff, merci de ta réponse.

    Je songeais à faire quelque chose du genre, si je ne me trompe pas ça rejoint ce que tu dis:

    - Acquisition Valeur 1
    - Acquisition (Valeur 1 + Valeur 2)/ 2
    - Acquisition (Valeur 1 + Valeur 2 + Valeur 3)/ 3
    - etc...

    Je pense que pour ça, je dois utiliser une boucle for. Je pensais à quelque chose du genre:
    Code:
    	for(i=0;i<20;i++)
    		{
    		Sortie_Capteur1 = (1/i)*Sortie_Capteur1[0]+Sortie_Capteur1[i-1];
    		Sortie_Capteur1 = ADRES;
      		}
    j'ai l'erreur "operator requires a pointer and an integer as operands".

    Ma syntaxe est sûrement mauvaise, mais j'ai quelques difficultés en C..

  5. A voir en vidéo sur Futura
  6. #5
    Qristoff
    Animateur Électronique

    Re : [p18f4520] Réaliser une acquisition moyennée via CAN

    Je ne pourrais pas t'aider plus car je ne pratique pas le C, désolé !
    mais pour la moyenne, il suffit d'additionner la nouvelle valeur n à l'ancienne moyenne n-1 et de diviser par deux. Si tu veux prendre une autre pondération, il faut modifier les coefficients.
    Tout existe, il suffit de le trouver...!

  7. #6
    invite8d0b7120

    Re : [p18f4520] Réaliser une acquisition moyennée via CAN

    Merci, je vais essayer et voir ce que ça donne.

Discussions similaires

  1. Réaliser une self.
    Par invite15e51044 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/05/2010, 07h28
  2. Une bonne config pour acquisition images et vidéos
    Par invite29f30bce dans le forum Matériel - Hardware
    Réponses: 7
    Dernier message: 14/02/2009, 00h16
  3. Comment réaliser un circuit qui polarise une bobine par une sinusoïde?
    Par invite41375bde dans le forum Électronique
    Réponses: 5
    Dernier message: 22/05/2008, 14h41
  4. réaliser une solution
    Par invite0ad03f9f dans le forum Chimie
    Réponses: 2
    Dernier message: 28/12/2006, 13h58
  5. Réaliser une lévitation?
    Par inviteaaa97bcc dans le forum Physique
    Réponses: 22
    Dernier message: 22/07/2005, 19h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...