/* * 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); } } |