C++:
if (Serial.available() > 0) {
char in_data = Serial.read();
if(in_data == '1'){
num = 0;
for(pin = 10;pin>1;pin--){
if(digitalRead(pin)==1)
num = num + pow(2,10-pin); // num - float глобальная
}
Serial.print("your Number is: ");
Serial.println(round(num));// так работает как надо
// Serial.println((int)num); так не правильно не понимаю почему и просто (num) тоже не правильно
}
}
первый раз я использовал int num. и программа выдавала на двоичный код "100" неверное число 3, а должно 4. я вообще ничего не понял и вывел через сриал принт это число. выдало 4.0 то есть все ок., но при переходе с типа float в тип int я терял единицу???