Paso 3: Programación - fácil
El código se coloca por debajo.
/*
Esto es para las dos primeras puertas: A y B.
*/
Esta constante no va a cambiar:
const int ain = 44; PIN 44 es la primera entrada digital para puerta A
const int aout = 45; PIN 45 es la segunda entrada digital para puerta A
const int bin = 42; mismo para la puerta B
const int pelea = 43; mismo para la puerta B
Va a cambiar las variables:
int ins = 0; cuenta con entradas y salidas
salidas de int = 0;
ai int = 0; Un estado de pin 1 de la puerta
lai int = 0; Último estado del pin 1 de la puerta
ao int = 0; Puerta 2 Estado pin
int lao = 0; Último estado del pin 2 de la puerta
bi de int = 0;
lbi int = 0;
int bo = 0;
int lbo = 0;
int cuenta = 0; Esto sólo comprueba si ha habido un cambio en nuestra cuenta de abeja
lcount int = 0;
void setup() {/ / inicializar el botón pin como una entrada:
pinMode (ain, entrada);
pinMode (aout, entrada);
pinMode (bin, entrada);
pinMode (pelea, entrada);
inicializar la comunicación serial:
Serial.Begin(38400); un poco diferente que el Arduino aquí... 38400
}
void loop() {}
leer la entrada pulsador de pin:
AI = digitalRead(ain);
AO = digitalRead(aout);
BI = digitalRead(bin);
Bo = digitalRead(bout);
¿Si (lai! = ai) {/ / tiene la condición de si cambia el pin 1?
¿Si (ai > ao) {/ / si la abeja va hacia adentro o afuera?
ins ++; Si su va añade una abeja a ins
}}
Si (lao! = ao) {}
Si (ao > ai) {}
salidas ++;
}}
Si (lbi! = bi) {}
Si (bi > bo) {}
ins ++;
}}
Si (lbo! = bo) {}
Si (bo > bi) {}
salidas ++;
}}
Lai = ai; actualiza el estado de la última
Lao = ao;
LBI = bi;
LBO = bo;
cuenta = ins + salidas;
Si (lcount! = count) {/ / si la cuenta ha cambiado imprimimos la cuenta nueva
Serial.Print ("número:");
Serial.println(INS);
Serial.Print ("número hacia fuera:");
Serial.println(outs);
lcount = cuenta;
}
}
He añadido una secuencia debeebouce. Aquí está la calibración más reciente video de hoy 26/06/12. Su 91% exacto pero aún hay una pequeña sala para mejorar: