printf("%f", a); => 2.5 printf("%d", a); => 2
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Bienvenue sur le moniteur série.
L'extrapolation à 180°, de 173° entre la butée mini: 520 µS et la butée maxi: 2480 µS est égale à: 2559.31 µS.
1° est égale à 11.33 µS.
0° = 520.00 µS
1° = 531.33 µS
173° = 2480.00 µS
180° = 2559.31 µS
#include <Servo.h> const byte ServoPin = 10; const int LowerPos = 520 ; //Butée Mini du servo const int UpperPos = 2480 ; //Butée Maxi du servo const int Range = 173 ; //Plage de déplacement en degrés const float T180 = LowerPos + (((float)(UpperPos - LowerPos) / Range) * 180) ; //Extrapolation à 180° = 2559,306358381503 const float UsRange = (T180 - LowerPos) / 180 ; // 1° = 11,32944444444444 µS Servo myservo; // create servo object to control a servo void setup() { Serial.begin(115200); myservo.attach(ServoPin, LowerPos, T180); Serial.println("Bienvenue sur le moniteur série."); Serial.print("L'extrapolation à 180°, de "); Serial.print(Range); Serial.print("° entre la butée mini: "); Serial.print(LowerPos); Serial.print(" µS et la butée maxi: "); Serial.print(UpperPos); Serial.print(" µS est égale à: "); Serial.print (T180); Serial.println(" µS."); Serial.print("1° est égale à "); Serial.print(UsRange); Serial.println(" µS."); Serial.println(); } void loop() { int PosDeg = Serial.parseInt(); // PosDeg = la position saisie dans le moniteur série de 0 à 173° float PosUs = LowerPos + (PosDeg * UsRange); // degré en µS if (Serial.available() > 0) { Serial.print(PosDeg); Serial.print("° = "); Serial.print(PosUs,2); Serial.println(" µS"); } clearSerialBuffer(); } void clearSerialBuffer() { //clear serial buffer (but do nothing with it) while (Serial.available()) { Serial.read(); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question#include <Servo.h> const byte ServoPin = 10; const int LowerPos = 520 ; //Butée Mini du servo const int UpperPos = 2480 ; //Butée Maxi du servo const int Range = 173 ; //Plage de déplacement en degrés const float T180 = LowerPos + (((float)(UpperPos - LowerPos) / Range) * 180) ; //Extrapolation à 180° = 2559,306358381503 const float UsRange = (T180 - LowerPos) / 180 ; // 1° = 11,32944444444444 µS Servo myservo; // create servo object to control a servo void setup() { Serial.begin(115200); myservo.attach(ServoPin, LowerPos, T180); Serial.println("Bienvenue sur le moniteur série."); Serial.print("L'extrapolation à 180°, de "); Serial.print(Range); Serial.print("° entre la butée mini: "); Serial.print(LowerPos); Serial.print(" µS et la butée maxi: "); Serial.print(UpperPos); Serial.print(" µS est égale à: "); Serial.print (T180); Serial.println(" µS."); Serial.print("1° est égale à "); Serial.print(UsRange); Serial.println(" µS."); Serial.println(); } void loop() { int PosDeg = Serial.parseInt(); // PosDeg = la position saisie dans le moniteur série de 0 à 173° float PosUs = LowerPos + (PosDeg * UsRange); // degré en µS if (Serial.available() > 0) { Serial.print(PosDeg); Serial.print("° = "); Serial.print(PosUs,2); Serial.println(" µS"); } clearSerialBuffer(); } void clearSerialBuffer() { //clear serial buffer (but do nothing with it) while (Serial.available()) { Serial.read(); } }
const byte ServoPin = 10; const double LowerPos = 520 ; //Butée Mini du servo const double UpperPos = 2480 ; //Butée Maxi du servo const double Range = 173 ; //Plage de déplacement en degrés const double T180 = LowerPos + ((UpperPos - LowerPos) / Range) * 180.0) ; //Extrapolation à 180° = 2559,306358381503 const double UsRange = (T180 - LowerPos) / 180.0;
#include <iostream> int main() { const int LowerPos = 520 ; //Butée Mini du servo const int UpperPos = 2480 ; //Butée Maxi du servo const int Range = 173 ; //Plage de déplacement en degrés const double T180 = LowerPos + (((double)(UpperPos - LowerPos) / Range) * 180) ; //Extrapolation à 180° = 2559,306358381503 const double UsRange = (T180 - LowerPos) / 180 ; // 1° = 11,32944444444444 µS printf("LowerPos: %d UpperPos: %d Range: %d T180: %.10f UsRange: %.10f\n", LowerPos, UpperPos, Range, T180, UsRange); for (int PosDeg = 0; PosDeg < 100; ++PosDeg) { double PosUs = LowerPos + (PosDeg * UsRange); // degré en µS printf("PosDeg: %d PosUs: %.10f\n", PosDeg, PosUs); } return 0; }
LowerPos: 520 UpperPos: 2480 Range: 173 T180: 2559.3063583815 UsRange: 11.3294797688
PosDeg: 0 PosUs: 520.0000000000
PosDeg: 1 PosUs: 531.3294797688
PosDeg: 2 PosUs: 542.6589595376
PosDeg: 3 PosUs: 553.9884393064
#define BUF_LEN 128 char buffer[BUF_LEN]; char fBuffer[16]; .... float fTemp = 25.45 ; dtostrf(fTemp,4,2,fBuffer); // largeur mimimale 4 , 2 chiffres après la virgule snprintf(buffer,sizeof(buffer),"La température est %s °C\n\r",fBuffer ); Serial.print(buffer);