const float gr = 9.81; // Accelerazione di gravità (m/s^2)
void setup() {
Serial.begin(9600);
}
float distanzaI =1100;
float velocitaInizialeI =115.00 ;
void loop() {
double complicazioni=1.01; // 1100=1.01. 1150= 1.01408
double g=gr*complicazioni;
double distanza=distanzaI-(distanzaI/100);
double velocitaIniziale=velocitaInizialeI-(distanzaI/1000);
// Richiedi all'utente di inserire la distanza e la velocità iniziale
// Calcola l'angolo di lancio utilizzando la formula inversa del moto parabolico
float angoloRadianti = (asin((g * distanza) / (velocitaIniziale * velocitaIniziale)) / 2);
// Calcola il tempo di volo utilizzando la formula del moto parabolico
float tempoVolo = (2 * velocitaIniziale * sin(angoloRadianti)) / g;
// Calcola l'altezza massima utilizzando la formula del moto parabolico
float altezzaMassima = (velocitaIniziale * velocitaIniziale * sin(angoloRadianti) * sin(angoloRadianti)) / (2 * g );
// Converte l'angolo da radianti a gradi
float angoloGradi = angoloRadianti * 180.0 / PI;
float angoloMillesimi=(90-angoloGradi)*(6400/360);
//angoloMillesimi=angoloMillesimi - map(angoloMillesimi,1051,914,0,88);
// Stampa i risultati
Serial.print("Distanza: ");
Serial.print(distanzaI);
Serial.print(" metri ");
Serial.print("L'angolo: ");
Serial.print(angoloMillesimi,1);
Serial.print(" millesimi ");
Serial.print("Il tempo di volo è: ");
Serial.print(tempoVolo);
Serial.print(" secondi ");
Serial.print("L'altezza massima: ");
Serial.print(altezzaMassima);
Serial.print(" metri");
Serial.println();
// Attendi un po' prima di effettuare un'altra richiesta
delay(500);
distanzaI +=10;
}