Ciao Vittorio, e grazie per la condivisione delle tue conoscenze in merito,
è ovvio che semplificare il codice vuol dire ridurre le possibilità di errore,
in effetti ci stavo ragionando su come ottimizzare il tutto per gestire queste utenze.
In merito alla creazione di "class" avevo già data un'occhiata su di un altro sketch
trovato in rete, ma comprendi che essendo all'inizio nello studio di questo fantastico
Arduino e del linguaggio " C ", stavo procedendo per step nel capire le Variabili, Costanti,
Funzioni, ecc.ecc..
Comunque devo dire, non essendo proprio a digiuno del mondo delle automazioni, che già
qualcosina l'ho inquadrata, ovviamente con il Vostro aiuto, sicuramente mi perfezionerò.
Di seguito posto qualcosa che penso abbia a che fare con le "class" ...
//-------------------------- TapparellaIF Class -------------------------------------------------
class TapparellaIF {
int pinAPRI;
int pinCHIUDI;
public:
TapparellaIF(int pinApri, int pinChiudi);
~TapparellaIF();
void putInOpenState();
void putInCloseState();
void putInIdleState();
void putInLowState();
void putInHighState();
};
TapparellaIF::TapparellaIF(int pinapri, int pinchiudi){
pinAPRI = pinapri;
pinCHIUDI = pinchiudi;
digitalWrite(pinCHIUDI, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, HIGH); //set the pin HIGH and thus turn LED on
pinMode(pinAPRI, OUTPUT); //make that pin an OUTPUT
pinMode(pinCHIUDI, OUTPUT); //make that pin an OUTPUT
digitalWrite(pinCHIUDI, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, HIGH); //set the pin HIGH and thus turn LED on
}
TapparellaIF::~TapparellaIF(){/nothing to destruct/}
void TapparellaIF::putInOpenState(){
digitalWrite(pinCHIUDI, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, 0); //set the pin HIGH and thus turn LED on
}
void TapparellaIF::putInCloseState(){
digitalWrite(pinCHIUDI, LOW); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, HIGH); //set the pin HIGH and thus turn LED on
}
void TapparellaIF::putInIdleState(){
digitalWrite(pinCHIUDI, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, HIGH); //set the pin HIGH and thus turn LED on
}
void TapparellaIF::putInLowState(){
digitalWrite(pinCHIUDI, LOW); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, LOW); //set the pin HIGH and thus turn LED on
}
void TapparellaIF::putInHighState(){
digitalWrite(pinCHIUDI, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(pinAPRI, HIGH); //set the pin HIGH and thus turn LED on
}
TapparellaIF tapparella1 = TapparellaIF(PIN_TAPPAR1_APRI , PIN_TAPPAR1_CHIUDI);
TapparellaIF tapparella2 = TapparellaIF(PIN_TAPPAR2_APRI , PIN_TAPPAR2_CHIUDI);
TapparellaIF tapparella3 = TapparellaIF(PIN_TAPPAR3_APRI , PIN_TAPPAR3_CHIUDI);
TapparellaIF tapparella4 = TapparellaIF(PIN_TAPPAR4_APRI , PIN_TAPPAR4_CHIUDI);
TapparellaIF tapparella5 = TapparellaIF(PIN_TAPPAR5_APRI , PIN_TAPPAR5_CHIUDI);
void putAllInOpeningState(){
tapparella1.putInOpenState();
tapparella2.putInOpenState();
tapparella3.putInOpenState();
tapparella4.putInOpenState();
tapparella5.putInOpenState();
digitalWrite(openLedPin, HIGH); //set the pin HIGH and thus turn LED on
digitalWrite(closeLedPin, LOW); //set the pin LOW and thus turn LED off
}
void putAllInClosingState(){
tapparella1.putInCloseState();
tapparella2.putInCloseState();
tapparella3.putInCloseState();
tapparella4.putInCloseState();
tapparella5.putInCloseState();
digitalWrite(openLedPin, LOW);
digitalWrite(closeLedPin, HIGH);
}
void putAllInIdleState(){
tapparella1.putInIdleState();
tapparella2.putInIdleState();
tapparella3.putInIdleState();
tapparella4.putInIdleState();
tapparella5.putInIdleState();
digitalWrite(openLedPin, LOW);
digitalWrite(closeLedPin, LOW);
}
void putAllInLowState(){
tapparella1.putInLowState();
tapparella2.putInLowState();
tapparella3.putInLowState();
tapparella4.putInLowState();
tapparella5.putInLowState();
digitalWrite(openLedPin, LOW);
digitalWrite(closeLedPin, LOW);
}
void putAllInHighState(){
tapparella1.putInHighState();
tapparella2.putInHighState();
tapparella3.putInHighState();
tapparella4.putInHighState();
tapparella5.putInHighState();
digitalWrite(openLedPin, HIGH);
digitalWrite(closeLedPin, HIGH);
}
potrebbe essere utile per il mio progetto ?
Ciao, Giuseppe