Как суммировать данные в нужном диапазоне
- Войдите на сайт для отправки комментариев
Сб, 16/12/2017 - 19:43
Всем привет. Никак не могу придумать как написать программу, которая суммировала бы данные напряжения в диапазоне от 70 до 40 градусов. Идея в том чтобы нагреть до 70 градусов предмет, и измерить напряжения остывания суммируя каждое значение напряжения. И при значении 40 градусов вывести результат суммы напряжений. Спасибо.
#include <SPI.h> #include "Adafruit_MAX31855.h" // подключаем библиотеку термопары #include <Wire.h> // библиотека для работы I2C #include <Adafruit_ADS1015.h> // подключаем библиотеку АЦП #define MAXDO 3 #define MAXCS 4 #define MAXCLK 5 Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO); Adafruit_ADS1115 ads(0x48); // инициализируем микросхему, и говорим что она подключена по адресу 0x48 float sumU = 0.0; void setup() { Serial.begin(9600); ads.begin(); //включаем АЦП // Выбираем коэфициент усиления ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.03125mV } void loop() { double c = thermocouple.readCelsius(); //считаем температуру Serial.println(c); int16_t results; //на выходе преобразования АЦП мы получаем 16-разрядное знаковое целое float multiplier = 0.03125F; //Входной диапазон АЦП (усиления) 1x gain +/- 4.096V 1 bit = 0.125mV results = ads.readADC_Differential_0_1(); //Измеряем напряжение Serial.println((results * multiplier),5); // выводим в монитор значения напряжения if (c==60) ??????? if else (c==40) { Serial.println(sumU); } }
Вы сначала задачу как следует сформулируйте. Вы понимаете, что эта Ваша "сумма", как Вы её сейчас описали, зависит от количества измерений? И зачем она Вам такая? Возможно Вам нужно либо измерение напряжения при определённых значениях температуры (иначе говоря, известное количество измерений в заданном интервале температур)? Или измерение через определённые промежутки времени? Или что-то ещё? А так, в чём проблема-то? sumU = sumU + results; (Ну или + results * multiplier, что там у Вас напряжение, я не вникал)
float multiplier = 0.03125F закиньте в объявления, зачем её каждый виток обновлять...
Если нужно выполнить процедуру измерения только при достижении 70 град. и последующем остывании до 40, то заведите флаг, который опредеяет, достигнута ли стартовая точка.
OlegK Большое спасибо за флажок то что нужно. Всё получилось как хотел.