Запятая
- Войдите на сайт для отправки комментариев
Ср, 20/01/2021 - 20:59

Здравствуйте.
Почему только в первой колонке после запятой есть какие то цифры а в остальных нет ?
Помогите исправить ?
#include <LiquidCrystal.h>
//LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
LiquidCrystal lcd(PB15, PB5, PA2, PB6, PB8, PB9);
int A = 25;
int B = 22;
int D;
int E;
void setup()
{
Serial.begin(115200);
lcd.begin(16, 2);
}
void loop()
{
float C = sqrt( A * A + B * B );
float D = ((A * 100 / B * 100) / 100);//
float E = A / B; // = 1.36
Serial.print(C); //ok
Serial.print(" ");
Serial.print(D); // = 113.6
Serial.print(" ");
Serial.println(E); // =1.136
lcd.setCursor(0, 1);
lcd.print(C);
}
может так?
float C = (float)sqrt( A * A + B * B ); float D = (float)((A * 100 / B * 100) / 100.0);// float E = (float)A / B; // = 1.36 Serial.print(C,3); //ok Serial.print(" "); Serial.print(D,3); // = 113.6 Serial.print(" "); Serial.println(E,3); // =1.136Лучше
113.000 должно быть 113.6
Замените int на float в строках №№4 и 5, а строки №№6 и 7 выбросьте вовсе.
может так?
float C = (float)sqrt( A * A + B * B ); float D = (float)((A * 100 / B * 100) / 100.0);// float E = (float)A / B; // = 1.36 Serial.print(C,3); //ok Serial.print(" "); Serial.print(D,3); // = 113.6 Serial.print(" "); Serial.println(E,3); // =1.136Нет, не так. Вы сначала делите целые, а потом преобразовываете к float, когда уже поздно боржом пить.
Спасибо, все работает как хотел.
может так?
float C = (float)sqrt( A * A + B * B ); float D = (float)((A * 100 / B * 100) / 100.0);// float E = (float)A / B; // = 1.36 Serial.print(C,3); //ok Serial.print(" "); Serial.print(D,3); // = 113.6 Serial.print(" "); Serial.println(E,3); // =1.136Нет, не так. Вы сначала делите целые, а потом преобразовываете к float, когда уже поздно боржом пить.
боржом как вода кончился однако )))
А можна на сериал плоттер получить такую картину , есть угол и гипотенуза прямоугольного треугольника ?
// #include <LiquidCrystal.h> //LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5); LiquidCrystal lcd(PB15, PB5, PA2, PB6, PB8, PB9); int A = 25; int B = 25; void setup() { Serial.begin(115200); lcd.begin(16, 2); } void loop() { float C = (float)sqrt( A * A + B * B ); //E= RAD_TO_DEG * (atan2(A, B)+PI); E = RAD_TO_DEG * (atan2(A, B)); Serial.print(C, 3); //гипотенуза Serial.print(" "); Serial.print("AngleX= "); Serial.println(E); // угол ///////////////// lcd.setCursor(0, 1); lcd.print(C); }Теоретически можно, но без букв.
Без букв тоже хорошо. Для начала хорошо бы получить одно вертикальную линию.
С абсолютно вертикальной проблема, конечно. Всегда на пиксель минимум будет наклон. Придется треугольник на гипотенузу класть.