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();
158 Serial.println(brightness);
162 void Pwm::Down(long speed ) {
163 // Riduce progressivamente la luminosita' usanndo millis()
164 // quindi senza bloccare il processore
166 analogWrite(ledPin, brightness); // La funziona analogWrite utilizza il PWM
167 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
168 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
170 if ((millis() - previousMillis) > speed / 256) {
171 brightness--; // Incrementiamo la luminosita'
172 previousMillis = millis();
173 Serial.println(brightness);
177 void Pwm::UD(long speed ) {
178 // Aumenta e riduce in sequenza la luminosita' usanndo millis()
179 if ((millis() - previousMillis) > speed / 512) {
180 brightness = brightness + increment; // Incrementiamo la luminosita'
181 previousMillis = millis();
182 Serial.println(brightness);
183 analogWrite(ledPin, brightness);
184 if (brightness == 0 || brightness == 255) { // Reverse direction
185 increment = -increment ;
196 void brilla(byte pin, int velocita ) { // Defalt value di velocita' solo nell'Header
197 // Accende e spegne il LED accetando un argomento
198 // per impostare la velocita'.
200 pinMode(pin, OUTPUT);
201 // sequenze di istruzione: accendere e spegnere il LED
202 digitalWrite(pin, HIGH); // turn the LED on (HIGH is the voltage level)
203 delay(velocita); // wait for a second
204 digitalWrite(pin, LOW); // turn the LED off by making the voltage LOW
205 delay(velocita); // wait for a second