Разработки ecoins

Библиотеки для разных контроллеров

bsn
Сержант
Сообщения: 142
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 30
Откуда: Ростовская обл.
Имя: Сергей

Разработки ecoins

#301

Сообщение bsn » 04.08.2019{, 12:41}

ecoins писал(а):
04.08.2019{, 11:25}
DS18B20... Это неплохо для исследовательских стендов
Не только для стендов.
Это неплохо для систем Умного Дома. Когда, к примеру в помещении размещён простейший контроллер, и большинство его ног уже задействовано под иное оборудование. А ему ещё нужно собирать и температурные данные из нескольких точек, возможно и из соседних помещений. Далее он может передавать собранную инфу на более производительный контроллер верхнего уровня. При расстояниях в несколько десятков метров, 1-Wire, на трёх сплетённых проводах, прокинутых последовательно по всем точкам - работает великолепно. При опросе данных раз в минуту или ещё реже, сбоев не наблюдается. Проблема с первоначальной идентификацией - разовая. Настроил и забыл.
ecoins писал(а):
04.08.2019{, 11:25}
подключение сети 1-Wire - это всегда антенны индустриальных помех
Как и все провода на входе. Некоторые не подключают внешний подтягивающий резистор, обходятся внутренним подтягивающим. Соответственно шунтирующее сопротивление сети, десятки килоом - помехам вольготно, но как сообщают, в домашних условиях и того достаточно, и всё работает. При подключении стандартного внешнего подтягивающего R=4,7k - проблем обычно не возникает. Я экспериментировал с внешним R=1k, всё прекрасно работает. А шунт в 1k хорошо гасит окружающие помехи.
ecoins писал(а):
04.08.2019{, 11:25}
Это очень и очень вандала не защищенная система
Если вандал - который с ломом, то да. "Против лома - нет приёма" Точно также вандал разрушит и всё остальное. Но если решён вопрос с защитой от проникновения к вам вандала - то нет проблем, проложил три проводка - и получил вечную бесперебойную работу.
Соглашусь, что по ошибке, вандалом можно стать и самому. Однажды, по запарке, подал на ножку данных DS18B20 питающиее +5V. Пока разбирался почему не стреляет - он бедолага видимо пытался сказать о себе и видимо регулярно пытался коротить ножку данных на общие -5V. Когда понял в чём дело - решил что датчику уже хана. А он работает, хоть бы что. Если есть риск помех, то на всякий пожарный, прямо на ножках питания DS18B20, шунтирую цепь питания ёмкостью 0,01 мкф. Ну и после случая с ошибкой, стал ножку данных каждого DS18B20 подключать к общей шине данных только через токоограничивающий резистор 50-70 ом. Не знаю по фэншую это или нет, но мне так спокойней. На надёжности передачи данных это никак не сказалось.
ecoins писал(а):
04.08.2019{, 11:25}
Наше направление - сеть беспроводных сенсоров и устройств. Широко использовали ZigBee
Поиграться ребятишкам с быстрым беспроводным подключением - видимо ZigBee самое то. Или для тех кому неохота проводки тянуть и дизайново прикрывать их кабель каналами - тоже удобно.
Но в датчиках с радиоудлиннителями придётся постоянно помнить о заряде батареек. По закону подлости, сядут в самый ответственный момент, особенно если на морозе. Лично видел как тянули для радиоудлинителей провода подпитки - но ведь тогда теряется весь смысл беспроводности.
Кроме того, уже писал, повторюсь: пройдёт мимо, пусть не вандал с ломом, а некий "шутник" с такой игрушкой: https://14bytes.ru/glushilka-wifi/ и ляжет вся ваша ZigBee хоть на стенде, хоть в Умном Доме, хоть на промышленном объекте. А проводную сеть дистанционно и бесконтактно положить - это ещё нужно сильно постараться.
Последний раз редактировалось bsn 04.08.2019{, 13:42}, всего редактировалось 3 раза.

Аватара пользователя
Rovki
Полковник
Сообщения: 2463
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 65
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#302

Сообщение Rovki » 04.08.2019{, 13:31}

