Форум сайта DelaySam.ru - сайта для домашних мастеров, строителей и дачников.
Форум для домашних мастеров и дачников

Парадоксы погоды и утепления дачного дома... Сравнение температур. Анемометр на микроконтроллере.

[Страниц (5): « 1 2 [3] 4 5 » ]

| Новая тема | Ответить | | Поиск в теме | Версия для печати |
 Описание: Можно ли сделать дом теплоаккумулятором. Как измерять скорость ветра
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

старый пишет:
а чтобы сесть с гостями за стол, надо выпить- "сим-сим, откройся!",

Ну дядя... тут и закрывать незачем... Вон у меня на аватаре - это я на кухне сижу.. Все кто приходят - нижняя челюсть до пола - "ну ни хрена у тебя бар... во всю стенку... ". Я - "ребята, год в "автономке" запросто продержусь.. А там и новый урожай..."
Чего там прятать? Всего то литров 300 всякого разного...
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 25 Февраля, 2010 - 19:40:55
старый


постоянная прописка
Откуда: Нижний Новгород
Покинул форум

  Ответить с цитированием Цитирование
Поздно, бар готов. Опять же, рюмки-стаканы не пылятся.
В начало Всего записей: 170   Дата рег-ции: Дек. 2009   Отправлено: 25 Февраля, 2010 - 19:56:27
Гость


Прекратил участие в работе форума

  Ответить с цитированием Цитирование

Константин пишет:
По сути - нужен примитивный регистратор - сепаратор количества импульсов...
Вот не нашелся человек, который ... сделал бы такую феньку...


Константин, в принципе не вижу препятствий, кроме лени... и иногда занятости- но это у меня непериодически бывает...
AVRок у меня дома много- как-то прикупил кучку- так было дешевле.
Программатор есть, система программирования установлена...
Сформулируйте задачу, решим совместно...
Так лучше в том плане, что сам будешь лениться- а так все-таки обещал товарищу...
Но за Вами источник импульсов и все "тарировки". Ну и первоначальное ТЗ (согласуем).
Про деньги не говорим. Развлекаемся.
В начало Отправлено: 04 Марта, 2010 - 14:26:54
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Burrdozel пишет:
Сформулируйте задачу, решим совместно...

Уф... уже устал, но ладно, "сформулирую" еще раз, 27-й...

Анемометр представляет собой шаговый моторчик, который генерит синусоиду.
Частота как то зависит от скорости ветра (не факт, что линейно...), но как то зависит. быстрее ветер - больше частота...
Мы ее можем сделать меандром или прямоугольным потоком с какой то скважностью, поделить и пр...
Это уже как бы НЕ задача микроконтроллера...
Задача МК такая...
На его вход поступают импульсы прямоугольные переменной частоты.
МК имеет 15-20-30 ячеек памяти (счетчиков) , желательно 3-х байтных.
МК подсчитывает число импульсов за 3-5 секунд (каждые 3-5 секунд) и в соответствии с полученным числом делает инкремент соответствующего счетчика.
Например: разбиваем "диапазоны" счетчиков через 50 (условно).
т.е. 0-50-100-150-200-...... 950-1000
1) от 0 до 50
2) 51 - 100
3) 101 - 150
4) 151 - 200
5) 201 - 250
....
20) 951 - 1000


Если мы за время замера (3-5 сек) насчитали 183 импульса, то счетчик №4 делает операцию: Содержимое = содержимое + 1
Т.е. инкремент счетчика...

Ну и соответственно, мы должны иметь возможность увидеть возможность состояния счетчиков (индикатор или слив на комп).

Вот собственно и все...



