// RGB LED
// Common anode / cat
-RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
+RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
+ // Per un common catodo, valore max / min invertiti
redPin = pinR ;
greenPin = pinG ;
bluePin = pinB ;
};
RGBLed::RGBLed(byte pinR, byte pinG, byte pinB, byte com) {
- // Per un common catode, inverte il valore max / min
+ // Per un common anode, valore max / min normali
redPin = pinR ;
greenPin = pinG ;
bluePin = pinB ;
digitalWrite(ledPin, ledState);
};
+void Lampeggiatore::High() {
+ // Accende il LED
+
+ digitalWrite(ledPin, HIGH);
+}
+
+void Lampeggiatore::Low() {
+ // Spegne il LED
+
+ digitalWrite(ledPin, LOW);
+}
+
+void Lampeggiatore::Swap() {
+ // Inverte lo stato del LED
+
+ digitalWrite(ledPin, !digitalRead(ledPin));
+}
+
/////////////////////////////////////
// Pwm
// Constructor
};
void Pwm::Up(long speed) {
- // Aumenta progressivamente la luminosita' usanndo millis()
+ // Aumenta linearmente la luminosita' usanndo millis()
// quindi senza bloccare il processore
// Viene usato un float, in alternativa un coseno
};
}
+void Pwm::lUp(long speed) {
+ // Aumenta usanndo millis() con correzione luminosita' LED
+ // quindi senza bloccare il processore
+ // Viene usato un float, in alternativa un coseno
+
+ if (millis() != previousMillis) { // si potrebbe togliere
+ brightness = 255.0 /(float)speed * millis() ;
+ analogWrite(ledPin, lum(brightness));
+
+ previousMillis = millis();
+ };
+}
+
void Pwm::Down(long speed ) {
- // Riduce progressivamente la luminosita' usanndo millis()
+ // Riduce linearmente la luminosita' usanndo millis()
// quindi senza bloccare il processore
if (millis() != previousMillis) {
};
}
+void Pwm::lDown(long speed ) {
+ // Riduce usanndo millis() con correzione della luminosita'
+ // quindi senza bloccare il processore
+
+ if (millis() != previousMillis) {
+ brightness = 255 - 255.0 /(float)speed * millis() ;
+ analogWrite(ledPin, lum(brightness));
+
+ previousMillis = millis();
+ };
+}
+
void Pwm::UD(long speed ) {
// Aumenta e riduce in sequenza la luminosita' usanndo millis()
brightness = 128 + 127 * cos(2 * PI / speed * millis());
analogWrite(ledPin, brightness);
}
+void Pwm::Set(byte brightness) {
+ // Imposta il valore del PWM
+ analogWrite(ledPin, brightness);
+}
+
+
+void Pwm::lSet(byte brightness) {
+ // Imposta il valore del PWM
+ analogWrite(ledPin, lum(brightness));
+}
+
/////////////////////////////////////
// Sequenza