Вывод динамических данных
- Войдите на сайт для отправки комментариев
Чт, 16/07/2015 - 22:35
Здравствуйте, каким образом реализовать вывод изменяющихся данных таких как скоростьизменения если у нас имеются данные с датчика например скорость изменения температуры вот у нас вывод самой температуры:
myGLCD.setFont(SmallFont);
myGLCD.printNumF(temp3 * 0.1, 2,CENTER, 10);
myGLCD.print("*C", RIGHT, 10);
нужно измерять скорость нагревания или остывания двигателя, то каким образом выводить скорость изменения температуры градусов/секунду ???
Здравствуйте, каким образом реализовать вывод изменяющихся данных таких как скоростьизменения если у нас имеются данные с датчика например скорость изменения температуры вот у нас вывод самой температуры:
myGLCD.setFont(SmallFont); myGLCD.printNumF(temp3 * 0.1, 2,CENTER, 10); myGLCD.print("*C", RIGHT, 10);нужно измерять скорость нагревания или остывания двигателя, то каким образом выводить скорость изменения температуры градусов/секунду ???
тоесть варианты ПОСЧИТАТЬ! не предлагать?
Предлагать любые варианты, так как я новичек и в математике нол то всякие алгоритмы мне полезны :)
Посчитать возможно я и могу но как это програмно грамотно задать чтоб выводилась скорость ...
и в математике нол
видимо не только в математике :)
http://ru.wikihow.com/%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D...
шарил бы во всем не обрашался бы :)
шарил бы во всем не обрашался бы :)
а програмно типа считается как то по особенному? типа там пл.сики не плюсики а знак деления вообще ужас какой страшный?
Может я неправильно сформулировал вопрос, но пока не могу понять как подставить в код формулу чтоб на экране выводились изминения гарадусов цельсия в секунду(велечина которая будет постоянно менятся) ведь у нас с датчика выходит только параметр температуры
как обычно. сначала считаете что нужно. а потом то что получилось выводите на экран...
Видимо таким как я форум не поможет, благодарю за попытку помоч ;)
Если я правильно понял вопрос:, то для того, чтобы вывести на эран изменение температуры в град/сек, нужно:
- измеритить температуру, запомнить в переменной,
- подождать секунду,
- снова измерить температуру,
- вычесть из нового значения значение, запомненное в переменной,
- вывести результат на экран.
Видимо таким как я форум не поможет, благодарю за попытку помоч ;)
Думай -> Гугли -> Спрашивай
Не ты первый, не ты последний.
:)
Если я правильно понял вопрос:, то для того, чтобы вывести на эран изменение температуры в град/сек, нужно:
- измеритить температуру, запомнить в переменной,
- подождать секунду,
- снова измерить температуру,
- вычесть из нового значения значение, запомненное в переменной,
- вывести результат на экран.
Да все правильно вы поняли, и если математически все понятно то как переменную которая запоминает параметр чтоб потом замер того же параметра измерять через секунду записать я не вкурсе потому и спрашиваю у тех кто с програмированием дружит больше чем я :)
int xz;
xz=текущая температура в градусах;
delay(1000);
xz=xz-текущая температура в градусах;
Вывести куда нужно значение xz.
Будет положительное или отрицательное изменение градусов за секунду.
Куда уж ещё подробнее объяснять????? :)
создай подпрограмму опроса датчика Temr раз в секунду , или два....
например - http://alxarduino.blogspot.ru/2013/09/BlinkAndPrintWithoutDelay.html
дальше - математика :
delay() - сразу НАХ !!!!!!!!!!
А почему многие так боятся функции delay ведь если устройство работает коректно то зачем заморачиватся тем что процессор лишнюю работу делает ???
А почему многие так боятся функции delay ведь если устройство работает коректно то зачем заморачиватся тем что процессор лишнюю работу делает ???
никто не боится delay.
проблема в том, что ситуация обстоит с точностью до наоборот - процессор НЕ выполняет лишней работы во время выполнения delay, фактически это состояние можно сравнить с полной остановкой процессора - датчики не опрашиваются, кнопки не нажимаются, светодиоды/ноги не дёргаются. всё стоит - у нас сиеста(delay ).
А почему многие так боятся функции delay ведь если устройство работает коректно то зачем заморачиватся тем что процессор лишнюю работу делает ???
это навязаная обществом боязнь, вдруг кто подумает что ты пишеш быдло код и все будут над тобой смеяться :)
А если в рабочем коде есть delay как его заменить или в некоторых случаях эта функция нужна ? например в моем термометре:
#include <LCD5110_Graph.h> #include <Wire.h> #include <BMP085.h> BMP085 dps = BMP085(); long temp3 = 0; LCD5110 myGLCD(2, 3, 4, 6, 5); extern unsigned char SmallFont[]; void setup() { myGLCD.InitLCD(63); // контраст экрана myGLCD.setFont(SmallFont); Wire.begin(); delay(2000); } void loop() { dps.getTemperature(&temp3); myGLCD.clrScr(); // Очистка экрана myGLCD.setFont(SmallFont); myGLCD.print("Temperature", CENTER, 10); myGLCD.printNumF(temp3 * 0.1, 2, 5, 36); myGLCD.print(" - C ", 20, 36); myGLCD.update(); // Вывод вместимого буфера на дисплей delay (100); // Задержка 0,1 с }А если в рабочем коде есть delay как его заменить или в некоторых случаях эта функция нужна ? например в моем термометре:
Если программа работает, ничего не трогай! (первейшая заповедь программиста)
В Вашем случае что с delay, что без нее - разницы нет. Слишком простая программа.
delay категорически противопоказана в случаях, когда требуется одновременно совершать несколько действий.
А если есть желание что-то оптимизировать, прежде всего уберите setFont из цикла - он уже установлен при инициализации.
PS. В Вашем случае для вывод приращения температуры:
25Благодарю :)
А что я не правильно записал
#include <LCD5110_Graph.h> #include <Wire.h> #include <BMP085.h> BMP085 dps = BMP085(); int temp4; long temp3 = 0; LCD5110 myGLCD(2, 3, 4, 6, 5); extern unsigned char SmallFont[]; void setup() { myGLCD.InitLCD(63); // контраст экрана myGLCD.setFont(SmallFont); Wire.begin(); dps.init(MODE_ULTRA_HIGHRES, 0, true); } void loop() { dps.getTemperature(&temp4); delay(1000); dps.getTemperature(&temp3); myGLCD.clrScr(); // Очистка экрана myGLCD.setFont(SmallFont); myGLCD.print("Temperature", CENTER, 10); myGLCD.printNumF((temp3-temp4) * 0.1, 2, 5, 36); myGLCD.update(); // Вывод вместимого буфера на дисплейтакая ошибка :note: no known conversion for argument 1 from 'int*' to 'int32_t* {aka long int*}'
Puhlyaviy похоже вы как и я только учитесь и не можете подсказать, ну ничего думаю знающие люди подскажут как решить мою задачу :)
Puhlyaviy похоже вы как и я только учитесь и не можете подсказать, ну ничего думаю знающие люди подскажут как решить мою задачу :)
а вы похоже просто халявщик! обычный такой халявщик, думающий что все ему что то должны, потому что он слишком ленив что бы напряч то место куда ест.
читайте
http://arduino.ru/Reference
Без живых примеров и общения мне во всяком случаи сложно разобратся во всем, ну ничего яж повторяюсь если вы не шарите как я то думаю нам помогут
Без живых примеров и общения мне во всяком случаи сложно разобратся во всем, ну ничего яж повторяюсь если вы не шарите как я то думаю нам помогут
тоесть все таки желаете потратить чьето время на решение ваших проблем и отделаться спасибо? интересная жизненая позиция.
вспоминается один старый дедок, ветеран. денег не было ему сдачу дать. так хотели вручить как подарок. ветеран же все таки.
но он пошел, где то разменял и принес оплатил, ибо он знает сколько времени занимает работа.
но вам видимо это не знакомо..
продолжайте в общем. интересно, когда вы последний раз что то сделал для незнакомого вам человека за просто так?
продолжайте в общем. интересно, когда вы последний раз что то сделал для незнакомого вам человека за просто так?
если просят то почему бы и не помоч? Но это к данной теме не относится
если просят то почему бы и не помоч?
отлично... мне нужно тут замостить 200 квадратных метров парковки около дома... там примерно около 8 кубометров глины нужно перевозить и камней.. поможешь?
у меня вот даже картинка есть для наглядности
А в каком вы городе живете, если очень надо то мог бы и помоч
А в каком вы городе живете, если очень надо то мог бы и помоч
тоесть вот прям бы приехал и бегал целый день с тачкой? за спасибо?
А в каком вы городе живете, если очень надо то мог бы и помоч
тоесть вот прям бы приехал и бегал целый день с тачкой? за спасибо?
В том то и дело что да если человек очень нуждается в чем то, спасибо возможно даже лучшая награда. Просто у нас у всех разные жизнинные позиции :)
Та лдно хватит уже ;) а то мы тему програмирования переведем в философские размышления скоро )))
Буду учить потихоньку )
longtemp4;жду тебя на беготню с тачкой. я живу в деревне и добирать до меня далеко. но это же ведь не проблема для тебя?Та лдно хватит уже ;) а то мы тему програмирования переведем в философские размышления скоро )))
любая тема есть филосовские размышления! даже процесс прочистки канализации
Большое спасибо Puhlyaviy :)))
А что я не правильно записал
#include <LCD5110_Graph.h> #include <Wire.h> #include <BMP085.h> BMP085 dps = BMP085(); int temp4; long temp3 = 0; LCD5110 myGLCD(2, 3, 4, 6, 5); extern unsigned char SmallFont[]; void setup() { myGLCD.InitLCD(63); // контраст экрана myGLCD.setFont(SmallFont); Wire.begin(); dps.init(MODE_ULTRA_HIGHRES, 0, true); } void loop() { dps.getTemperature(&temp4); delay(1000); dps.getTemperature(&temp3); myGLCD.clrScr(); // Очистка экрана myGLCD.setFont(SmallFont); myGLCD.print("Temperature", CENTER, 10); myGLCD.printNumF((temp3-temp4) * 0.1, 2, 5, 36); myGLCD.update(); // Вывод вместимого буфера на дисплейтакая ошибка :note: no known conversion for argument 1 from 'int*' to 'int32_t* {aka long int*}'
Замените тип temp4 на тот же, что и у temp3, т.е. на long.
Спасибо все заработало;) теперь разбераюсь как другие данные измерять чтоб динамично выводились, так как столкнулся с тем о чем писали выше что у нас в проге delay(1000); тормозит вывод данных на 1секунду, а другие данные нужно измерять как минимум чтоб делай был 100. То теперь milis() пытаюсь понять, эсли че подскажите где копать по данному вопросу чтоб доходчиво обяснялось:)
Сначала всё прочитать, потом всё выводить.
А с помощю milis можно решить такую задачу: если давление на протяжении определенного времени (10минут) меняется на 10 гектопскалей то ...
if (Pressure / 100 ...протяжонность времени... стает болше или меньше .. данного давления )
{виполнение нужного действия}
А с помощю milis можно решить такую задачу: если давление на протяжении определенного времени (10минут) меняется на 10 гектопскалей то ...
if (Pressure / 100 ...протяжонность времени... стает болше или меньше .. данного давления )
{виполнение нужного действия}
а вы можете эту задачу решить при помощи наручных часов и карандашика решить?
миллис это своего рода ваши наручние часы... они тикают тикают
можно, но как в миллис задавать нужное нам количество времени? в delay(1000) понятно что 1000 это 1 секунда а в милис еще не разобрался
можно, но как в миллис задавать нужное нам количество времени? в delay(1000) понятно что 1000 это 1 секунда а в милис еще не разобрался
вернемся к моему вопросы. вот у вас часы со стрелками. листик и карандашик.. как вы задаете своим часам нужное время?
я понял что опять ошибся в понимании, ведь часы идут и мы можем только смотреть на время а не задавать
А с помощю milis можно решить такую задачу: если давление на протяжении определенного времени (10минут) меняется на 10 гектопскалей то ...
if (Pressure / 100 ...протяжонность времени... стает болше или меньше .. данного давления )
{виполнение нужного действия}
сделай на миллис() опрос датчика каждые 10 мин
две переменные - OldPress и CurPress
и сравнивай их каждые 10 мин на предмет изменения на 10 HPa
миллисс() - заменит наручные часы , две переменных - лист бумаги и карандаш :)
я понял что опять ошибся в понимании, ведь часы идут и мы можем только смотреть на время а не задавать
угу часы идут... но у нас есть листик и карандашик.. мы можем записывать там время а потом смотреть на текущее время и сверять.. а они тикают и тикают...
сделай на миллис() опрос датчика каждые 10 мин
две переменные - OldPress и CurPress
и сравнивай их каждые 10 мин на предмет изменения на 10 HPa
миллисс() - заменит наручные часы , две переменных - лист бумаги и карандаш :)
ты вообще не впиливаешь насколько он далек что бы понять твои обьяснения..
миллисс() - это часы
варим яйца , запоминаем время по часам - 23:51
занимаемся своими делами и каждую минуту ( например ) смотрим на часы и сравниваем ТекВремя-ЗапомВремя>7 мин ?
нет ? на строку ваше
дат ? яйца сварились :)
:)
я понял что опять ошибся в понимании, ведь часы идут и мы можем только смотреть на время а не задавать
аха , но ничто не мешает нам запоминать время по часам которые всё время идут !
сделай на миллис() опрос датчика каждые 10 мин
две переменные - OldPress и CurPress
и сравнивай их каждые 10 мин на предмет изменения на 10 HPa
миллисс() - заменит наручные часы , две переменных - лист бумаги и карандаш :)
ты вообще не впиливаешь насколько он далек что бы понять твои обьяснения..
мне кажется что в посте #47 улыбка вовсе не дауновская :)
мне кажется что в посте #47 улыбка вовсе не дауновская :)
угу, хитрожопая улыбка... я его с утра жду. камни возить. а он делает вид что забыл. а у меня спина больная.