bsn писал(а):
04.08.2019{, 12:41}
ecoins писал(а):
04.08.2019{, 11:25}
Это неплохо для исследовательских стендов
Не только для стендов.
Это неплохо для систем Умного Дома. Когда, к примеру в помещении размещён простейший контроллер, большинство его ног уже задействовано под иное оборудование. А ему ещё нужно собирать и температурные данные из нескольких точек, возможно и из соседних помещений. Далее он может передавать собранную инфу на более производительный контроллер верхнего уровня. При расстояниях в несколько десятков метров, 1-Wire, на трёх проводах прокинутых последовательно по всем точкам - работает великолепно. При опросе данных раз в минуту или ещё реже, сбоев не наблюдается. Проблема с первоначальной идентификацией - разовая. Настроил и забыл.
ecoins писал(а):
04.08.2019{, 11:25}
подключение сети 1-Wire - это всегда антенны индустриальных помех
Как и все провода на входе. Некоторые не подключают внешний подтягивающий резистор, обходятся внутренним подтягивающим. Соответственно шунтирующее сопротивление сети, десятки килоом - помехам вольготно, но как сообщают, в домашних условиях и того достаточно, и всё работает. При подключении стандартного внешнего подтягивающего R=4,7k - проблем обычно не возникает. Я экспериментировал с внешним R=1k, всё прекрасно работает. А шунт в 1k хорошо гасит окружающие помехи.
ecoins писал(а):
04.08.2019{, 11:25}
Это очень и очень вандала не защищенная система
Если вандал - который с ломом, то да. "Против лома - нет приёма" Точно также вандал разрушит и всё остальное. Но если решён вопрос с защитой от проникновения к вам вандала - то нет проблем, проложил три проводка - и получил вечную бесперебойную работу.
ecoins писал(а):
04.08.2019{, 11:25}
Наше направление - сеть беспроводных сенсоров и устройств. Широко использовали ZigBee
Поиграться ребятишкам с быстрым беспроводным подключением - видимо ZigBee самое то. Или для тех кому неохота проводки тянуть и дизайново прикрывать их кабель каналами - тоже удобно.
Но в датчиках с радиоудлиннителями придётся постоянно помнить о заряде батареек. По закону подлости, сядут в самый ответственный момент, особенно если на морозе. Лично видел как тянули для радиоудлинителей провода подпитки - но ведь тогда теряется весь смысл беспроводности.
Кроме того, уже писал, повторюсь: пройдёт мимо, пусть не вандал с ломом, а некий "шутник" с такой игрушкой: https://14bytes.ru/glushilka-wifi/ и ляжет вся ваша ZigBee хоть на стенде, хоть в Умном Доме, хоть на промышленном объекте. А проводную сеть дистанционно и бесконтактно положить - это ещё нужно сильно постараться.
В промышленности используют проводной канал RS485 с опторазвязкой и километровый отрезок не проблема в цеху .кроме интерфейса важен еще протокол передачи данных (например модбас) или отсутсвие оного.
Когда говорят беспроводные датчики это относится к каналу передачи данных ,а не питания .А питание можен быть как автономным (АКБ) так и сетевым.
Электронщик до мозга костей и не только

WZV
Сержант
Сообщения: 200
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 7

Разработки ecoins

#303

Сообщение WZV » 04.08.2019{, 14:33}

Согласен с bsn во всех пунктах. Вот уже больше года работает бесперебойно несколько веток, метров по двадцать каждая. На каждой ветке штук по десять датчиков DS18B20. Контроллер Arduino Mega2560.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#304

Сообщение ecoins » 04.08.2019{, 17:44}

Интересное обсуждение.
Относительно ZigBee. Не готов согласиться. Занимаются этим у нас не дети - ставили на промышленных объектах. ZigBee - это отдельная тема, агитировать за этот тип связи сейчас не готов, есть технические решения интереснее.
Относительно длинных линий на 1-Wire. Длинные линии работают - но монтаж по комнатам, или по офису? Для нас это отдельная проблема проложить по помещениям провода к датчикам в нужных точках. Так делается для адресной пожарной сигнализации, но там и условия приемлемые - идет себе линия по потолку, и идет. К слову эти датчики и температуру в помещениях меряют.
Если подытожить - выбор решения зависит от предпочтения проектировщика и собственника системы.
Относительно сети беспроводных датчиков - это тема действительно нас сейчас занимает, к сожалению время пока другим занято.
------------------------------------
WZV писал(а):
04.08.2019{, 14:33}
Вот уже больше года работает бесперебойно несколько веток, метров по двадцать каждая. На каждой ветке штук по десять датчиков DS18B20. Контроллер Arduino Mega2560.
Было бы интересно посмотреть проект, если он на FLProg.

tolochko
Рядовой
Сообщения: 29
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 0
Откуда: Днепропетровск

