• Aucun résultat trouvé

Exemples d’applications

Dans le document Systèmes embarqués (Page 21-48)

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

22 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

23 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

Conversion A/N

Convertit une tension en grandeur numérique CAN

24 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

Conversion A/N

Convertit une tension en grandeur numérique CAN

25 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Acquisition donnée capteur Stockage donnée / angle Modification angle servomoteur

26 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ? OUI NON

27 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max OUI

NON

28 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

29 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

PIC16F1503

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

30 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

31 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

Initialisation des E/S

BP = 1 ?

Initialisation du CAN Initialisation du PWM

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

32 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Capteur sur AN1 / RA1 (E) Bouton poussoir sur RA2 (E) Servomoteur sur PWM1 /

RC5 (S) Initialisation des E/S

BP = 1 ?

Initialisation du CAN Initialisation du PWM

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

void initES(){

TRISAbits.TRISA1 = 1;

TRISAbits.TRISA2 = 1;

TRISCbits.TRISC5 = 0;

ANSELA = 0;

ANSELC = 0;

ANSELAbits.ANSEL1 = 1;

return;

}

void initCAN(){

ADCON1bits.ADCS = 0b111;

ADCON1bits.ADFM = 0;

ADCON0bits.CHS = 0b00001;

ADCON0bits.ADON = 1;

return;

}

33 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

34 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

http://stephane.genouel.free.fr/

35 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

http://stephane.genouel.free.fr/

RAPIDE LENT

36 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

37 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

38 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

39 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

Comment compter des impulsions sur un temps donné ?

Fonction de type pause / délai bloquante !!!

Fonctionnement séquentiel !

DELAI

40 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

Utilisation d’un module timer

Génère une interruption à des instants paramétrables (horloge)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

TMR TMR

41 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

Utilisation d’un module timer

Génère une interruption à des instants paramétrables (horloge)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

Stocker valeur compteur Convertir / Afficher Initialiser compteur

TMR TMR

42 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Module TIMER0 - PIC16F1503

43 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Module TIMER0 - PIC16F1503

44 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

Stocker valeur compteur Convertir / Afficher Initialiser compteur

TMR TMR

45 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

INT INT INT INT INT

Utilisation des interruptions externes

Génère une interruption sur un changement d’état (montant ou/et descendant)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

46 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Utilisation des interruptions externes

Génère une interruption sur un changement d’état (montant ou/et descendant)

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

INT INT INT INT INT Incrémenter compteur

47 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Fonctionnement temps réel

Tout passe par des interruptions !!!

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

VIDE

INT INT INT INT INT Incrémenter compteur

Dans le document Systèmes embarqués (Page 21-48)

Documents relatifs