de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Jertise
Jertise
Вопрос

Простая серийная арифметика Arduino

Я разрабатываю программу для расчета статического запаса самолета посредством расчетов массы, момента и руки. По существу, имеет дело с большими числами.

Мне сложно настроить мой код так, чтобы арифметика правильно применялась к большим числам. То, что я до сих пор работает, но только при вводе 0-9. Арифметика не может вычислить цифры за пределами.

Я понимаю, что я разбиваю цифры на отдельные переменные, чтобы преобразовать их из формата ASCII в их предполагаемое значение. Проблема заключается в том, чтобы вернуть эти цифры вместе.

Я знаю, что это, наверное, очень просто, но после долгого перерыва я снова собираю ардуинов, и я очень ржавый.

Вот мой код:

long batterymoment,num1,num2,answer;
int batterymass = 720;
int batteryposition;
boolean mySwitch = false;

void setup() {
  Serial.begin(9600);
  num1=0;
  num2=0;
  Serial.println("Enter battery position");
}

void loop() {
  while (Serial.available()){
   batteryposition = Serial.read();

   if(batteryposition>47 && batteryposition<58){  
     if(!mySwitch){
       num1=(num1*10)+(batteryposition-48);
     }else{
       num2=(num2*10)+(batteryposition-48);
     }
   }

   answer=num1+num2;
   batterymoment=answer*batterymass;
   Serial.print("Battery moment is: ");
   Serial.println(batterymoment);
   num1=0;
   num1=0;
   mySwitch=false;
  }
}

Благодарю.

0 2016-03-09T18:09:01+00:00 1
Dave X
Dave X
Редактировал вопрос 9-го марта 2016 в 6:20
Arduino
arduino-uno
serial
data-type
Dave X
9-го марта 2016 в 6:24
2016-03-09T18:24:14+00:00
Дополнительно
Источник
Редактировать
#56788715

Вы хотите повторить num1 = 0; в цикле()?

Он читает только один символ за цикл (), потому что цикл () происходит намного быстрее, чем Serial.available () и Serial.read ().

Выполняйте отчет и очистку, когда вы получаете какой-то разделитель/символ без цифр.

1
0
Похожие сообщества 3
ARDUINO [RU]
ARDUINO [RU]
675 пользователей
Обсуждение Электронного конструктора Arduino. Проблемы и их решения. Ссылки на интересные статьи и проекты. 🛠 IOT RU: @ProIOT 📶 Esp32 EN: @Proesp_en 📶 Esp32 RU: @Proesp8266 ⚙️ Arduino EN: @ProArduino_en 💻 ВК: https://vk.com/arduino_esp
Открыть telegram
ARDUINO_GODs
ARDUINO_GODs
365 пользователей
@digitalWrite
Открыть telegram
IOT [ARDUINO, ESP, DIY] [RU]
IOT [ARDUINO, ESP, DIY] [RU]
181 пользователей
Интернет Вещей (анг. Internet of Things, IOT) концепция вычислительной сети физических предметов ("вещей") ⚙️ Arduino RU: @ProArduino ⚙️ Arduino EN: @ProArduino_en 📶 esp32 RU: @Proesp8266 📶 esp32 EN: @Proesp_en 💻 ВК: https://vk.com/arduino_esp
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 1 день назад
2
Hideo Nakagawa
Зарегистрирован 2 дня назад
3
Sergiy Tytarenko
Зарегистрирован 4 дня назад
4
shoxrux azadov
Зарегистрирован 6 дней назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
arduino.stackexchange.com
под лицензией cc by-sa 3.0 с атрибуцией