Вопросы по CVAVR.
Модератор: koolhatcker
Вопросы по CVAVR.
Вопрос первый, собственно касается библиотеки на термодатчик DS1820.
Назрела необходимость изготовить многоточечный термометр. При параллельном включении датчиков в некий массив записываются коды датчиков. Так вот, хотелось-бы узнать в какой последовательности эти датчики "прописываются". Например в нулевую ячейку массива записывается датчик с наименьшим кодом, в первую ячейку со следующим меньшим кодом и так по возрастающей ?! Или как-то по другому.
Назрела необходимость изготовить многоточечный термометр. При параллельном включении датчиков в некий массив записываются коды датчиков. Так вот, хотелось-бы узнать в какой последовательности эти датчики "прописываются". Например в нулевую ячейку массива записывается датчик с наименьшим кодом, в первую ячейку со следующим меньшим кодом и так по возрастающей ?! Или как-то по другому.
Re: Вопросы по CVAVR.
Чтобы облегчить работу с датчиками решил подключать их на индивидуальные пины. Правда это требует замены "камня" с атмери8 на атмегу16.
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Re: Вопросы по CVAVR.
ATM67, у производителя всё расписано... http://pdfserv.maxim-ic.com/en/an/AN187.pdf
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
- Serjik
- Станкостроитель
- Сообщения: 757
- Зарегистрирован: 05 янв 2010, 01:00
- Откуда: Волгоград
- Контактная информация:
Re: Вопросы по CVAVR.
на самом деле удобнее и проще если все будет по однопроводной шине работать ... зачем каждый на свой пин? ну собрать ... если есть сомнения проверить адреса какие датчики какой номер, все равно на них сверху не написано... все равно определять какой куда. Не вижу смысла поменять местами в случае чего. В сети куча примеров для работы с несколькими датчиками.ATM67 писал(а):Так вот, хотелось-бы узнать в какой последовательности эти датчики "прописываются". Например в нулевую ячейку массива записывается датчик с наименьшим кодом, в первую ячейку со следующим меньшим кодом и так по возрастающей ?! Или как-то по другому.
Re: Вопросы по CVAVR.
Как датчики "прописываются" разобрался. Получается не очень удобно, например если перегорела одна лампочка в люстре и чтоб её заменить надо "перетусовать", (физически или программно) все лампочки для корректной работы этой люстры. Параллельное подключение оправданно в двух случаях, это экономия пинов камня или использования готовой библиотеки в CVAVR.Serjik писал(а):все равно определять какой куда. Не вижу смысла поменять местами в случае чего.
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Re: Вопросы по CVAVR.
ATM67, про люстру совсем ничего не понятно. Какая связь между лампочкой и датчиком? Схема есть?
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Re: Вопросы по CVAVR.
Про люстру... это я так, вольная трактовка проблемы которая мне не нравится.koolhatcker писал(а):ATM67, про люстру совсем ничего не понятно. Какая связь между лампочкой и датчиком? Схема есть?
А по существу, при параллельном подключении датчиков на один пин. Коды датчиков записываются в массив, от меньшего значения к большему, (может на оборот но это не важно). Далее контроллеру нужно "объяснить" какой датчик что контролирует, например при помощи указателей или переписывая код датчика куда надо. Естественно это можно делать и в "железе", датчик с наименьшим кодом отвечает за первую контролируемую точку , следующий за вторую и т.д.
Так вот если один из датчиков "сдохнет", (вот здесь аналогия с лампочкой из люстры), нужно всю операцию по "переселению" датчиков повторять.
ATM67 писал(а):...Получается не очень удобно, например если перегорела одна лампочка в люстре и чтоб её заменить надо "перетусовать", (физически или программно) все лампочки для корректной работы этой люстры...
- Serjik
- Станкостроитель
- Сообщения: 757
- Зарегистрирован: 05 янв 2010, 01:00
- Откуда: Волгоград
- Контактная информация:
Re: Вопросы по CVAVR.
задаю вопрос всегда всем. Какая-то конкретная задача в которой датчики дохнут как мухи? или это спортивный интерес? Из постановки задачи - решать можно по разному. если это конкретный случай можно и подобрать датчик и ... ну в общем-то трудно говорить не зная даже количество датчиков, расстояние до них условия размещения и т.п.ATM67 писал(а):Так вот если один из датчиков "сдохнет", (вот здесь аналогия с лампочкой из люстры), нужно всю операцию по "переселению" датчиков повторять.
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Re: Вопросы по CVAVR.
ATM67, если это какой-то пульт, то в него просится дисплей и клава. А дальше - подключайте каждый датчик к пульту через перемычку (джампер как на материнках) и не вижу проблем...
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Re: Вопросы по CVAVR.
Делаю твердотопливный котел. На производстве где арендуем помещение пока греемся "буржуйками". Есть желание прикрутить к новому котлу автоматику управления.
При ближайшем приближение требуется контроль шести точек температуры. Из них три точки это потребители, три контура отопления. Четвертый датчик температура дымогазов. Пятый температура котла подачи. Шестой температура котла обратки, возможно обратку контролировать не придется тогда этот датчик не понадобится.
Контроллер должен управлять четырьмя водяными насосами, три насоса потребителей и четвертый насос котла.
Далее управление дымососом и заслонкой первичного/вторичного воздуха, желательно по ПИД, но для меня это пока темный лес.
Три режима работы. Первый рабочий, на полную катушку. Второй дежурный, поддержание некоторой температуры в ночное время. Третий поддержание некой минимальной температуры, чтоб не разморозить систему отопления например при длительных выходных, (Новый Год! ). Подключение электро котла.
Ну и естественно контроль за уровнем теплоносителя и различными "алармами".
Расстояние до датчиков при измерений температур в помещениях от двух до тридцати метров. Если контролировать температуру в контурах теплоносителя, то все датчики в пределах котельни, 2 - 3 метра.
При ближайшем приближение требуется контроль шести точек температуры. Из них три точки это потребители, три контура отопления. Четвертый датчик температура дымогазов. Пятый температура котла подачи. Шестой температура котла обратки, возможно обратку контролировать не придется тогда этот датчик не понадобится.
Контроллер должен управлять четырьмя водяными насосами, три насоса потребителей и четвертый насос котла.
Далее управление дымососом и заслонкой первичного/вторичного воздуха, желательно по ПИД, но для меня это пока темный лес.
Три режима работы. Первый рабочий, на полную катушку. Второй дежурный, поддержание некоторой температуры в ночное время. Третий поддержание некой минимальной температуры, чтоб не разморозить систему отопления например при длительных выходных, (Новый Год! ). Подключение электро котла.
Ну и естественно контроль за уровнем теплоносителя и различными "алармами".
Расстояние до датчиков при измерений температур в помещениях от двух до тридцати метров. Если контролировать температуру в контурах теплоносителя, то все датчики в пределах котельни, 2 - 3 метра.
-
- Станкостроитель
- Сообщения: 1696
- Зарегистрирован: 05 сен 2010, 00:00
- Имя: Михаил
- Откуда: Конотоп=>Запорожье=> Харьков, Украина
- Контактная информация:
Re: Вопросы по CVAVR.
ПИД думаю что не нужен, потому как система реально сильно инерционная. я про подобные вопросы думаю (тоже автоматику к твердотопливнику мечтаю сделать). так реально время между реагированиями будет не меньше пары-пяти минут пока вода по контуру проскочит, поэтому пропорционального компонента будет достаточно думаю... во всяком случае у себя так хочу сделать. но за программирование еще только сажусь
Re: Вопросы по CVAVR.
Вот это меня тоже смущает.aegis писал(а):ПИД думаю что не нужен, потому как система реально сильно инерционная...
Здесь "http://www.forumhouse.ru/threads/251616/" обсуждается автоматика. Пока выявляется истина, програмлю модули отвечающие за переферию. "Математический" модуль пока осмысливается.
-
- Станкостроитель
- Сообщения: 381
- Зарегистрирован: 26 фев 2012, 10:41
- Имя: Роман
- Откуда: Печора
- Контактная информация:
Re: Вопросы по CVAVR.
Привет всем. Тоже начал изучать программирование на Си в CVAVR. Хочу с помощью Arduino nano разгрузить ЦП, а так же использовать его как переходник с USB на контроллер ЧПУ станка.
Появилась проблема при синхронизации скорости USART с компьютером.
Код, автоматически генерируемый CVAVR нормально работает в Proteus, но при прошивке реального железа USART работает в 2 раза быстрее.
То есть при забитой в камень скорости 9600 бод- на терминале приходится ставить 19200 -иначе получаю мусор, вместо "Hello world!"
Прошивал средствами CVAVR, также пробовал XLoader-результат один.
Пробовал разные терминалы: Монитор последовательного порта Arduino, Терминал CVAVR, свой терминал.
Написал для проверки камня скетч в ArduinoIDE, прошил средствами ArduinoIDE- всё работает корректно- везде 9600.
Привожу сборку кусков кода CVAVR:
Автоматом CLKPS0 установлен в 0
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
и
UBRR0L=0x33;
Для того, чтобы работало на железе приходится бит CLKPS0 устанавливать в 1
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (1<<CLKPS0);
или
UBRR0L=0x66;
камень ATM328p
частота камня 8,000000 MHz
скорость USART 9600 бод
сверял define-ы с ДШ-всё совпадает.
Появилась проблема при синхронизации скорости USART с компьютером.
Код, автоматически генерируемый CVAVR нормально работает в Proteus, но при прошивке реального железа USART работает в 2 раза быстрее.
То есть при забитой в камень скорости 9600 бод- на терминале приходится ставить 19200 -иначе получаю мусор, вместо "Hello world!"
Прошивал средствами CVAVR, также пробовал XLoader-результат один.
Пробовал разные терминалы: Монитор последовательного порта Arduino, Терминал CVAVR, свой терминал.
Написал для проверки камня скетч в ArduinoIDE, прошил средствами ArduinoIDE- всё работает корректно- везде 9600.
Привожу сборку кусков кода CVAVR:
Показать/Спрятать
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
и
UBRR0L=0x33;
Для того, чтобы работало на железе приходится бит CLKPS0 устанавливать в 1
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (1<<CLKPS0);
или
UBRR0L=0x66;
камень ATM328p
частота камня 8,000000 MHz
скорость USART 9600 бод
сверял define-ы с ДШ-всё совпадает.
Re: Вопросы по CVAVR.
В настройках проекта правильно установлена частота процессора? В книге Лебедева нормально расписано про усарт (http://rutracker.org/forum/viewtopic.php?t=2183001) Так же посмотри при программировании процессора на фьюзы. Может делитель частоты стоит
-
- Станкостроитель
- Сообщения: 381
- Зарегистрирован: 26 фев 2012, 10:41
- Имя: Роман
- Откуда: Печора
- Контактная информация:
Re: Вопросы по CVAVR.
Разобрался. На Arduino NANOv3 частота 16,000000 MHz, а я всё думал что 8,000000 MHz.