Разработки ecoins

#305

Сообщение tolochko » 04.08.2019{, 18:08}

По поводу 1WIRE
С этим протоколом работаю около 6 лет
Правда без участия контроллеров на базе компьютера
Есть такая программа Бенукс
Линия достигали 200м причем шла рядом с проводами досветки в теплице все работало
Для нормальной работы на длинных линиях нужно чтобы была подтяжка не только к земле
но и к плюсу
У 1 WIRE есть специализированная микросхема DS2480 которая работает через COM порт
Или использовать 2 пина контроллера люди делают

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#306

Сообщение ecoins » 04.08.2019{, 18:14}

tolochko писал(а):
04.08.2019{, 18:08}
Линия достигали 200м причем шла рядом с проводами досветки в теплице все работало
Убедительный и красивый пример.
Было бы хорошо подобные примеры на FLProg посмотреть, если они у кого-нибудь есть.

Аватара пользователя
Rovki
Полковник
Сообщения: 2463
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 65
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#307

Сообщение Rovki » 04.08.2019{, 19:17}

Да.... , правильней говорить об интерфейсе ,а не протоколе 1WIRE

Отправлено спустя 1 минуту 13 секунд:
Rovki писал(а):
04.08.2019{, 19:17}
Да.... , правильней говорить об интерфейсе ,а не протоколе 1WIRE
Ну и конечно хорошо бы глянуть проект с несколькими десятками устройств на шине ,как у вас в ФЛ :smile427:
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Лейтенант
Сообщения: 303
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 66
Откуда: Ярославль
Имя: Андрей

Разработки ecoins

#308

Сообщение Dryundel » 04.08.2019{, 20:33}

ecoins писал(а):
04.08.2019{, 11:25}
Одно время мы много с ней работали.
Наше мнение об иллюзорности этого решения:
Отчасти соглашусь с Вами.
Но шина 1-Wire, весьма любима пользователями, как мне кажется, Вы успели заметить.

Аватара пользователя
Rovki
Полковник
Сообщения: 2463
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 65
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#309

Сообщение Rovki » 04.08.2019{, 20:38}

Dryundel писал(а):
04.08.2019{, 20:33}
ecoins писал(а):
04.08.2019{, 11:25}
Одно время мы много с ней работали.
Наше мнение об иллюзорности этого решения:
Отчасти соглашусь с Вами.
Но шина 1-Wire, весьма любима пользователями, как мне кажется, Вы успели заметить.
Нормальная шина ,но в ардуино она имеет программную реализацию ...и как следствие возможны тормоза ...
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Лейтенант
Сообщения: 303
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 66
Откуда: Ярославль
Имя: Андрей

Разработки ecoins

#310

Сообщение Dryundel » 04.08.2019{, 22:07}

Немого критики.

1. Ветка разрослась и пора бы решить с админом вопрос о создании раздела ибо кожу, мед, навоз и гвозди на одной полке держать не гоже. А с учетом того что все разрабатываемые блоки еще весьма сырые, то если не под каждый блок, то хотя бы под группу хорошо было бы вести свою тему.
2. В наборе блоков последнего релиза присутствуют блоки не работающие с последними библиотеками. Понять с какими библиотеками они работают не представляется возможным. Это совсем не хорошо.

Теперь по существу.
Есть целая линейка блоков работы с LCD HD44780 вроде бы здорово но...
Работать с ними не удобно по крайней мере по двум причинам:
1. У всех блоков отсутствует функция очистки кроме конечно самого блока очистки. Почему бы не сделать ее принудительно или опционно.
2. В блоках есть вход En который предполагается подключать к выходу control блока управления, соответственно для того что бы управлять включением/выключением блока надо как то управлять сигналом control, к примеру доп. блока "И" почему бы не добавить вход control, тогда входом En можно будет управлять так же как в стандартном блоке при условии что функция очистки будет встроена.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#311

Сообщение ecoins » 04.08.2019{, 23:12}

Dryundel писал(а):
04.08.2019{, 22:07}
1. У всех блоков отсутствует функция очистки кроме конечно самого блока очистки. Почему бы не сделать ее принудительно или опционно.
Это не совсем так. Достаточно указать длину=0, и будет очистка от параметра до конца строки.
---
Уже не первый раз упоминается вход EN как для очистки. Так сделано в стандартном блоке. Но это дело привычки. Мы пытались минимизировать число входов на блоках.
А можно пример применения, когда нужно стереть что-то или полностью?

