Cours:TPgpioQT

De troyesGEII
Révision datée du 15 septembre 2022 à 11:26 par Bjacquot (discussion | contributions) (Préparation du projet)
Aller à : navigation, rechercher
Retour à la liste des Tds

GPIO

Gpio rpi3.png

On dispose d'un connecteur avec un certain nombre de GPIO sur la carte rpi.

Ce sont des broches configurables qui peuvent servir de :

  • entrée logique
  • sortie logique
  • fonction particulière :
    • entrée analogique (pas sur les rpi actuelles)
    • i2c
    • spi
    • pwm
    • liaison série
    • ...


Préparation du projet

  • Créer un nouveau projet de type "Widget application"
  • Choisir le kit "Rpi"
  • Télécharger/décompresser et placer les fichiers de l'archive suivant dans votre projet
  • Dans l'arborescence de votre projet,
    • Ajouter des fichiers existants


Sorties

On utilisera la classe Lampe pour piloter des sorties.

lampe.h

#ifndef LAMPE_H
#define LAMPE_H

#include <QObject>
#include "gpio.h"
using namespace exploringRPi;

class Lampe : public QObject
{
    Q_OBJECT
public:
    Lampe(int nbBroche);

private :
    bool etat;
    GPIO broche;

signals:
    void nouvelEtat(bool etat);
public slots:
    void allumer();
    void eteindre();
    void setValue(bool e);
};

#endif // LAMPE_H

lampe.cpp

#include "lampe.h"

Lampe::Lampe(int nbBroche) : QObject(), broche(nbBroche)
{
    broche.setDirection(OUTPUT);
    setValue(false);
}

void Lampe::allumer()
{
    setValue(true);
}

void Lampe::eteindre()
{
    setValue(false);
}

void Lampe::setValue(bool e)
{
    if (e==true) broche.setValue(HIGH);
            else broche.setValue(LOW);
    etat = e;
    emit nouvelEtat(etat);
}

Question.jpg Faire le diagramme de classe d'après le fichier lampe.h