Tutorial Arduino n.04
Cosa impareremo:
Misceleremo i colori con un LED RGB utilizzando variazioni di tensioni con delle fotoresistenze e dei filtri colorati. Utilizzando i piedini con la scritta (PWM ~) Tramite il Pulse Width Modulation possiamo modulare i piedini con il simbolo ~
Così facendo la tensione ai piedini cambierà rapidamente senza che noi possiamo rendercene conto HIGH/LOW in un periodo chiamato duty cycle o ciclo di lavoro utile. Arduino ha 6 piedini digitali 3,5,6,9 PWM.
Componenti Richiesti:
Programmazione:
Possiamo trovare questo codice precompilato aprendo l’IDE Arduino ,
successivamnete cliccando su File > Esempi > 10 StarterKit> p04_ColorMixing
const int greenLEDPin = 9; // LED connesso al pin 9
const int redLEDPin = 10; // LED connected al pin 10
const int blueLEDPin = 11; // LED connected al pin 11
/*L'utilizzo delle costanti semplifica la modifica del codice.
Nelle funzioni inseriremo il nome simbolico delle costanti
ovvero, i valori legati al numero di pin, grazie
ai riferimenti delle costanti scritte in precedenza. */
const int redSensorPin = A0; // il pin dove è connessa la fotoresistenza col filtro rosso
const int greenSensorPin = A1; // il pin dove è connessa la fotoresistenza col filtro verde
const int blueSensorPin = A2; // il pin dove è connessa la fotoresistenza col filtro blu
//queste variabili conterranno le letture dei sensori, dichiariamole
// tutte int (cerca wikipedia variabile tipo integer).
int redValue = 0; // dichiariamo una variabile per il colore rosso e azzeriamola
int greenValue = 0; // dichiariamo una variabile per il colore verde e azzeriamola
int blueValue = 0; // dichiariamo una variabile per il colore blu e azzeriamola
int redSensorValue = 0; // facciamo assumere il valore '0' come le precedenti.
int greenSensorValue = 0;
int blueSensorValue = 0;
void setup() {
// inizializziamo la comunicazione seriale a 9600baund (bit/secondo, come nel tutorial 03)
Serial.begin(9600);
// settiamo gli output
pinMode(greenLEDPin,OUTPUT);
pinMode(redLEDPin,OUTPUT);
pinMode(blueLEDPin,OUTPUT);
}
void loop() {
// Leggiamo i valori e salviamole nelle variabili precedentemente azzerate.
// Iniziamo la lettura dei valori dei sensori
redSensorValue = analogRead(redSensorPin);
// grazie al ritardo possiamo visualizzare il contenuto
delay(5);
//ugualmente viene fatto con le successive.
greenSensorValue = analogRead(greenSensorPin);
delay(5);
blueSensorValue = analogRead(blueSensorPin);
//Riportiamo le letture dei sensori a computer.
Serial.print("raw sensor Values t red: ");
Serial.print(redSensorValue);
Serial.print("t green: ");
Serial.print(greenSensorValue);
Serial.print("t Blue: ");
Serial.println(blueSensorValue);
/*Introduciamo la funzione analogWrite, in questo caso
ci servirà per sfumare i led. I valori di lettura
del nostro LED variano da 0 a 1023. Mappando
questi valori ci risulterà più facile manipolarli.
Al valore 0 il LED sarà spento a 120 sarà sfumato e
225 il piedino sarà completamente HIGH.
Per convertire 0-1023 a 0-225 dobbiamo dividere
per 4 la lettura dei sensori.*/
redValue = redSensorValue/4;
greenValue = greenSensorValue/4;
blueValue = blueSensorValue/4;
//Riportiamo i valori di luce calcolati.
Serial.print("Mapped sensor Values t red: ");
Serial.print(redValue);
Serial.print("t green: ");
Serial.print(greenValue);
Serial.print("t Blue: ");
Serial.println(blueValue);
analogWrite(redLEDPin, redValue);
analogWrite(greenLEDPin, greenValue);
analogWrite(blueLEDPin, blueValue);
}Schema Elettronico:
Dimostrazione:






