Il est nécessaire de traiter le texte. Je ne refuserai pas d'aide :)
Bibliothèque de contrôle de tension Arduino.
La classe est un modèle et utilise 1 paramètre: uint8_t _id = 0 . Le premier paramètre non compulsif transmet de manière transparente uint8_t aux flacons causés, ce qui vous permet d'identifier la classe lorsque vous utilisez plusieurs copies de la classe par un ballon. Par exemple la lecture de la broche ADC:
VoltageControl < A1 > Volt1 ;
VoltageControl < A2 > Volt2 ;
//...
Volt1 . SetRequest ( OnRequestVoltage );
Volt2 . SetRequest ( OnRequestVoltage );
//...
int32_t OnRequestVoltage ( uint8_t id )
{
return analogRead ( id );
}Pour plus de commodité, la classe a deux designers.
` VoltageControl ()` Concepteur de classe sans paramètres. Lorsqu'il est utilisé, il est nécessaire de transmettre les paramètres via des méthodes Set .
VoltageControl ( request_t callback_req , uint16_t interval_req , response_t callback_res , bool once , uint32_t coefficient , int32_t vmin , int32_t vmax )Concepteur de classe indiquant tous les paramètres.
SetResponse() , le coefficient de traduction de la valeur ACP, la tension minimale autorisée, la tension maximale autorisée. int32_t OnRequestVoltage ( uint8_t id ) Lorsque la classe est nécessaire pour lire la valeur de l'ADC, cette fonction de ballon sera causée. Vous pouvez effectuer ou intégrer la méthode de lecture de l'ADC ( analogRead() ), fonctionner directement avec des registres ou lire un ADC externe pour tout pneu disponible.
void OnResponseVoltage ( uint8_t id , int32_t value , int8_t state )Lorsque vous devez informer le programme principal des modifications, cette fonction de réservoir sera un échangeur. Vous pouvez décider de la branche du code et remplir tout ce dont vous avez besoin ici.
GetValid() . void SetRequest ( request_t callback , uint16_t interval )La méthode indique une fonction de réservoir de la lecture de l'ADC.
void SetResponse ( response_t callback , bool once = false) La méthode indique une mesure de tension du résultat de la mesure de tension. Si once = true , alors un appel d'un taux de fonctions de flab ne se produira que lorsque la condition est modifiée (réduction, augmentation, tension normale), sinon le défi se produira à chaque mesure de l'ADC.
void SetCoefficient ( uint32_t coefficient )La méthode détermine le coefficient de traduction de la valeur ACP aux micro-ondes.
void SetMin ( uint32_t vmin )La méthode détermine la tension minimale autorisée.
void SetMax ( uint32_t vmax )La méthode détermine la tension maximale autorisée.
void SetStart ()La méthode définit le drapeau de démarrage de la classe.
void SetStop ()La méthode définit le drapeau d'arrêt de classe.
int8_t GetValid ()La méthode vérifie la tension et renvoie le résultat sous la forme d'un nombre.
-1 est inférieur à celle, 0 - dans le cadre de permis, 1 - plus autorisé. int32_t GetVoltage ()La méthode renvoie la tension de courant.
void Processing ( uint32_t currentTime = millis ()) Méthode de traitement des nombres. Dans le cas où votre loop a une définition de l'heure actuelle, il est plus conseillé de passer cette fois en tant que paramètre.
static inline uint32_t GetCoefficient ( float vref , float r1 = 0 , float r2 = 1 , float quantization = 1024 ) L'utilité qui aide à calculer le coefficient de SetCoefficient() . Si le diviseur n'est pas utilisé, seul VREF est indiqué.