neangel
Рядовой
Сообщения: 10
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 0
Имя: Игорь

Разработки ecoins

#312

Сообщение neangel » 05.08.2019{, 02:19}

ecoins писал(а):
01.08.2019{, 18:00}
----
Действительно - описание счетчика оказалось урезано. В новых версиях добавим.
Пока смотрите описание здесь:
БЛОК СЧЕТЧИКА
Счетчик считает в диапазоне от -32768 до +32767.
При первом включении или при rst=1, начальное значение счетчика сбрасывается
до значения "НАЧАЛЬНОЕ ЗНАЧЕНИЕ" (диапазоне от -32768 до +32767, default=0).
Счетчик считает с шагом, определяемый
значением "ШАГ ИЗМЕНЕНИЯ СЧЕТЧИКА" (диапазоне от -32768 до +32767, default=1).
Входные параметры:
rst - сброс текущего значения до параметра значения " НАЧАЛЬНОЕ ЗНАЧЕНИЕ.
mode :
'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе.
Если шаг <0, уменьшение до нижней границы и сразу с возвратом к верхней границе.
'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе.
Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе.
'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
Если шаг <0, уменьшение до нижней границы и останавливает счет.
'C' - предел. Если шаг >0, увеличение до 32767 и останавливает счет.
Если шаг <0, уменьшение до -32768 и останавливает счет.
top - верхняя граница;
bottom - нижняя граница.
----------------------------------------------------------
ecoins@mail.ru 01.08.19
И вновь я с вашим счётчиком.
Это не счётчик, а генератор чисел с частотой 67 Герц.
Которые он начинает генерировать как вы описали при ext = 1

Обманщики.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#313

Сообщение ecoins » 05.08.2019{, 07:32}

Счетчик очень простой и в библиотеке выглядит следующим образом:
Код счетчика C++Показать
//---------------------------------------------------------------------------------------
// СЧЕТЧИК
// 'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе
// Если шаг <0, уменьшение до нижней границы и сразу с возратом к верхней границе
// 'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе
// Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе
// 'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
// Если шаг <0, уменьшение до нижней границы и останавливает счет.
// 'C' - предел.Если шаг >0, увеличение до 32767 и останавливает счет.
// Если шаг <0, уменьшение до -32768 и останавливает счет.
//---------------------------------------------------------------------------------------
void RT_HW_TASK:: counter(RT_HW_TASK_COUNTER_ID &id){
if(!id.init) return;
switch( id.mode ) {
default: //-----неизвестный режим - будет отрабатывать режим S
//-----пила
case 'S': if(id.delta>0) {if(id.cnt==id.top) {id.cnt=id.bottom;} else {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) {id.cnt=id.top; }}} //пила+:увеличение до верхней границы с возвратом к нижней границе
if(id.delta<0) {if(id.cnt==id.bottom) {id.cnt=id.top;} else {id.cnt=id.cnt+id.delta; if (id.cnt<id.bottom) {id.cnt=id.bottom;}}} //пила-:уменьшение до нижней границы с возратом к верхней границе
break;
//-----треугольник
case 'T': if(id.cnt==id.top) id.direct=false;
if(id.cnt==id.bottom) id.direct=true;
if(id.direct==true) {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) id.cnt=id.top;}
else {id.cnt=id.cnt-id.delta; if (id.cnt<id.bottom) id.cnt=id.bottom;}
break;
//----движение до установленного предела
case 'L': if(id.delta>0) {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) id.cnt=id.top;} //предел+: увеличение до верхней границы;
if(id.delta<0) {id.cnt=id.cnt+id.delta; if (id.cnt<id.bottom) id.cnt=id.bottom;} //предел-: уменьшение до нижней границы;
break;
//----Движение до 32767 или до -32768
case 'C': id.cnt=id.cnt+id.delta;
if(id.delta>0) {if(id.cnt> 32767) id.cnt= 32767;}
if(id.delta<0) {if(id.cnt< -32768) id.cnt=-32768;}
break;
}}
Проверяли все режимы и активно используем в проектах, особенно для целей отладки.
Если вход ext=1, то счетчик считает при каждом вхождении.
Он у Вас считает, но возможно Вы иным образом интерпретируете полученные результаты. Возможно еще, что в проекте у Вас что-то тормозит. Пришлите проект.
Попробуйте счетчик отдельно с выводом на консоль и поэкспериментируйте с параметрами и входами.