Burrdozel пишет:
Но за Вами источник импульсов и все "тарировки".
Естественно... Но поскольку моторчики как правило "случайные" и могут за 1 оборот генерить и 50 импульсов и 250... И пропеллеры тоже всякие могут быть, с разной быстроходностью и пр.
А заморачиваться с делителями не хочется, разве что в особом положении...
То проще наверное "делить" путем предустановки времени отсчета.
Т.е. "медленные моторчики пусть считают каждые 10 секунд, а быстрые - по 1 (или 2-3-5...) Это и будет, собственно делитель частоты.

Ну а потом уже обработка результатов на основе тарировки - это дело особое. Главное получить эту самую гистограмму расклада ветра по "счетчикам". А уж после на основе тарировки - станет ясно, какие ветра и скоько дуют.

Да, для тарировки желателен режим режим непосредственного показа числа импульсов. Т.е. тоже самое время отсчета, но показывалось, сколько импульсов за этот период насчиталось...
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 04 Марта, 2010 - 15:40:13
Гость


Прекратил участие в работе форума

  Ответить с цитированием Цитирование
Все это больше похоже на ответ, чем на задачу
К ТЗ в моем понимании относится только последняя фраза.
Давайте копать в этом направлении. Что Вы хотите видеть, какой функциональностью должен обладать "приборчик".

Кстати, синусоида или меандр - думаю, все равно. Лишь бы дребезга не было.
В начало Отправлено: 04 Марта, 2010 - 17:32:44
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Burrdozel пишет:
Все это больше похоже на ответ, чем на задачу

Я написал "что нам надо".
А надо считать количество импульсов за некоторое время и "двигать костяшку" на нужной проволочке, чей номер совпал номером диапазона, куда попало полученное при измерении число.
Блок-схема программы выглядет так (лень рисовать, напишу словами)

0. Задать время отсчета (в секундах или мс...)
(т.е. время, в течении которого будут считаться импульсы каждый отсчет)

1. Начало отсчета времени
Считаем импульсы на входе. (как там на МК это сделано - не знаю, циклом или какая то фишка есть...)
Выводим их число на индикатор
Конец времени...

2. Число импульсов больше 50?
Нет - Яч.Пам. №1= ЯП№1+1 и на п. 1
Да - идем дальше

3. Число импульсов больше 100?
Нет - Яч. Пам. №2 = ЯП№2+1 и на п. 1
Да - идем дальше

.......

21. Число импульсов больше 1000
Нет - ЯП№20 = ЯП№20 + 1 и на п. 1
Да - Тут мы никогда не будем...

(поскольку мы берем скорости ветра с охрененым запасом, дальше 15-го сравнения не пройдет никогда - скорее разрушится анемометр).

Ну, естественно обнуление и вывод по очереди всех счетчиков по команде или кнопке... и пр радости.
Но все примитивно... Больше сервиса - больше ошибок...


В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 04 Марта, 2010 - 19:19:31
Olegus


постоянная прописка
Откуда: Москва
Покинул форум

  Ответить с цитированием Цитирование
Я тут потихоньку тоже начал заниматься анемометром. Набросал алгоритмы и завтра забираю в чип и дипе все детальки (даже корпус модный заказал ). Нарисовались некоторые технические сложности, но пока все решаемые.
Действительно, ячейки для сумм должны быть трехбайтные и с учетом всяких констант памяти ПЗУ PICа не хватает. Пришлось вводить внешнюю ПЗУ.
Ячейки для памяти количества импульсов за 5 сек думаю хватит 2 байтов (65535 импульсов).
На работе валялся старый матричный принтер - вытащил из него 2 шаговых двигателя - попробую покрутить их посмотреть что там осциллограф покажет.
В начало Всего записей: 197   Дата рег-ции: Дек. 2009   Отправлено: 05 Марта, 2010 - 02:26:09
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Olegus пишет:
ячейки для сумм должны быть трехбайтные и с учетом всяких констант памяти ПЗУ PICа не хватает.

