Paso 6: Programación y conclusiones
El boceto:
#define resolución 8 #define actualización 2 * 1000000 / red minValue int; void setup() {} int temp; void loop() {} largo tiempo (pin int, byte máscara) {} externo volátil timer0_overflow_count largo sin firmar; void startTimer() {} checkTimer() largo sin signo {}
#define red 50 / / 60: América del norte, Japón; 50: otros lugares
Serial.Begin(9600); DE DEPURACIÓN
pinMode (8, entrada);
temp de flotador;
int i = 0;
{while(1)}
if(i==100)
rotura;
Temp = temp + tiempo (8, B00000001);
Serial.println(Temp); DE DEPURACIÓN
i ++;
}
minValue = temp / 100;
Serial.println(minValue); DE DEPURACIÓN
}
Temp = tiempo (8, B00000001);
Serial.Print(Temp); DE DEPURACIÓN
if(Temp > minValue) {}
tono (A0, 494);
digitalWrite(A1,HIGH);
Serial.println ("ON"); DE DEPURACIÓN
} else {}
noTone(A0);
digitalWrite(A1,LOW);
Serial.println ("OFF"); DE DEPURACIÓN
}
}
sin firmar cuenta larga = 0, total = 0;
while(checkTimer() < actualizar) {}
pinMode es aproximadamente 6 veces más lenta que la asignación de
DDRB directamente, pero esa pausa es importante
pinMode (pin, salida);
PORTB = 0;
pinMode (pin, entrada);
mientras que ((PINB & mask) == 0)
cuenta ++;
total ++;
}
startTimer();
volver (Conde << resolución) total;
}
timer0_overflow_count = 0;
TCNT0 = 0;
}
regresar ((timer0_overflow_count << 8) + TCNT0) << 2.
}
Esencialmente se hace de dos partes: la configuración y el lazo. En la configuración, que está parado durante unos 10 segundos, Arduino hacer la media matemática entre los valores que recibe durante este mientras y establece como un "valor mínimo" (durante los primeros segundos se debe colocar la mano como cerca de la lata como te quiero conjunto el punto donde, después de él, se activa la alarma). En el lazo, en cambio, Arduino lee el valor actual y ve si es más grande que el "valor mínimo": en este caso el orador hará un tono que se detendrá si sólo el valor es menor que el "valor mínimo". El "/ / DEBUG" las líneas son en caso de que algo viene mal
El instructivo está acabado. Disfrútalo. Lo siento a todos por mi mala Inglés: Si usted tiene cualquier problema por favor deja un comentario.