Linguaggio: Arduino
Elenco attrezzature e materiali:
- Scheda arduino.
- Breadboard.
- Sensore di colore.
- Cavo usb per collegare Arduino.
//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
void setup()
{
Serial.begin(9600);
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);
}
void loop()
{
R=rilevaRosso();
B=rilevaBlue();
G=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);
}
}
//Funzione per Rilevare il colore
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;
}
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