Как много не хватает?
Если замер делать с усреднением 5 секунд, то 2-х байтной ячейки хватит
на 90 часов, если писать только в 1 ячейку. Но поскольку ветер "пляшет" - реально м.б. часов 200 (таких устойчивых ровных ветров у нас нет...)
Если увеличить усреднение до 10 сек. То соответственно и время накопления увеличится до 400-500 часов.
На заведомо известные средние ветра (3-5 м) можно сделать 3-х байтные...

Конечно внешняя ПЗУ решает все проблемы. Копить может годы...


Olegus пишет:
за 5 сек думаю хватит 2 байтов

Не хватит... За час 3600/5 = 720 замеров. 2 байта - 91 час всего... А 3 байта - уже 23300 (уже 3 месяца...).
Хотя, конечно если снимать показания хотя бы раз в неделю - то хватит и 2...

Вообще говоря, 20 - это с офигенным запасом взято, на случай штормов, когда крыши сносит.
Реально - достаточно 10-15...
Во-первых - совсем слабые ветра (до 3 м/с) нас не интересуют. Они не несут энергии сколь-нибудь значимой и даже ветряк не стронут. Это считается штилем.
Ветра сильнее 15 метров - надо прятаться... Даже 10-12 - редко-редко...
Поэтому если штатной памяти не хватает "чуть-чуть", то можно скорректировать ТЗ...




Olegus пишет:
что там осциллограф покажет.
Синусоиду...
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 05 Марта, 2010 - 10:16:24
Olegus


постоянная прописка
Откуда: Москва
Покинул форум

  Ответить с цитированием Цитирование
Техзадание менять не нужно. Использовать внешнюю ПЗУ все равно придется.
У PICa 65 байт ПЗУ. А у нас на каждую скорость нужно хранить:
1. Значение скорости - 1 байт (00,0 - 25,5),
2. Количество импульсов за 5 сек - 2 байта (0-65535)
3. Итоговая сумма (по максимуму +1 за каждые 5 сек) - 3 байта (0-16.7 млн)
Итого: 6*15=90 байт.

Я уже купил внешнюю ПЗУ 2048 байт (протокол I2C) - 30 руб., так что это не очень обременительно, да и усложнение программы небольшое.

В начало Всего записей: 197   Дата рег-ции: Дек. 2009   Отправлено: 05 Марта, 2010 - 17:42:10
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Olegus пишет:
ПЗУ 2048 байт

тогда оно конешно...
Тогда лучше уж по 4 байта на каждую скорость... 1 байт - значение и 3 - счетчик.
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 05 Марта, 2010 - 17:45:29
Гость


Прекратил участие в работе форума

  Ответить с цитированием Цитирование
Ну примерно все правильно...
Только есть все-таки принципиальные моменты (не отраженные в ТЗ)

1. Отсчеты времени штиля тоже надо считать. Иначе не получите достоверную картину распределения ветра при обработке сведений. Ну или надо будет обрабатывать врукопашную: считать общее количество учтенных интервалов, общее затраченное время выразить в 5-сек интервалах (по журналу, который велся параллельно неленивым Константином), вычитать первое из второго, с некоторой долей вероятности считать это время как время штиля.
Ну или, как вариант:
2. Иметь реальное время в системе- с датой, временем и записывать (суммировать) длительность периодов (хотя бы в количестве тех же 5-секундных интервалов), когда был штиль.

Остальное понятно-

Константин пишет:
Больше сервиса - больше ошибок...


Но Вы должны написать в ТЗ самое главное: что Вы захотите просматривать текущие значения, не останавливая измерений.


(Добавление)

Olegus пишет:
1. Значение скорости - 1 байт (00,0 - 25,5),

А это зачем? Вы что, не знаете, в какой карман деньги кладете? Тем более что сама цифра не имеет вообще никакого значения, она очень условная.

Olegus пишет:
2. Количество импульсов за 5 сек - 2 байта (0-65535)

И это не надо в каждой записи. Это же просто цифра, которая превращается в инкремент того или другого счетчика (одного из 21). Она одна, общая для всех.

