Aquí es pot veure el codi que fa funcionar la classificadora d'esferes.
/*
PROGRAMA COMPLET
- Polsador filtrat = Pins 2
- Led vermell = Pin 3
- Led verd = Pin 4
- Sensor1 = Pin 7
- Sensor2 = Pin 8
- Motor pas a pas = 13, 12, 11, 10
- Servomotor = 9
*/
//Polsador filtrat:
int estat =0;
int SenyalAntiga=0;
//sensor dos:
int mida = 0;
//motor pas a pas:
#include <Stepper.h> //Ha d'estar a la llibreria.
int PassosPerRevolucio = 2048; //El total d'una volta.
Stepper motor(PassosPerRevolucio, 13, 12, 11, 10); // Pins.
int Gir = 1024; // Passos que es vol que giri el motor.
int Espera = 250; // ms d'espera.
//Servomotor:
#include <Servo.h>
Servo servomotor;
void setup(){
pinMode(2, INPUT); //Pin 2 entrada per la senyal del polsador.
motor.setSpeed(6); //Velocitat de gir: des d'1 fins a 17.
pinMode(8, INPUT); //Sensor de baix.
pinMode(7, INPUT); //Sensor de dalt.
pinMode(3, OUTPUT); //Sortida del led verd.
pinMode(4, OUTPUT); //Sortida del led vermell.
servomotor.attach(9);
Serial.begin(9600);
}
void loop(){
int SenyalActual = digitalRead(2); //Senyal actual és l'estat del polsador 1.
if(SenyalActual==1 && SenyalAntiga ==0){
estat++;
}
SenyalAntiga=SenyalActual;
if (estat == 1){ // Comprova si hi ha senyal.
//polsador filtrat
Serial.print("ences ____ ");
digitalWrite (4,1); //verd encès.
digitalWrite (3,0); //vermell apagat.
//sensors
int sensor1= digitalRead(8);
int sensor2= digitalRead(7);
if (sensor1==0){ //Es detecta la pilota.
Serial.print("hi ha bola _____ ");
delay(1000);
if(sensor2==0){ // La bola és gran.
Serial.println("la bola és gran");
servomotor.write(20); //Decideix la direcció.
motor.step(Gir); //Gira l'hèlix.
delay (Espera);
}
if(sensor2==1){ // La bola és petita.
Serial.println("la bola és petitona");
servomotor.write(70); //Decideix la direcció.
motor.step(Gir); //Gira l'hèlix.
delay (Espera);
}
}
if(sensor1==1){ //No es detecta la pilota.
Serial.println ("no hi ha res :(");
}
}
if (estat==2 || estat==0){ // El sistema està apagat.
estat=0;
Serial.println("apagat");
digitalWrite(3,1);
digitalWrite(4,0);
}
Serial.println(estat); // Per tenir el control de l'estat.
}