Аватара пользователя
Dryundel
Лейтенант
Сообщения: 303
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 66
Откуда: Ярославль
Имя: Андрей

Разработки ecoins

#314

Сообщение Dryundel » 05.08.2019{, 09:10}

ecoins писал(а):
04.08.2019{, 23:12}
Мы пытались минимизировать число входов на блоках.
А можно пример применения, когда нужно стереть что-то или полностью?
Минимизирование числов входов это не всегда хорошо. Можно вообще минимизировать до С+ а можно еще дальше пойти. И каков тогда смысл FBD ? По итогу мы будем имеем кучу минимизированных блоков которые надо будет составить в пазл вместо применения одного функционального блока. В результате минимизации входов имеем максимизацию количества блоков в плате.
ecoins писал(а):
04.08.2019{, 23:12}
Так сделано в стандартном блоке. Но это дело привычки.

Не стоит бороться с привычками. Как говориться лучшее - враг хорошего.
ecoins писал(а):
04.08.2019{, 23:12}
А можно пример применения, когда нужно стереть что-то или полностью?
Пример: Делаем меню. При переходе из пункта в пункт этого меню на дисплее должна отображаться разная информация. В стандартном варианте снял сигнал с блока и перевел на другой блок этот сигнал и все. В вашем варианте надо во первых как то снимать сигнал с En а это дополнительный блок, а потом еще и очищать тот кусок дисплея который он занимал,а это еще один блок. Итого вместо одного блока имеем три и каждый надо настроить и не запутаться. В этом примере нужен и вход En и очистка, иначе сталкиваемся с доп.заморочками.
ecoins писал(а):
04.08.2019{, 23:12}
Это не совсем так. Достаточно указать длину=0, и будет очистка от параметра до конца строки.
А где это прописано? Пользователю надо догадаться? Но я как то и этого не заметил. К примеру использовав блок вывода текта по номеру, с параметром длины "0" и выравниванием по центру, при снятии сигнала с En , имеем на дисплее не стертое последнее значение. (проверено)
В принципе в стандартном блоке похоже так и сделано стирание до конца строки. Но раз уж вы сделали в блоках возможность ограничения вывода длины, то почему бы не сделать опционально еще и очистку этого же предела? По принципу "Поел - убери за собой".

Отправлено спустя 22 минуты 9 секунд:
ecoins писал(а):
05.08.2019{, 07:32}
Счетчик очень простой и в библиотеке выглядит следующим образом:
К стати по поводу счетчика:
Для минимизации количества входов, вход mode логично было бы убрать в параметры, а вход ext логично было бы назвать En (в силу привычки, для стандартизации, ну или как будет угодно)

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#315

Сообщение ecoins » 05.08.2019{, 10:31}

Dryundel писал(а):
05.08.2019{, 09:32}
К стати по поводу счетчика:
Для минимизации количества входов, вход mode логично было бы убрать в параметры, а вход ext логично было бы назвать En (в силу привычки, для стандартизации, ну или как будет угодно
ecoins рассматривает свои блоки как конструктор под разные предпочтения. Со временем они будут включены в стандартное применение или нет - решит разработчик FLProg. У него с его инструментами гораздо больше возможностей по оформлению блоков.
В самом пользовательском блоке только одна строка на исполнении:
//--------------------------------БЛОК СЧЕТЧИК-------------------------------------------
if(rst) {id.init=false;} if(ext) { if(!id.init) RT_HW_Task.setCounterID(id, mode , ШАГ ИЗМЕНЕНИЯ СЧЕТЧИКА , top , bot , НАЧАЛЬНОЕ ЗНАЧЕНИЕ ); RT_HW_Task.counter(id); } val =id.cnt;
Пользователь может самостоятельно скомбинировать нужную конфигурацию.
Относительно ext и EN. Мы осознанно пытаемся уходить от использования наименование входа EN, когда это связано с разрешающим событием. "Событие" в терминологии ecoins, это значение (bool, int) которое становится не нулевым на один цикл loop.
Иногда запрет на работу блока (EN) и событие (event или чтобы короче используем ext) совпадают. Как в случае со счетчиком.
Последний раз редактировалось ecoins 05.08.2019{, 10:51}, всего редактировалось 1 раз.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#316

Сообщение ecoins » 05.08.2019{, 10:50}

Упрощенная версия счетчика. Вход назвал En (событие) - это немного отличаться будет от EN(запрет исполнения блока).
У счетчика только три входа: En - счет, top - верхняя граница, bottom - нижняя граница.
Доступны три параметра пользователя:
1) режим работы счетчика (S,T,L,C) - по умолчанию =S (пила);
2) шаг изменения счетчика - по умолчанию =1;
2) начальное значение счетчика - по умолчанию =0.
RTcntS_счетчик_упрощенный_(CODE).ubi
(27.69 КБ) 15 скачиваний
p.s. В новом блоке уточнил описание.
Последний раз редактировалось ecoins 05.08.2019{, 11:44}, всего редактировалось 1 раз.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#317

