ITIS “F.GIORDANI” Caserta
A.S. 2017/18
classe: 4D informatica
indirizzo di studio: Informatica e Telecomunicazione – articolazione Informatica
Materia: Informatica
Programmatore:Bonomo Alessandro
Sistema Operativo: Windows 10
Linguaggio: Arduino
Linguaggio: Arduino
Obiettivo didattico:
Programmare il sensore di colore come una classe.
Obiettivo dell’esercitazione:
Far riconoscere il colore al sensore.
Elenco attrezzature e materiali:
- Scheda arduino.
- Breadboard.
- Sensore di colore.
- Cavo usb per collegare Arduino.
Codice Arduino(vers. 2.0):
class sensoreColore { private: int r,g,b; //colori int out = 7; //Rileva il segnale in ingresso all'Arduino int s0 = 1; //Rileva la Frequenza int s1 = 2; //Rileva la Frequenza int s2 = 3; //Rileva il Colore int s3 = 4; //Rileva il Colore public: sensoreColore() { //configurazione di default out = 2; s0 = 3; s1 = 4; s2 = 5; s3 = 6; pinMode(s0, OUTPUT); pinMode(s1, OUTPUT); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(out, INPUT); //Frequenza al 100/100 digitalWrite(s0, HIGH); digitalWrite(s1, HIGH); } sensoreColore(int out,int s0,int s1,int s2,int s3) { //configurazione con parametri this->out=out; this->s0=s0; this->s1=s1; this->s2=s2; this->s3=s3; pinMode(s0, OUTPUT); pinMode(s1, OUTPUT); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(out, INPUT); //Frequenza al 100/100 digitalWrite(s0, HIGH); digitalWrite(s1, HIGH); } int rilevaBlue() { int b; digitalWrite(s2, LOW); digitalWrite(s3, HIGH); b = pulseIn(out, digitalRead(out)); return b; } int rilevaVerde() { int v; digitalWrite(s3, HIGH); digitalWrite(s2, HIGH); v = pulseIn(out, digitalRead(out)); return v; } int rilevaRosso() { int r; digitalWrite(s2, LOW); digitalWrite(s3, LOW); r = pulseIn(out, digitalRead(out)); return r; } }; //Pin const int out = 7; //Rileva il segnale in ingresso all'Arduino const int s0 = 1; //Rileva la Frequenza const int s1 = 2; //Rileva la Frequenza const int s2 = 3; //Rileva il Colore const int s3 = 4; //Rileva il Colore int R,G,B; //colori sensoreColore sensoreColoreObj=sensoreColore(out,s0,s1,s2,s3); //istanzio un oggetto della classe sensore di colore void setup() { Serial.begin(9600); } void loop() { R=sensoreColoreObj.rilevaRosso(); B=sensoreColoreObj.rilevaBlue(); G=sensoreColoreObj.rilevaVerde(); Serial.print(" Frequenza Rosso: "); Serial.print(R, DEC); Serial.print(" Frequenza Verde: "); Serial.print(G, DEC); Serial.print(" Frequenza Blu : "); Serial.print(B, DEC); // Se la Frequenza del rosso è minore del verde e del blu, prevale il colore Rosso if (R < B && R < G ) { Serial.println(" Colore Rosso"); delay (2000); } // Se la Frequenza del verde è minore del rosso e del blu, prevale il colore Verde if (G < R && G < B) { Serial.println(" Colore Verde"); delay (2000); } // Se la Frequenza del blu è minore del verde e del rosso, prevale il colore Blu if (B<R && B < G ) { Serial.println(" Colore Blu"); delay (2000); } }
Descrizione top-down dei passi realizzativi:
- Realizzare il circuito
- Scrivere il codice arduino
- Collegare la scheda arduino al pc tramite il cavo usb
- Caricare il programma cliccando sul pulsante “carica” dell‘ambiente software arduino
Test finale:
Osservare il funzionamento del sensore di colore.
Commenti recenti