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::Invert() {
91 // Inverte il lampeggio
95 void Lampeggiatore::Blink() {
96 // Illumina il led a 500ms
98 if(millis() - previousMillis > interval) {
99 // save the last time you blinked the LED
100 previousMillis = millis();
102 // if the LED is off turn it on and vice-versa:
103 ledState = !ledState ; // Inverti il LED
105 // set the LED with the ledState of the variable:
106 digitalWrite(ledPin, ledState);
109 void Lampeggiatore::Blink(long time) {
110 // Illumina il led secondo un intervallo passato come argomento
112 if(millis() - previousMillis > time) {
113 // save the last time you blinked the LED
114 previousMillis = millis();
116 // if the LED is off turn it on and vice-versa:
117 ledState = !ledState ; // Inverti il LED
119 // set the LED with the ledState of the variable:
120 digitalWrite(ledPin, ledState);
123 void Lampeggiatore::Blink(long up, long down) {
124 // Illumina il ledB precisando ontime e downtime
126 if((ledState == HIGH)&& (millis() - previousMillis > up)) {
127 // save the last time you blinked the LED
128 previousMillis = millis();
131 else if((ledState == LOW)&& (millis() - previousMillis > down)) {
132 previousMillis = millis();
136 // set the LED with the ledState of the variable:
137 digitalWrite(ledPin, ledState);
140 /////////////////////////////////////
146 pinMode(ledPin, OUTPUT);
148 byte brightness = 0 ;
152 void Pwm::Up(long speed) {
153 // Aumenta progressivamente la luminosita' usanndo millis()
154 // quindi senza bloccare il processore
156 analogWrite(ledPin, brightness); // La funziona analogWrite utilizza il PWM
157 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
158 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
160 if ((millis() - previousMillis) > speed / 256) {
161 brightness++; // Incrementiamo la luminosita'
162 previousMillis = millis();
163 Serial.println(brightness);
167 void Pwm::Down(long speed ) {
168 // Riduce progressivamente la luminosita' usanndo millis()
169 // quindi senza bloccare il processore
171 analogWrite(ledPin, brightness); // La funziona analogWrite utilizza il PWM
172 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
173 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
175 if ((millis() - previousMillis) > speed / 256) {
176 brightness--; // Incrementiamo la luminosita'
177 previousMillis = millis();
178 Serial.println(brightness);
182 void Pwm::UD(long speed ) {
183 // Aumenta e riduce in sequenza la luminosita' usanndo millis()
184 if ((millis() - previousMillis) > speed / 512) {
185 brightness = brightness + increment; // Incrementiamo la luminosita'
186 previousMillis = millis();
187 Serial.println(brightness);
188 analogWrite(ledPin, brightness);
189 if (brightness == 0 || brightness == 255) { // Reverse direction
190 increment = -increment ;
201 void brilla(byte pin, int velocita ) { // Defalt value di velocita' solo nell'Header
202 // Accende e spegne il LED accetando un argomento
203 // per impostare la velocita'.
205 pinMode(pin, OUTPUT);
206 // sequenze di istruzione: accendere e spegnere il LED
207 digitalWrite(pin, HIGH); // turn the LED on (HIGH is the voltage level)
208 delay(velocita); // wait for a second
209 digitalWrite(pin, LOW); // turn the LED off by making the voltage LOW
210 delay(velocita); // wait for a second