Modifications

Sauter à la navigation Sauter à la recherche
Page créée avec « == Programmation Suite == Dans cette seconde partie, nous allons nous pencher sur les opérateurs et le contrôle des entrées/sorties de la PyBoard. Voyez [http://doc.mi... »
== Programmation Suite ==
Dans cette seconde partie, nous allons nous pencher sur les opérateurs et le contrôle des entrées/sorties de la PyBoard.

Voyez [http://doc.micropython.org doc.micropython.org] pour une référence complète (''anglais'').

== Opérateurs de comparaison ==
Opérateurs utilisés pour des comparaisons logiques.

{| class="wikitable" border="1"
|-
| align="center" | Opérateur
| align="center" | Description
|- style="font-size: 90%"
| align="left" | ==
| align="left" | (égal à)<br />Ex : 12 == 10 est faux ({{fname|False}}) ou 12 == 12 est vrai ({{fname|True}})
|- style="font-size: 90%"
| align="left" | !=
| align="left" | (différent de)<br />Ex: 12 != 10 est vrai ({{fname|True}}) ou 12 != 12 est faux ({{fname|False}})
|- style="font-size: 90%"
| align="left" | <
| align="left" | (moins que, inférieur à)<br />Ex : 12 < 10 est faux ({{fname|False}}) ou 12 < 12 est faux ({{fname|False}}) ou 12 < 14 est vrai ({{fname|True}})
|- style="font-size: 90%"
| align="left" | >
| align="left" | (plus grand que, supérieur à)<br />Ex : 12 > 10 est vrai ({{fname|True}}) ou 12 > 12 est faux ({{fname|False}}) ou 12 > 14 est faux ({{fname|False}})
|}

{{underline|Note:}} Il est possible de combiner les <,> avec le signe =. Ainsi, la combinaison >= (plus grand ou égal) permet d'écrire un test 12 >= 12 qui, cette fois, sera vrai ({{fname|True}}). De façon similaire, vous pourrez écrire une comparaison <= (inférieur ou égal).

== Structure de contrôle ==
L'ordre des séquences exécutées dépendent du programme, voici quelques éléments de contrôles élémentaires précisant au programme comment il doit fonctionner (il y en a bien plus de décrit sur le site).

=== Si Alors Sinon ===
<nowiki>if condition:
instructions-A
elif condition2:
instructions-B
else:
instructions-C</nowiki>

Cela exécute le code indenté d'instructions-A "{{fname|if}}" est vraie ({{fname|True}}), sinon il va tester la condition2 de "{{fname|elif}}" pour exécuter le bloc associé.

Si cette condition est également fausse alors il exécutera le code du bloc "{{fname|else}}", soit instruction-C.

=== Boucle For ===
La boucle {{fname|for}} permet d'itérer tous les éléments d'un ensemble de valeur (comme une liste).

<nowiki>for in range( 0, 4 ):
print( i )</nowiki>

La fonction {{fname|range}} permet de produit une liste de valeur de 0 à 3.

L'exemple produit les valeurs suivantes:

<nowiki>0
1
2
3</nowiki>

Cette syntaxe fonctionne avec tous les éléments dit ''itérable'' comme les listes, les dictionnaires, etc peuvent être utilisés avec une boucle {{fname|for}}.

<nowiki>liste = ['un','deux','trois','quatre',5,6]

for element in liste:
print( element )</nowiki>

ce qui produit ce résultat ci:

<nowiki>un
deux
trois
quatre
5
6
</nowiki>

== Contrôle digital ==
Votre carte PyBoard dispose de broches d'entrée/sortie, voici comment les contrôler.

<nowiki>p = pyb.Pin( 'X5', pyb.Pin.OUT_PP )
p.high();
p.low();

btn = pyb.Pin( 'Y10', Pin.IN, pull=Pin.PULL_UP )
valeur = btn.value()
print( valeur )</nowiki>

=== pyb.Pin ===
<nowiki>pyb.Pin(pin, mode, pull);</nowiki>

La classe {{fname|Pin}} est utilisé pour obtenir un objet pour une broche donné de la PyBoard et initialiser cette broche en tant qu'entrée ou sortie.

* '''pin''' : identifie la broche que vous voulez contrôler (tel qu'indiqué sur la sérigraphie).
* '''mode''' : indique comment la broche sera utilisée, en entrée ou en sortie.
** '''Pin.IN''' Broche configurée en entrée (vous pouvez préciser un paramètre complémentaire {{fname|pull}} )
** {{fname|''Pin.OUT_PP''}} - configure la broche en sortie, avec contrôle push-pull. Donc le niveau sera soit forcé au niveau haut ou niveau bas)
** {{fname|''Pin.OUT_OD''}} - configure la broche en sortie, avec un contrôle à drain ouvert (''open-drain''). Cela signifie que vous pouvez forcer le signal au niveau bas... sinon la valeur du signal est flottante (en fait, à la tension imposée par le circuit que vous y avez raccordé)
** {{fname|Pin.AF_PP}} - configure la broche pour fonction alternative, pull-pull;
** {{fname|Pin.AF_OD}} - configure la broche pour fonction alternative, open-drain;
** {{fname|'''Pin.ANALOG'''}} - configure la broche pour opération analogique.
* '''pull''' - Si vous utilisez une broche en entrée, ce paramètre permet d'activer les résistances pull-up, pull-down

=== digitalWrite ===
<nowiki>digitalWrite(pin,value);</nowiki>

Une fois la broche déclarée comme OUTPUT avec {{fname|pinName}}, elle peut être mise soit à l'état {{fname|HIGH}} (niveau logique haut, potentiel tiré à +5 volts) ou l'état {{fname|LOW}} (niveau logique bas, potentiel tiré à la masse/ground).

* pin: est le numéro de broche
* value: le niveau logique désiré (soit {{fname|HIGH}} ou {{fname|LOW}}

=== digitalRead ===
<nowiki>int digitalRead(pin);</nowiki>

Une fois la broche déclarée comme {{fname|INPUT}} avec {{fname|pinMode}}, vous pouvez lire l'état de cette broche et savoir si elle est placée au niveau haut ({{fname|HIGH}}, au potentiel +5 volts) ou niveau bas ({{fname|LOW}}, potentiel de la masse/GND, soit 0 volt) par le montage.

== Contrôle analogique ==
Arduino est une machine digitale mais elle est capable de fonctionner dans le monde analogique grâce à des astuces.

Voici comment gérer les cas non digitaux.

=== analogWrite ===
<nowiki>int analogWrite(pin,value);</nowiki>

Certaines broches d'Arduino supporte la modulation d'impulsion (3, 5, 6, 9, 10, 11).

Cela active et désactive la broche très rapidement, la faisant agir "comme" une sortie analogique. cela s'appelle un signal PWM.

La valeur utilisée est un nombre entre 0 (0% de cycle utile approximativement 0v) et 255 (100% de cycle utile ~5 volts).

=== analogRead ===
<noiki>int analogRead(pin);</nowiki>

Quand une broche analogique est déclarée comme entrée ({{fname|INPUT}}) à l'aide de {{fname|pinMode}}, vous pouvez y lire sa tension.

La valeur retournée est entre 0 (pour 0 volts) et 1024 (pour 5 volts).
29 918

modifications

Menu de navigation