Es ist erforderlich, den Text zu verarbeiten. Ich werde Hilfe nicht ablehnen :)
Arduino Spannungskontrollbibliothek.
Die Klasse ist Vorlage und verwendet 1 Parameter: uint8_t _id = 0 . Der erste nicht -kompulatorische Parameter überträgt transparent uint8_t -Wert an die verursachten Flaschen, mit der Sie die Klasse identifizieren können, wenn Sie mehrere Kopien der Klasse pro einen Flaschen verwenden. Zum Beispiel Pin lesen ADC:
VoltageControl < A1 > Volt1 ;
VoltageControl < A2 > Volt2 ;
//...
Volt1 . SetRequest ( OnRequestVoltage );
Volt2 . SetRequest ( OnRequestVoltage );
//...
int32_t OnRequestVoltage ( uint8_t id )
{
return analogRead ( id );
}Zur Bequemlichkeit hat die Klasse zwei Designer.
` VoltageControl ()` Klassendesigner ohne Parameter. Bei der Verwendung ist es erforderlich, die Einstellungen durch Set Methoden zu vermitteln.
VoltageControl ( request_t callback_req , uint16_t interval_req , response_t callback_res , bool once , uint32_t coefficient , int32_t vmin , int32_t vmax )Klassendesigner, der alle Einstellungen angibt.
SetResponse() , dem Übersetzungskoeffizienten des ACP-Werts, der minimalen zulässigen Spannung, der maximalen zulässigen Spannung. int32_t OnRequestVoltage ( uint8_t id ) Wenn die Klasse erforderlich ist, um den Wert des ADC zu lesen, wird diese Flask -Funktion verursacht. Sie können oder integrierte Methode zum Lesen von ADC ( analogRead() ), direkt mit Registern arbeiten oder einen externen ADC für alle verfügbaren Reifen lesen.
void OnResponseVoltage ( uint8_t id , int32_t value , int8_t state )Wenn Sie das Hauptprogramm über die Änderungen informieren müssen, ist diese Tankfunktion ein Austausch. Sie können sich für die Verzweigung des Codes entscheiden und alles erfüllen, was Sie hier benötigen.
GetValid() . void SetRequest ( request_t callback , uint16_t interval )Die Methode zeigt eine Tankfunktion von Reading ADC an.
void SetResponse ( response_t callback , bool once = false) Das Verfahren zeigt eine Spannungsmessung des Spannungsmessergebnisses an. Wenn once = true , tritt nur ein Aufruf einer Flab -Funktionsrate auf, wenn sich der Zustand geändert hat (reduziert, erhöht, normale Spannung), andernfalls tritt die Herausforderung bei jeder Messung des ADC auf.
void SetCoefficient ( uint32_t coefficient )Das Verfahren bestimmt den Übersetzungskoeffizienten des ACP -Werts auf Mikrowellen.
void SetMin ( uint32_t vmin )Das Verfahren bestimmt die minimal zulässige Spannung.
void SetMax ( uint32_t vmax )Die Methode bestimmt die maximal zulässige Spannung.
void SetStart ()Die Methode legt die Klassenstartflag fest.
void SetStop ()Die Methode legt die Klassenstoppflag fest.
int8_t GetValid ()Die Methode überprüft die Spannung und gibt das Ergebnis in Form einer Zahl zurück.
-1 ist weniger als zulässig, 0 - im Rahmen von zulässiger, 1 - mehr zulässig. int32_t GetVoltage ()Die Methode gibt die Stromspannung zurück.
void Processing ( uint32_t currentTime = millis ()) Zahlenverarbeitungsmethode. Für den Fall, dass Ihre loop eine Definition der aktuellen Zeit hat, ist es ratsamer, diesmal als Parameter zu bestehen.
static inline uint32_t GetCoefficient ( float vref , float r1 = 0 , float r2 = 1 , float quantization = 1024 ) Das Dienstprogramm, mit dem der Koeffizient für SetCoefficient() berechnet wird. Wenn der Teiler nicht verwendet wird, wird nur VREF angezeigt.