3 байта- это максимальное число 16.777.215.
За год будет 5-секундных интервалов
12*60*24*365=6.307.200

В каждые три байта помещается весь период наблюдений за год. С запасом.
Итого надо 3*21 = 63 байта на ВСЮ информацию, включая штиль, и если крайне необходимо использовать ПЗУ для сиюминутных подсчетов, еще три байта. Всего 66.
Действительно, не хватает 1 байта. Надо попросить Константина изменить ТЗ и сделать не 21 интервал скорости ветра, а 20. Тогда Вы поместитесь в PIC.

Правильное ТЗ- половина успеха.

На AVRке на борту 512 байт ЭСППЗУ, а оперативные данные (текущие значения счетчика) прекрасно обработаются на регистрах.

А еще есть встроенный компаратор и 16-битный счетчик... Так что все вообще может быть сделано на одном корпусе.
Правда, я думаю, что предварительный формирователь-ограничитель импульсов все-таки нужен. И, возможно, простой входной делитель количества импульсов на простом логическом счетчике - чтобы не переписывать каждый раз программу, а просто поделить количество входных импульсов на два или четыре... Простым переставлением перемычки.


(Добавление)
И все-таки, Константин, прикиньте, сколько импульсов будет в реале при ветре 1м/с? 2? 3? и т.д.

Я считаю, что до тысяч импульсов там дело не дойдет.

Радиус вертушки анемометра сколько? сантиметров 20? 0,2м, значит.

При скорости ветра 10 м/с вертушка движется, допустим (знаю, что отстает, но считаем максимум), с той же скоростью (по окружности).
Значит, за секунду она совершит 10/(2*Пи*0,2м) = 7,96 оборотов.
Это сколько импульсов? Примерно 8 (или по количеству полюсов шагового двигателя в 20-30 раз больше)? То есть 160-240? Тогда за пять секунд - 800-1200 максимум. Это для свежего ветра.
Для более слабого- в разы меньше, да еще учесть, что скорость анемометра "несинхронная" со скоростью ветра... То есть отстает- и чем слабее ветер- тем больше отстает...

(Отредактировано автором: 09 Марта, 2010 - 14:51:54)
В начало Отправлено: 09 Марта, 2010 - 14:21:37
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Burrdozel пишет:
1. Отсчеты времени штиля тоже надо считать. Иначе не получите достоверную картину

А никто и не спорит, что надо считать.
Просто за штиль принимается не "вот прямо что б точно ноль", а и очень слабый ветер. Например до 2-х м/с.


Burrdozel пишет:
Вы захотите просматривать текущие значения, не останавливая измерений.

Не захочу... Если записи за "месяц" - потеря статистики за 3 минуты - не потеря...


Burrdozel пишет:
Olegus пишет:1. Значение скорости - 1 байт (00,0 - 25,5),
А это зачем?
Вот именно... Значение скорости - это НОМЕР ячейки памяти. Намеряли скорость - прибавили "1" в ячейку, чей номер совпал со скоростью...


Burrdozel пишет:
Надо попросить Константина изменить ТЗ и сделать не 21 интервал скорости ветра, а 20.

Ребята, да хватит вообще 15-ти!!! За глаза хватит!!!
3 х 15 = 45 байт!!!


Burrdozel пишет:
что предварительный формирователь-ограничитель импульсов все-таки нужен. И, возможно, простой входной делитель количества импульсов на простом логическом счетчике - чтобы не переписывать каждый раз программу, а просто поделить количество входных импульсов на два или четыре...

да не вопрос вообще...
Правда проще всего "делить" изменением времени замера. Брать не 5 секунд, а 2, или 10... Чем там оно задается?
Но и аппаратно счетчик-делитель хоть до 16 поставить - тоже вобщем не проблема.


