Hi i have a digispark attint85 and i want to resize my Clapper project.
The code is this... i remove serial line
const int soglia = 550; // soglia: valore oltre al quale considerare l'impulso sonoro
float valoreSensore = 0;
double elenco[2]; // Sette battiti sono la sequenza che attiva il LED (0-2)
double lastSound; // Dopo alcuni secondi di silenzio, cancella la sequenza
void setup()
{
pinMode(1, OUTPUT); // Dichiaro ledPin come OUTPUT
pinMode(5, INPUT);
}
void loop()
{
float valoreSensore = analogRead(0);
if (valoreSensore >= soglia)
{
registraBattito(); // Registro in elenco il momento in cui viene avvertito il battito
valutaSequenza(); // Controllo se la sequenza e' completa
delay(100); // Aspetto per non sovraccaricare il buffer della porta seriale
}
// Sequenza cominciata ma oltre 2 secondi di silenzio: resetto
if ( elenco[0] && millis() - lastSound > 2000 ) {
resetta();
}
}
// Registro il momento in cui viene avvertito il colpo
void registraBattito()
{
double time = millis();
lastSound = millis();
if ( elenco[0] == 0 ) {
elenco[0] = time;
return;
}
if ( elenco[1] == 0 ) {
elenco[1] = time;
return;
}
}
void valutaSequenza()
{
// Se c'e' il numero corretto di battiti registrati
if ( elenco[1] > 0 )
{
// Verifica il "ritmo" della sequenza di battiTO
if ( elenco[1] - elenco[0] >= 200 && elenco[1] - elenco[0] <= 450 ) // 250
success();
// Resetto l'elenco ogni volta che ha registrato 2 battiti
resetta();
}
}
void resetta()
{
for ( int n = 0; n <= 1; n++ ) {
elenco[n] = 0;
}
}
// Sequenza corretta: il LED si accende
void success()
{
if (digitalRead(1) == HIGH) {
digitalWrite(1, LOW);
}
else {
digitalWrite(1, HIGH);
}
}But i don't understand why it dont go!
I have a microphone from adafruit,
http://www.adafruit.com/products/1063 , and a relay board.
If i do with arduino uno, the script work pretty well, if it program the digispark, none happen. Only the red led go on!
I have the analog value on microphone on the P5, and the signal to activate the relay on the P1.
Can you help me?