Documentos de Académico
Documentos de Profesional
Documentos de Cultura
tiempo_actual = millis();
if ( tiempo_actual - fin_vel > 2500 ){ // Si han pasado mas de 2500 ms entre dos
se�ales consecutivas de la rueda hace lo siguiente ...
velocidad = 0; // Velocidad igual a cero
cadencia = 0; // Cadencia igual a cero
stop_flag = true; // Bandera de bicicleta detenida activada
} // Fin de la sentencia
else if ( ( tiempo_actual - fin_cad ) > 7500 ){ // Si han pasado mas de 7500 ms
entre dos se�ales consecutivas de la palanca hace lo siguiente ...
cadencia = 0; // Cadencia igual a cero
stop_flag = true; // Bandera de bicicleta detenida activada
} // Fin de la sentencia
else{
if ( pedal_muerto == true ){
attachPinChangeInterrupt ( UpShift, UpShift_manual, RISING );
attachPinChangeInterrupt ( DownShift, DownShift_manual, RISING );
stop_flag = false; // Bandera de bicicleta detenida desactivada
pedal_muerto = false;
}
// else{
// stop_flag = false; // Bandera de bicicleta detenida desactivada
// pedal_muerto = false;
// }
} // Fin de la sentencia
} // Fin de la funcion check_status
void manual(){
if (stop_flag == false){
if ( gear > previous_gear ) {
Savox.write ( angulo_Up [ gear ] + 10); //write angle to servo + trimValue (+
10 is a slight overshift feature to improve shifting)
delay(130); // give the servo time to reach the selected gear
Savox.write ( angulo_Up [ gear ] ); // Mueve el servo al angulo
correspondiente de marcha
previous_gear = gear;
} // Fin de la sentencia
if ( gear < previous_gear ) {
Savox.write ( angulo_Down [ gear ] - 15);//write angle to servo + trimValue
(-15 is a slight overshift feature to improve shifting)
delay(130); //give the servo time to reach the selected gear
Savox.write ( angulo_Down [ gear ] ); // Mueve el servo al angulo
correspondiente de marcha
previous_gear = gear;
} // Fin de la sentencia
} // Fin de la funcion manual
}