3 * Oggetti di uso comune
10 //////////////////////
14 RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
19 // Equvalente del Setup() per inizializzare i PIN
20 pinMode(redPin, OUTPUT);
21 pinMode(greenPin, OUTPUT);
22 pinMode(greenPin, OUTPUT);
25 void RGBLed::SetColor (byte r, byte g, byte b) {
26 // Imposta il colore di un LED RGB
27 analogWrite(redPin, r);
28 analogWrite(greenPin, g);
29 analogWrite(bluePin, b);
33 // Accende il LED di rosso
37 void RGBLed::Green () {
38 // Accende il LED di verde
42 void RGBLed::Blue () {
43 // Accende il LED di blu
47 void RGBLed::Magenta () {
48 // Accende il LED di magenta
52 void RGBLed::Cyano () {
53 // Accende il LED di Cyano
57 void RGBLed::Yellow () {
58 // Accende il LED di giallo
62 void RGBLed::White () {
69 SetColor(255,255,255);
74 /////////////////////////////////////
77 Lampeggiatore::Lampeggiatore(int pin)
80 pinMode(ledPin, OUTPUT);
89 // Una funzione facente parte di una classe prende il nome di "metodo" della stessa:
90 void Lampeggiatore::Blink() {
91 // Illumina il led a 500ms
93 if(millis() - previousMillis > interval) {
94 // save the last time you blinked the LED
95 previousMillis = millis();
97 // if the LED is off turn it on and vice-versa:
98 ledState = !ledState ; // Inverti il LED
100 // set the LED with the ledState of the variable:
101 digitalWrite(ledPin, ledState);
104 void Lampeggiatore::Blink(long time) {
105 // Illumina il led secondo un intervallo passato come argomento
107 if(millis() - previousMillis > time) {
108 // save the last time you blinked the LED
109 previousMillis = millis();
111 // if the LED is off turn it on and vice-versa:
112 ledState = !ledState ; // Inverti il LED
114 // set the LED with the ledState of the variable:
115 digitalWrite(ledPin, ledState);
118 void Lampeggiatore::Blink(long up, long down) {
119 // Illumina il ledB precisando ontime e downtime
121 if((ledState == HIGH)&& (millis() - previousMillis > up)) {
122 // save the last time you blinked the LED
123 previousMillis = millis();
126 else if((ledState == LOW)&& (millis() - previousMillis > down)) {
127 previousMillis = millis();
131 // set the LED with the ledState of the variable:
132 digitalWrite(ledPin, ledState);
135 /////////////////////////////////////
141 pinMode(ledPin, OUTPUT);
143 byte brightness = 0 ;
147 void Pwm::Up(long speed) {
148 // Aumenta progressivamente la luminosita' usanndo millis()
149 // quindi senza bloccare il processore
151 analogWrite(ledPin, brightness); // La funziona analogWrite utilizza il PWM
152 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
153 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
155 if ((millis() - previousMillis) > speed / 256) {
156 brightness++; // Incrementiamo la luminosita'
157 previousMillis = millis();
161 void Pwm::Down(long speed ) {
162 // Riduce progressivamente la luminosita' usanndo millis()
163 // quindi senza bloccare il processore
165 analogWrite(ledPin, brightness); // La funziona analogWrite utilizza il PWM
166 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
167 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
169 if ((millis() - previousMillis) > speed / 256) {
170 brightness--; // Incrementiamo la luminosita'
171 previousMillis = millis();
175 void Pwm::UD(long speed ) {
176 // Aumenta e riduce in sequenza la luminosita' usanndo millis()
177 if ((millis() - previousMillis) > speed / 512) {
178 brightness = brightness + increment; // Incrementiamo la luminosita'
179 previousMillis = millis();
180 if (brightness == 0 || brightness == 255) { // Reverse direction
181 increment = -increment ;
184 analogWrite(ledPin, brightness);
193 void brilla(byte pin, int velocita ) { // Defalt value di velocita' solo nell'Header
194 // Accende e spegne il LED accetando un argomento
195 // per impostare la velocita'.
197 pinMode(pin, OUTPUT);
198 // sequenze di istruzione: accendere e spegnere il LED
199 digitalWrite(pin, HIGH); // turn the LED on (HIGH is the voltage level)
200 delay(velocita); // wait for a second
201 digitalWrite(pin, LOW); // turn the LED off by making the voltage LOW
202 delay(velocita); // wait for a second