Blog de Julien Corioland (MVP)

Quand les technologies .NET deviennent passion...

Julien Corioland

Développeur/Passionné des technologies .NET

 

Mon CV 

 

Pub :-)

 

 

 

[.NET Micro Framework] Utilisation des GPIO pour faire clignoter une LED

Me voilà de retour sur le .NET Micro Framework pour un post “fun”. Depuis pas mal de temps je cherchais comment faire clignoter quelque chose sur ma carte Tahoe II de chez DeviceSolutions. (oui j’aime bien les trucs qui clignottent :p)

C’est finalement Pierre Cauchois qui a trouvé comment satisfaire ma curiosité. En effet, la carte Tahoe II possède un module Zigbee capable d’allumer/éteindre une LED existante sur la carte.

Il suffit alors de relier une patte du support de module Zigbee à un port GPIO de la carte et de faire varier son état à l’aide de la classe “OutputPort”.

Cette classe permet de manipuler les ports GPIO configurés en sortie de ligne sur la carte et possède une méthode “Write” permettant de changer l’état du GPIO sous-jascent :

  • true : état haut, le courant passe.
  • false : état bas, le courant ne passe pas.

Concrètement, la manip est ultra simple puisque vous n’avez besoin que d’un seul câble pour relier le GPIO à la patte du support Zigbee :

LED_MF_01

LED_MF_02

La classe OutputPort est définie dans la librairie Microsoft.SPOT.Hardware.dll, pensez à ajouter une référence vers celle-ci à votre projet afin de pouvoir utiliser la classe.

public static void Main()
{
    OutputPort outputPort = new OutputPort(Meridian.Pins.GPIO10, false);
    
    //edit : voir commentaires
    bool temp = true;

    while(true) 
    { 
        outputPort.Write(temp); 
        temp = !temp; 
        Thread.Sleep(1000); 
    }

    //pas optimisé
    /* while (true)
    {
        for (int i = 0; i < 10; i++)
        {
            if (i % 2 == 0)
            {
                outputPort.Write(true);
            }
            else
            {
                outputPort.Write(false);
            }

            Thread.Sleep(1000);
        }
    } */
}

Bref rien de bien compliqué, mais au final, ça clignote :) Merci Pierre !

A bientôt Wink

Posted: Jul 19 2009, 13:54 by julienc | Comments (4) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comments

Pierre said:

Yo! il est drôlement compliqué ton code pour la partie clignotement! le modulo, la boucle for dans la boucle while, ca coûte du CPU et donc de la batterie Smile
un truc simple qui marche aussi
while(true)
{
    outputPort.Write(!outputPort.Read());
    Thread.Sleep(1000);
}

# July 19 2009, 16:41

Pierre said:

Ou même encore plus simple vu que le Read() coûte aussi assez cher:
bool temp;
while(true)
{
    outputPort.Write(temp);
    temp = !temp;
    Thread.Sleep(1000);
}

# July 19 2009, 16:42

Pierre said:

Ou même encore plus simple vu que le Read() coûte aussi assez cher:
bool temp =  true; // avec l'initialisation c'est mieux
while(true)
{
outputPort.Write(temp);
temp = !temp;
Thread.Sleep(1000);
}

# July 19 2009, 16:43

julienc said:

Héhé Smile j'étais tellement content d'avoir fait clignoter ma LED !!

Merci pour la correction ;)

# July 19 2009, 17:05

Add comment




biuquote
  • Comment
  • Preview
Loading

captcha

*