/*
* Ce programme calcule le sinus et le cosinus d'un angle (en radians) ainsi que les coordonnées des points sur un cercle de position et de rayon connus
* Le calcul se fait dans une boucle de 360 pour integration du résultat (x1 et y1) pour affichage avec un écran OlED 128x32
*/
double sint ;
double cost ;
double radt ;
const float pi = 3.14159 ;
double u ; // coordonnes du point sur le cercle (avec décimal)
double v ; // coordonnes du point sur le cercle (avec décimal)
int x1; // coordonnes du point sur le cercle arrondi
int y1; // coordonnes du point sur le cercle arrondi
int x0 = 64; // coordonnes du centre du cercle
int y0 = 16; // coordonnes du centre du cercle
int r = 14; // rayon du cercle
int t ;
void setup() {
Serial.begin(9600);
}
void loop() {
for (int t = 1; t < 361; t++) { // boucle pour 360°
double radt = t * (pi / 180);
double sint = sin(radt);
double cost = cos(radt);
u = (int) x0 + (r*cost);
v = (int) y0 + (r*sint);
x1 = round(u); // arrondi à l'entier le plus proche
y1 = round(v); // arrondi à l'entier le plus proche
Serial.print("t=");
Serial.println(t);
Serial.print("sint=");
Serial.println(sint);
Serial.print("cost=");
Serial.println(cost);
Serial.print("u=");
Serial.println(u);
Serial.print("v=");
Serial.println(v);
Serial.print("x1=");
Serial.println(x1);
Serial.print("y1=");
Serial.println(y1);
Serial.println( );
delay(3000);
}
}
/*
* Ce programme calcule le sinus et le cosinus d'un angle (en radians) ainsi que les coordonnées des points sur un cercle de position et de rayon connus
* Le calcul se fait dans une boucle de 360 pour integration du résultat (x1 et y1) pour affichage avec un écran OlED 128x32
*/
double sint ;
double cost ;
double radt ;
const float pi = 3.14159 ;
double u ; // coordonnes du point sur le cercle (avec décimal)
double v ; // coordonnes du point sur le cercle (avec décimal)
int x1; // coordonnes du point sur le cercle arrondi
int y1; // coordonnes du point sur le cercle arrondi
int x0 = 64; // coordonnes du centre du cercle
int y0 = 16; // coordonnes du centre du cercle
int r = 14; // rayon du cercle
int t ;
void setup() {
Serial.begin(9600);
}
void loop() {
for (int t = 1; t < 361; t++) { // boucle pour 360°
double radt = t * (pi / 180);
double sint = sin(radt);
double cost = cos(radt);
u = (int) x0 + (r*cost);
v = (int) y0 + (r*sint);
x1 = round(u); // arrondi à l'entier le plus proche
y1 = round(v); // arrondi à l'entier le plus proche
Serial.print("t=");
Serial.println(t);
Serial.print("sint=");
Serial.println(sint);
Serial.print("cost=");
Serial.println(cost);
Serial.print("u=");
Serial.println(u);
Serial.print("v=");
Serial.println(v);
Serial.print("x1=");
Serial.println(x1);
Serial.print("y1=");
Serial.println(y1);
Serial.println( );
delay(3000);
}
}
|