Burrdozel пишет:
И все-таки, Константин, прикиньте, сколько импульсов будет в реале при ветре 1м/с? 2? 3? и т.д.

Это зависит от используемого моторчика и пропеллера (вертушки). Есть моторчики с 200 полюсами (он на 1 оборот 200 периодов синусоиды генерит, есть и 100 и 50...
А сколько конкретно - хрен прескажешь...
Но скорее всего, от делителя (и серьезного) на входе - не отвертеться.
Но это не проблема.

Burrdozel пишет:
Я считаю, что до тысяч импульсов там дело не дойдет.

Ну за 5 секунд запросто может дойти... Ну ладно, поделим. Будем считать, что не дойдет.
САМИ Установите ограничения - "не более 255 (ХХХ) импульсов за период измерения. Или меняйте моторчик... "


Burrdozel пишет:
Радиус вертушки анемометра сколько?

Это вообще никакого значения не имеет...
Если под подсчет импульсов (переменную) 2 байта выделить - подойдет вообще любой моторчик для самого сильного ветра... 65000 импульсов.
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 09 Марта, 2010 - 15:51:07
Гость


Прекратил участие в работе форума

  Ответить с цитированием Цитирование

Константин пишет:
45 байт!!!

И я к такому же мнению пришел, просто тихонько подводил Вас к ответу...


Константин пишет:
Но и аппаратно счетчик-делитель хоть до 16 поставить - тоже вобщем не проблема.

К тому же он будет формировать качественные импульсы. Чтобы микроконтроллер на сжечь при сильном ветре .


Константин пишет:
под подсчет импульсов (переменную) 2 байта выделить

Это не проблема, у меня как раз в МК счетчик двухбайтный, считает импульсы со входа.


Константин пишет:
за штиль принимается не "вот прямо что б точно ноль", а и очень слабый ветер. Например до 2-х м/с.

Это понятно, интервалы. 0-2, 2-3, 3-4, 4-5, 5-6, 6-7, 7-8,...,19-20. Но чтобы их было 15!




Константин пишет:
Ну за 5 секунд запросто может дойти... Ну ладно, поделим. Будем считать, что не дойдет.
САМИ Установите ограничения - "не более 255 (ХХХ) импульсов за период измерения. Или меняйте моторчик... "

Да все можно сделать. Например, настройки границ интервалов (в импульсах). Тогда в ТЗ добавляется настроечный режим, в котором вводятся просто цифры с количеством импульсов, они же потом будут границами. Их будет 15 чисел.
Конечно, лучше бы их значение было не более 255, чтобы работать с однобайтными операциями. Но это не проблема, двухбайтные тоже не сильно затормозят работу. При тактовой частоте 8 или 16 МГц .

Итак, складывается ТЗ:
Считаем импульсы. При попадании в определенный интервал инкрементируем соответствующий трехбайтный счетчик.
Сервис:
1. Назначение интервалов.
2. Просмотр значений трехбайтных счетчиков (еще надо придумать, как эти значения показывать- три байта в шестнадцатиричном виде это некрасиво...а в десятичном сильно длинно...)
3. Режим (кнопка) удаления результатов
4. Результаты не должны удаляться при сбое питания, останове работы,
перезапуске счета, появлении питания.
5.При перезапуске питания счет должен продолжаться.

Как-то так?

(Отредактировано автором: 09 Марта, 2010 - 16:27:53)
В начало Отправлено: 09 Марта, 2010 - 16:23:10
Константин



Основоположник
Откуда: деревня в рег.№33
Покинул форум

  Ответить с цитированием Цитирование

Burrdozel пишет:
ихонько подводил Вас к ответу...

Что я, лошадь, что ли, что б меня подводить... Что 15, что 20 - цифры из пальца. Про 15 я уже раз пять писал, что уже ховацца надо на 15, а не ветер мерять...
Burrdozel пишет:
Чтобы микроконтроллер на сжечь при сильном ветре .

Шаговик сразу начинает качественные импульсы гнать и амплитуда их практически не меняется от скорости. Синусоида там - конфетка. а не синусоида... Так что поставить диод и транзистор в позе "ключика" - будет меандр - заглядение...
Burrdozel пишет:
меня как раз в МК счетчик двухбайтный, считает импульсы со входа.

Ну так это пестня. а не МК...

Burrdozel пишет:
0-2, 2-3, 3-4, 4-5, 5-6

Скорости - да. Ну если импульсов море, то выглядеть это будет
0-370, 371 - 620, 621 - 850. и т.д.
Так как зависимость "кол-во импульсов в интервале измерения - скорость ветра" будет нелинейная, 100% и надо бы кол-во импульсов - границ интервалов как то задавать при настройке и тарировке анемометра... Что бы хотя мы "метровой" точности добиться...
Burrdozel пишет:
Да все можно сделать. Например, настройки границ интервалов (в импульсах). Тогда в ТЗ добавляется настроечный режим, в котором вводятся просто цифры с количеством импульсов, они же потом будут границами. Их будет 15 чисел.
Вот ну прямо совершенно верно!!!
И этого - достаточно. Эти 15 чисел зададут и диапазон измерений, и точность.
Burrdozel пишет:
При тактовой частоте 8 или 16 МГц .


Давайте 8 Мгц. У меня кварцев на 8 Мгц - мешок. Если что то родиться - буду раздавать желающим. А то и деть некуда и выкинуть жалко...



Цитата:
Считаем импульсы в течении определенного интервала времени. Желательно его тоже как то задавать. Это будет и делителем и позволит точность устанавливать

При попадании в определенный интервал, инкрементируем соответствующий трехбайтный счетчик.

Сервис:
0. Назначение времени, в течении которого считаются импульсы.
1. Назначение интервалов.
2. Просмотр значений трехбайтных счетчиков (еще надо придумать, как эти значения показывать- три байта в шестнадцатиричном виде это некрасиво...а в десятичном сильно длинно...)
Это не имеет значения. Раз в год можно и 16-тиричичную кракозябру в десятичную перевести. Ручками... На край - программ перевода в сети есть наверное... Лишь бы хоть что то было...
3. Режим (кнопка) удаления результатов.
"Ресет" - это святое...
4. Результаты не должны удаляться при сбое питания, останове работы,
перезапуске счета, появлении питания.

5.При перезапуске питания счет должен продолжаться.

Как-то так?


Одобрям-с!
В начало Всего записей: 13871   Дата рег-ции: Янв. 2008   Отправлено: 09 Марта, 2010 - 17:54:20
 
Форум сайта DelaySam.ru - сайта для домашних мастеров, строителей и дачников. » Разное (болталки и спам) » Разное » Парадоксы погоды и утепления дачного дома... Сравнение температур. Анемометр на микроконтроллере. [Страниц (5): « 1 2 [3] 4 5 » ]

Внимание! Представленный на сайте материал предназначен исключительно для частного просмотра. Авторские права и права использования защищены Законами РФ. Использование всех материалов сайта в любых коммерческих целях без согласования с правообладателями запрещено и будет преследоваться по Закону. Запрещено копирования материалов этого сайта на WEB-страницы с рекламой, в печатные издания с рекламой, в любые платные печатные издания и другое коммерческое использование, с целью получения любой коммерческой выгоды от скопированного материала (как то контекстная реклама, использование описаний, отзывов, сообщений в форуме и т.д.). В противном случае вы будете подвергнуты преследованию по Законам РФ, без предварительного уведомления и переговоров.
По вопросам использования материалов и размещения рекламы обращайтесь к .





Powered by ExBB ExBB Full Mods 0.1.4 by TvoyWeb.ru Original Style created by Daemon.XP Teg filter
[ Script Execution time: 0.2038 ]   [ Gzip Disabled ]