III. Clignotement d'une Led
3.0. Version 0
Vous allez maintenant créer votre propre programme suivant un cahier des charges. Vous utiliserez les éléments vus quand la partie précédente.
Cahier des charges :
- objectif du programme : on veut faire clignoter la led 0 du port B (B0) à la fréquence de 1 Hz (500 ms éteinte, 500 ms allumée)
- pour éteindre la led on affectera 0 à la sortie B0, pour l'allumer on affectera 1 à cette même sortie B0 (on n'a pas besoin de variable)
- on utilisera la boucle TANT QUE 1 pour avoir une boucle infinie
- bilan: il doit y avoir une boucle TANT QUE (2 blocs), dans celle-ci 4 blocs pour le clignotement, un bloc de DEBUT et un bloc de FIN
- vous utiliserez des blocs "delay" pour faire des pauses
Essayez votre programme et quand tout fonctionne faites valider par le professeur
3.1. Version 1 (modification de la version 0)
Cahier des charges :
|
![]() |
|
![]() |
![]() |
Quand on veut débugger un programme il est parfois utile d'avoir des outils appropriés. C'est le cas de Flowcode qui propose notamment d'exécuter le programme pas à pas (menu 'Exécuter' ou touche F8). On peut aussi y associer un tableau dynamique des variables du programme (on visualise ainsi l'état des variables en temps réel). Quand un programme ne fonctionne pas correctement c'est souvent le meilleurs moyen de comprendre pourquoi! |
Essayez votre programme et quand tout fonctionne faites valider par le professeur
3.2. Version 2
On se propose d'améliorer un peu ce programme :
|
|
Pour choisir une fonction déjà existante : exemple avec la fonction 'float2int():
1 : choisir 'fonction' en double-cliquant sur le bloc calcul de votre programme
2 : choisir le type de fonction (l'exemple donné ci-après concerne la transformation d'un float en integer)
3 : syntaxe d'utilisation de la fonction (on remplace les variables exemples <…..> par nos propres variables)
4 : On valide l'utilisation de la fonction
![]() |
syntaxe de la fonction NOT: ma_variable = NOT ma_variable1 (les variables sont de type octet donc sur 8 bits) résultat: la variable 'ma_variable' est l'inverse de la variable 'ma_variable1' exemples: si ma_variable1=0 (0000000) alors ma_variable sera égal à 255 (11111111) si ma_variable1=19 (00010011) alors ma_variable sera égale à 11101100 (c'est à dire 236) |
Essayez votre programme (réalisé avec la fonction NOT) et, quand tout fonctionne, faites valider par le professeur
3.3. Version 3
On se propose d'améliorer encore un peu ce programme :
Le temps d'attente va être réglable et dépendra de la variable 'temps'. Celle-ci sera lue sur l'entrée analogique ADC1
Méthode :
|
![]() |
Choisir 'Lire_comme_Tension' et choisir comme retour la variable 'temps' (qu'il faut créer en Flottant)
Essayez votre programme et quand tout fonctionne faites valider par le professeur