Сообщение ecoins » 05.08.2019{, 11:42}

А как убрать сообщение? Не нашел опции.
Последний раз редактировалось ecoins 05.08.2019{, 11:47}, всего редактировалось 2 раза.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#318

Сообщение ecoins » 05.08.2019{, 11:45}

Dryundel писал(а):
05.08.2019{, 09:32}
ecoins писал(а): ↑Вчера{, 20:12}
А можно пример применения, когда нужно стереть что-то или полностью?
Пример: Делаем меню. При переходе из пункта в пункт этого меню на дисплее должна отображаться разная информация. В стандартном варианте снял сигнал с блока и перевел на другой блок этот сигнал и все. В вашем варианте надо во первых как то снимать сигнал с En а это дополнительный блок, а потом еще и очищать тот кусок дисплея который он занимал,а это еще один блок. Итого вместо одного блока имеем три и каждый надо настроить и не запутаться. В этом примере нужен и вход En и очистка, иначе сталкиваемся с доп.заморочками.
Вопрос: Нужно очистить дисплей весь, и при этом работающие блоки кто-то заблокирует, а новые кто-то включит? Это ведь можно сделать и сейчас, установив после lcd.begin блок AND или мультиплексор.
Из описания блока:
Вход: EN - разрешение работы. Через этот вход также достигается снижение затрат процессорного времени;
val - переменная в формате int16_t (int)
НОМЕР ДИСПЛЕЯ - обращается к инициализированному блоку RTlcdBegin с таким же номером;
КОЛОНКА - номер колонки;
СТРОКА - номер строки;
ДЛИНА - разрешенная длина выводимого поля. Если =0, выводит до конца строки;
ПЕРИОД - (мс) период изменения символа на дисплее;
ВЫРАВНИВАНИЕ - выравнивание текста в поле: N - без выравнивания, L -влево, С -по центру, R -вправо;
То есть сейчас указав в блоке lcd.srting 1 колонку и 1 строку, длину 0, на входе " ", можно стереть 1-ю строку.
---Можно добавить вход конечно очистки. Надо обдумать. Или сделать отдельно блок очистки строки.

Аватара пользователя
Dryundel
Лейтенант
Сообщения: 303
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 66
Откуда: Ярославль
Имя: Андрей

Разработки ecoins

#319

Сообщение Dryundel » 05.08.2019{, 11:56}

ecoins писал(а):
05.08.2019{, 10:50}
У счетчика только три входа: En - счет, top - верхняя граница, bottom - нижняя граница.
Ну почему же Вы перебарщиваете?
Зачем шаг изменения счетчика и начальное значение счетчика убрали в параметры?

Выход Шаг изменения счетчика необходим при организации инкрементных ускорений, а начальное значение счетчика необходимо для ввода этого значения из EEPROM в случае настраиваемых девайсов.

Отправлено спустя 4 минуты 19 секунд:
ecoins писал(а):
05.08.2019{, 11:45}
Вопрос: Нужно очистить дисплей весь, и при этом работающие блоки кто-то заблокирует, а новые кто-то включит?
Зачем весь? Если блок что то нацарапал на дисплее так пусть он только это и очистит. Я же писал, по принципу "поел убери за собой". А для очистки всего дисплея к стати блока вроде и нет. А не плохо бы.

ecoins
Лейтенант
Сообщения: 335
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 39
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#320

Сообщение ecoins » 05.08.2019{, 12:32}

Dryundel писал(а):
05.08.2019{, 12:00}
Зачем весь? Если блок что то нацарапал на дисплее так пусть он только это и очистит. Я же писал, по принципу "поел убери за собой". А для очистки всего дисплея к стати блока вроде и нет. А не плохо бы.
По дисплею соберется набор предложений и библиотеку с блоками доработаю. По очистке дисплея и выключение подсветки учту.

Ответить

Вернуться в «Библиотеки пользователей»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость