Broches E/S en sortie

Ce que l'on va faire ici

Ici, nous allons voir comment utiliser les broches GPIO en sortie avec MicroPython

Liens utiles :

Les broches GPIO de la Pyboard

La Pyboard dispose de 30 broches GPIO utilisables en entrée ou en sortie.

Ces broches sont dénommées :

  • X1 à X22
  • Y1 à Y8

Infos techniques utiles

  • Les broches GPIO sont au niveau 3.3V.
  • L'intensité disponible par broche ne devra pas excéder quelques mA

Instructions Micropython utiles

Désignation

Pin(id,[mode])

La broche GPIO est instanciée sous forme d'un objet Pin.

La broche, au moment de sa déclaration peut être dénomée au choix par :

  • son nom cpu : pyb.cpu.Name
  • son nom board : pyb.Pin.board.X1
  • par une chaîne texte : 'X1'

Il est également possible de créer une dénomination personnalisée des broches. Voir la doc.

Configuration

Fonction .init(mode) de l'objet PIN

La configuration du mode est définie par les variables suivantes :

  • Pin.OUT_PP : configure la broche en sortie, avec push-pull controle; = état HAUT ou BAS - c'est le mode souhaité ici.
  • Pin.OUT_OD : configure la broche, avec open-drain controle; = état BAS ou Rien

Utilisation

  • .high() : met au niveau haut
  • .low() : met au niveau bas
  • .value() : renvoie la valeur actuelle de la broche
  • .value(0/1) : fixe la valeur de la broche

Cas particuliers : les broches de LED "onboard"

La carte Pyboard dispose de 4 leds intégrées : elles sont instanciées dans un objet LED et dénommée par leur numéro de 1 à 4.

L'objet LED dispose de fonctions utiles, notamment :

  • .on()
  • .off() *.toggle()
  • intensity()

Exemple : faire clignoter une LED onboard

Pour faire clignoter une LED "onboard", les choses sont assez simples :

import pyb

while(True):
    pyb.LED(4).on()
    pyb.delay(100)
    pyb.LED(4).off()
    pyb.delay(100)

Ceci fait clignoter la LED n°4 de la carte.

Exemple : faire clignoter une LED

Le circuit à réaliser est le suivant :

Le code est le suivant :

import pyb

led=pyb.Pin('X1', pyb.Pin.OUT_PP) # initialisation de la broche en sortie

while(True):
    led.high()
    pyb.delay(500)
    led.low()
    pyb.delay(500)

La LED clignote !

Exemple : jeu de lumière à LED

Utiliser list + roll..