J'utrilise un capteur a microwave pour detecter un mouvement. Ce détecteur ne sert qu'a scruter une valeur analogique dans la pratique.
En début de programme j'initialise avec une valeur de référence. qui est une moyenne sur 100 valeurs.
Ensuite mon idée est de surveiller les valeurs qui arrivent pour détecter un mouvement. Mais comment bien scrutezr en permanence les valeurs ?
Je suis partis dans l'idée, de scruter toutes les 5ms si une valeur est en dessous ou au dessus de la référence avec un petit threshold pour pouvoir a terme régler la sensibilité.
Si sur une salve de 10 mesures j'en mesure 3 hors cadre, alors je détecte un mouvement.
Le probleme si je passe par une moyenne c'est uqe la moyenne risque d'étre faussée si je par ueemple une valeur au dessus et une autre en dessous.
Disons que j'a iune référence à 2.5V, sdi je mesure 2V puis 3V, je me retrouve avec une moyenne de 2.5V et donc pas de detection.
D'ou mon idée de compteur le nombre de mesure hos cadre!
Qu'en pensez vous ? je ne doute pas qu'il y a beaucoup mieux pour rendre cela plus fiable.
Code : Tout sélectionner
while (1){
//Detection();
cnt = 0;
for ( sampler = 0; sampler < 10 ; sampler++ )
{
single = ADC_Read(2);
delay_ms(5);
if ( (single < reference-10) || (single > reference+10))
{
cnt++;
}
}
if ( cnt > 3)
{
UART1_Write_Text("Mouvement");
UART1_Write(10);
UART1_Write(13);
}
}
} 
