Arduino - Funzioni e altro
Il mio sito
Funzioni e altro
Vai ai contenuti
Menu principale:
×
Home Page
Newton
Lagrange
Palette
Temperatura-Palette
altro
La mia tesi
Arduino
Girasole
RGYG-5500
Arduino
altro
/*
ArcoSeno
ArcoCoseno
ArcoTangente
I volori sono precisi sino alla sesta cifra
Creato 2013 da Ambrosini Cesare
*/
#include <Wire.h>
// Assegna le variabili necessarie per il calcolo di Arco Tangente
int iTan = 0;
int nTan = 0;
double ValoreArco = 0;
double ArcoGradi = 0;
double ArcoRadianti = 0;
// Assegna la variabile necessaria per il tempo di calcolo
unsigned long milliSecondi = 0;
void setup() {
Serial.begin(57600);
Wire.begin();
}
void loop() {
ValoreArco = 0.5;
Serial.print(" Valore Arco = ");
Serial.print(ValoreArco, DEC);
milliSecondi = millis();
ArcoSeno();
milliSecondi = millis() - milliSecondi;
Serial.print(" Tempo di calcolo = ");
Serial.print(milliSecondi, DEC);
Serial.print(" milliSecondi");
Serial.println();
Serial.print(" Arco Seno in Gradi = ");
Serial.print(ArcoGradi, DEC);
Serial.print(" Arco Seno in Radianti = ");
Serial.print(ArcoRadianti, DEC);
Serial.println();
Serial.println();
Serial.println();
ValoreArco = 0.6;
Serial.print(" Valore Arco = ");
Serial.print(ValoreArco, DEC);
milliSecondi = millis();
ArcoCoSeno();
milliSecondi = millis() - milliSecondi;
Serial.print(" Tempo di calcolo = ");
Serial.print(milliSecondi, DEC);
Serial.print(" milliSecondi");
Serial.println();
Serial.print(" Arco CoSeno in Gradi = ");
Serial.print(ArcoGradi, DEC);
Serial.print(" Arco CoSeno in Radianti = ");
Serial.print(ArcoRadianti, DEC);
Serial.println();
Serial.println();
Serial.println();
ValoreArco = 100;
Serial.print(" Valore Arco = ");
Serial.print(ValoreArco, DEC);
milliSecondi = millis();
ArcoTan();
milliSecondi = millis() - milliSecondi;
Serial.print(" Tempo di calcolo = ");
Serial.print(milliSecondi, DEC);
Serial.print(" milliSecondi");
Serial.println();
Serial.print(" Arco Tangente in Gradi = ");
Serial.print(ArcoGradi, DEC);
Serial.print(" Arco Tangente in Radianti = ");
Serial.print(ArcoRadianti, DEC);
Serial.println();
Serial.println();
Serial.println();
delay(5000);
} // Next - Fine Programma
void ArcoSeno() { // Inizio Sottoprogramma
// Entrata ValoreArco //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoGradi Arco Seno in Gradi //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoRadianti Arco Seno in Radianti //////////////////////////////////////////////////////////////////////////////
if (abs(ValoreArco) > 1) {ValoreArco = 0.0;}
ValoreArco = ValoreArco / sqrt(1 - ValoreArco * ValoreArco);
ArcoTan();
} // return - Fine Sottoprogramma
void ArcoCoSeno() { // Inizio Sottoprogramma
// Entrata ValoreArco //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoGradi Arco CoSeno in Gradi //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoRadianti Arco CoSeno in Radianti //////////////////////////////////////////////////////////////////////////////
ArcoSeno();
ArcoGradi = 90.0 - ArcoGradi;
ArcoRadianti = 1.5707963267949 - ArcoRadianti;
} // return - Fine Sottoprogramma
void ArcoTan() { // Inizio Sottoprogramma
// Entrata ValoreArco //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoGradi Arco Tangente in Gradi //////////////////////////////////////////////////////////////////////////////
// Uscita ArcoRadianti Arco Tangente in Radianti //////////////////////////////////////////////////////////////////////////////
iTan = 0;
ArcoGradi = 0.0;
ArcoRadianti = 1.5707963267949 / 10.0;
nTan = 1; if (ValoreArco < 0) {nTan = -1;}
ValoreArco = abs(ValoreArco);
Next0:
if (ValoreArco < tan(ArcoGradi)) {goto Next1;}
ArcoGradi = ArcoGradi + ArcoRadianti;
if (ArcoGradi <= 1.570796) {goto Next0;}
Next1:
iTan = iTan + 1; if (iTan <= 5) {
ArcoGradi = ArcoGradi - ArcoRadianti;
ArcoRadianti = ArcoRadianti / 10.0;
goto Next0;}
ValoreArco = ValoreArco * nTan;
ArcoRadianti = ArcoGradi * nTan;
ArcoGradi = ArcoGradi / 1.5707963267949 * 90.0 * nTan;
} // return - Fine Sottoprogramma
Home Page
Home Page
|
Newton
|
Lagrange
|
Palette
|
Temperatura-Palette
|
altro
|
Mappa generale del sito
di Ambrosini Cesare
Torna ai contenuti
|
Torna al menu
Per poter utilizzare questo sito è necessario attivare JavaScript.