View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Python simple : Sortie numérique : Faire clignoter une LED sans delay() en utilisant millis()

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code,je vous montre comment faire clignoter une LED sans delay() mais avec millis(), ce qui permet de faire autre chose entre 2 clignotements. Noter l'utilisation de la fonction Pyduino toggle() qui inverse l'état de la broche simplement.

Pré-requis

Matériel nécessaire

  • une plaque d'essai pour montage sans soudures,
  • des straps,
  • une LED rouge 5mm,
  • une résistance 1/4w de 270 Ohms environ,

Instructions de montage

  • Connecter sur la broche 2 (configurée en sortie) une LED et sa résistance (270 Ohms) en série connectée au 0V

Le montage à réaliser

Le fichier *.yno

Copier/coller ce code dans l'IDE Pyduino


# entete declarative
LED=2  # declare la broche a utiliser

millis0=millis()# variable memorise millis()
delai=1000 # pause

#--- setup ---
def setup():
        pinMode(LED,OUTPUT) # met la broche en sortie
        Serial.println("La broche " +str(LED)+ " est en sortie !")

# -- fin setup --

# -- loop --
def loop():

        global millis0 # variable globale

        if millis()-millis0>delai : # si delai ecoule
                toggle(LED)  # inverse etat de la LED
                Serial.println("LED clignote")
                millis0=millis() # memorise millis courant

        # autres instructions ici

# -- fin loop --
 

Ce code est également disponible ici :

Le fichier *.py

Copier/coller ce code dans l'éditeur Geany :


#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDUino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3
# voir : https://github.com/sensor56/pyDuino

# LED clignote sans delay avec millis()

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative
LED=2  # declare la broche a utiliser

millis0=millis()# variable memorise millis()
delai=1000 # pause

#--- setup ---
def setup():
        pinMode(LED,OUTPUT) # met la broche en sortie
        Serial.println("La broche " +str(LED)+ " est en sortie !")

# -- fin setup --

# -- loop --
def loop():

        global millis0 # variable globale

        if millis()-millis0>delai : # si delai ecoule
                toggle(LED)  # inverse etat de la LED
                Serial.println("LED clignote")
                millis0=millis() # memorise millis courant

        # autres instructions ici

# -- fin loop --

#--- obligatoire pour lancement du code --
if __name__=="__main__": # pour rendre le code executable
        setup() # appelle la fonction setup
        while not noLoop: loop() # appelle fonction loop sans fin

 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/1.Basics/BlinkWithoutDelayMillis.py

Utilisation

  • Réaliser le montage indiqué,
  • Appuyer sur le bouton <Exécuter> dans Geany
  • Une fenêtre de Terminal vide doit apparaître avec des messages et la LED doit clignoter