projet3_temperature/lib/I2CDeviceLib/I2CDevice.h
2020-05-14 16:15:09 +02:00

99 lines
2.6 KiB
C++

/*! \mainpage Guide de démarrage rapide
*
* \section intro_sec Introduction
*
* Cette bibliothèque inclue deux classes : STS21 et LTC2497.@n
* La classe STS21 permet de piloter le STS21 qui est un capteur I2C de température de la marque SENSIRION.@n
* La classe LTC2497 permet de piloter le LTC2497 qui est un ADC I2C 16 entrées d'une résolution de 16 bits.@n
* Le pilote pour le LTC2497 n'a pas pu être testé faute de platine de test.@n
* Voici un code d'exemple de l'utilisation du STS21 :
*
* \code{.cpp}
* #include <STS21.h>
*
* STS21 sts21;
*
* void setup()
* {
* Serial.begin(115200);
* if(sts21.begin())
* {
* Serial.println("Capteur present!");
* //C'est de toute façon la résolution par défaut
* sts21.setResolution(STS21::RES_14);
* }
* else
* Serial.println("Sensor missing !");
* }
*
* void loop()
* {
* Serial.print("Température relevee : ");Serial.println(sts21.getTemperature());
* delay(2000);
* }
* \endcode
*
* Voici un code d'exemple de l'utilisation du LTC2497 :
* @warning La bibliothèque n'a pas pu être testée. Il y a des chances pour qu'elle ne fonctionne pas correctement.
* \code{.cpp}
* #include "LTC2497.h"
*
* LTC2497 ltc2497;
*
* void setup()
* {
* Serial.begin(9600);
* delay(1000);
* Serial.println("Starting :");
* Serial.print("ADC Begin : ");Serial.println(ltc2497.begin());
* }
*
*
* void loop()
* {
* uint32_t valeur = ltc2497.sampleValue(LTC2497::CHAN_2);
* Serial.print("Valeur adc : ");Serial.println(valeur);
* delay(2000);
* }
* \endcode
*
* \author Anatole SCHRAMM-HENRY
* \author Tim THUREL
* \date 14 Fev 2020
* \copyright All Right Reserved
*/
#ifndef I2CDEVICE_H
#define I2CDEVICE_H
#include <Arduino.h>
#include <Wire.h>
/*! @brief La classe I2CDevice est une classe abstraite servant de modèle pour le développement de pilote pour périphérique I2C.
*
* Cette classe n'est donc pas instanciable directement.
*/
class I2CDevice
{
public:
/*!
* Le constructeur de la classe prend en paramètres :
* @param address : l'address du périphérique sur le bis I2C. (sur 7 bits)
* @param twi : une adresse de l'instance de classe Wire faisant partie de l'écosystème Arduino.
*/
I2CDevice(const uint8_t address, TwoWire *twi = &Wire);
protected:
/*!
* Initialise le périphérique.
* @return boolean : true si l'initialisation a fonctionnée, false sinon.
*/
virtual boolean begin() = 0;
const uint8_t address;
TwoWire *twi;
boolean isPresent;
private:
};
#endif //I2CDEVICE_H