не изменяется выходная величина при изменении входной
- Войдите на сайт для отправки комментариев
Втр, 17/02/2015 - 10:19
Не могу понять что не так? Меняя значение "ust" потенциометром, значение "y" вроде должно меняться, но этого не происходит. Прошу помощи разобраться в данной ситуации.
#include <OneWire.h>
OneWire ds(10);
void setup() {
Serial.begin(9600);
}
void loop()
{
//инициализация уставки температуры:
int ust = analogRead(0);
ust = map(ust, 0, 1023, 0, 40);
Serial.print("ust=");
Serial.println(ust);
// инициализация датчика температуры:
byte data[2];
ds.reset();
ds.write(0xCC);
ds.write(0x44);
delay(750);
ds.reset();
ds.write(0xCC);
ds.write(0xBE);
data[0] = ds.read();
data[1] = ds.read();
int Temp = (data[1]<< 8)+data[0];
Temp = Temp>>4;
Serial.print("temp=");
Serial.println(Temp);
// расчет выходной мощности:
int y= ust/Temp;
Serial.print("nagrev ");
Serial.print(Temp);
Serial.println("% ");
Serial.println(" ");
delay(2000);
}
а этот кусок кода работает?
и правильно вставляй код
А как видите что не меняется? Y нигде не используется и нигде не выводится
Когда выводит на экран уставку температуры. Что значит правильно вставляй код? Можно подробнее? Насколько я понимаю программа должна делить значение "ust" на значение "temp" и выводить на экран результат, как значение "nagrev". Но на деле при изменении "ust" не происходит ничего, а при изменении значения "temp" прямо пропорционально изменяется "nagrev".
Вы делите ust на Temp и вывыодите Temp... Y вообще не при делах. И еще при делении целого на целое не всегда получите целое
Точно!!! Вот где я ошибся )) Спасибо за помощь!
Может подскажешь ещё один момент, при снижении температуры ниже уставки, temp<ust, на у появляется 0, а при достижении температуры уставки, на выходе у появляется 1.
коди изменил на :
float y= (float)ust/(float)Temp;
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Спасибо! Помогло. И за ссылку спасибо. Теперь буду правильно оформлять вопросы ))