Форум самогонщиков Сайт Помощь солдатам

Как собрать систему старт-стопа для чайников

Форум самогонщиков Автоматика
1 ... 5 6 7 8 9 8
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.140  19 Мая 26, 20:01
gvsp, в проге ардуиновской есть такое что пишешь чего нить в порт ( ну например включаешь какой нить индикаторный светодиодик ) , а потом читаешь с порта - горит ли светодиодик - и делаешь какое то действие связанное с тем состоянием которое обуславливает горение или негорение светодиодика.

как то попросили разобратся: "почему управление автоклавом глючит" ( управление на ардуино сделано в лучших ардуиновских традициях выше описанных ) . хохотал как обычно.
перевел просто логику с анализа горит / не горит светодиодик ( их там несколько было - каждый отображал свой шаг действия ) - на структуру в объединении - просто в озу хранится. и глюки изчезли
gvsp Кандидат наук Ленинград 440 49
Отв.141  19 Мая 26, 21:05
потом читаешь с порта - горит ли светодиодикSedoY, 19 Мая 26, 20:01
Наверное пытались читать состояние вывода назначенного выходом, а функция применима если вывод назначен входом.
dee Научный сотрудник Минск 12.8K 2.9K
Отв.142  20 Мая 26, 09:20
gvsp, что бы зажечь встроенный светодиодик ардуино записывает единицу в 5й бит порта В, нет никаких проблем потом прочитать этот бит в байте PORTB т.е узнать находиться порт в высоком состоянии или низком

Добавлено через 6мин.:

включить 13 пин (5 бит порта В) можно командой bitSet(PORTB, 5)
выключить - bitClear(PORTB, 5)
узнать в каком он состоянии - bitRead(PORTB, 5)
принудительно записать нужное значение bitWrite(PORTB, 5, Х) где Х или 0 или 1

Добавлено через 12мин.:

тоже самое делают команды по маске но они мне не нравятся зато обработывают в один такт сразу весь порт
PORTB |= B00100000; // Включаем 13-й пин (HIGH)
PORTB &= B11011111; // Выключаем 13-й пин (LOW)

Добавлено через 6мин.:

вот пример вывода символов на семисегментный индикатор что бы были часы
PORTD = B10001000; // 1
PORTD = B10110011; // 2
PORTD = B10111001; // 3
...
PORTD = B01101011; // b
PORTD = B01010011; // C
PORTD = B10101011; // d
PORTD = B01110011; // E
PORTD = B01110010; // F
PORTD = B01100011; // t
Volume Научный сотрудник Уфа 789 440
Отв.143  20 Мая 26, 18:55
gvsp, что бы зажечь встроенный светодиодик ардуино записывает единицу в 5й бит порта В, нет никаких проблем потом прочитать этот бит в байте PORTBdee, 20 Мая 26, 09:20
тут бы уточнить - все это про ардуинки на AVR. А ардуинки ныне AVR-ами не ограничиваются, поддержаны офигеть сколько процессоров, в которых все не так
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.144  20 Мая 26, 19:10 (через 15 мин)
Наверное пытались читать состояние вывода назначенного выходомgvsp, 19 Мая 26, 21:05
там было - вместо того чтобы создать переменную в озу для хранения статуса, использовали ножки , да еще к которым проводки подключены - это же "антенны" - чего наловили из эфира то и получалось состояние.
это я как например привел - как ардуинщики ловят глюки в своих поделках

а функция применима если вывод назначен входомgvsp, 19 Мая 26, 21:05
палкой в мозг ардуинщика это не вколачивают)))

Добавлено через 2мин.:

А ардуинки ныне AVR-ами не ограничиваютсяVolume, 20 Мая 26, 18:55
людям бы на си писать, думать на си. архитектуру программы продумывать заранее, может и был бы толк

Добавлено через 2мин.:

обработывают в один такт сразу весь портdee, 20 Мая 26, 09:20
вообще то 3 такта: чтение в регистр, модификация в регистре, запись обратно из регистра

или это - что вместо bitSet(PORTB, номер ножки)
Volume Научный сотрудник Уфа 789 440
Отв.145  20 Мая 26, 19:50 (через 41 мин)
людям бы на си писать, думать на сиSedoY, 20 Мая 26, 19:10
проблемка не в языке а в отсутствии понимания автоматизируемых реалий. Если не понимаешь что на пине кнопки будет дребезг и обрабатываешь его как 1/0 - нажат или нет, результат будет херовым хоть на питоне хоть на расте
TVM73 Доцент Серпухов 1.1K 79
Отв.146  20 Мая 26, 20:08 (через 19 мин)
тоже самое делают команды по маске но они мне не нравятся зато обработывают в один такт сразу весь портdee, 20 Мая 26, 09:20
Мне нравится.
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.147  20 Мая 26, 20:15 (через 7 мин)
вот пример вывода символов на семисегментный индикатор что бы былиdee, 20 Мая 26, 09:20
а я ленивый, так делаю:
#define pset(b)   (b)&=~0b11111011// установка точки в знакоместе
uint8_t simvolss [19]={// точка - сбрасываем бит 2
0b11111001,//0
0b10000001,//1
0b10111010,//2
0b10101011,//3
0b11000011,//4
0b01101011,//5
0b01111011,//6
0b10100001,//7
0b11111011,//8
0b11101011,//9
0b11110011,//А
0b01011011,//b
0b01111000,//C
0b10011011,//d
0b01111010,//E
0b01110010,//F
0b00000010,//-
0b01011010,//t
0b00000000 //ничего не горит
};
//пример:
txo.segment = simvolss[ tmp ];
txo.segment = pset(txo.segment);// точка
dee Научный сотрудник Минск 12.8K 2.9K
Отв.148  20 Мая 26, 20:42 (через 28 мин)
это же "антенны"SedoY, 20 Мая 26, 19:10
если подключены как высокоипедансный вход, если подключен подтягивающий резистор то особо не наловят

Добавлено через 14мин.:

а я ленивый, так делаю:SedoY, 20 Мая 26, 20:15
ОЗУ в обмен на ПЗУ, ОЗУ меньше
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.149  21 Мая 26, 05:14
если подключены как высокоипедансный вход, если подключен подтягивающий резистор то особо не наловятdee, 20 Мая 26, 20:42
просто переделал на переменные в озу , и глюки ушли

ОЗУ в обмен на ПЗУ, ОЗУ меньшеdee, 20 Мая 26, 20:42
там и const применить не зазорно )))))
да и в нынешних МК занять озу даже на 30% уже не удается - давние привычки экономить ресурс не искоренимы)))
superezhik Кандидат наук Новосибирск 449 37
Отв.150  21 Мая 26, 12:03
ардуино то зачем? У меня XH-W3002, сейчас клапан нормальный подберу и ничего больше не надо? Или есть ньюансы?
gvsp Кандидат наук Ленинград 440 49
Отв.151  21 Мая 26, 16:47
да и в нынешних МК занять озу даже на 30% уже не удаетсяSedoY, 21 Мая 26, 05:14
На Нано в момент забил, когда стал меню добавлять. знал бы, что с оперативой беда, делал бы на Меге. Но хватило и нано. Пришлось в PROGMEM пихать и то еле влез. Понял, что Веб интерфейс уже не светит. Пришлось обойтись Telnet. На телефон приходит примерно так:
O_01:10 T_855 K_751 P_101325 Что означает, что отбор тела идёт один час и 10 минут, температура по датчику расположенном в баке (танке) 85,5°С. Температура по датчику, расположенному в колонне ниже узла отбора 75,1°С. Атмосферное давление 101 325 Па.
Или так: A_150->150 T_855 K_751 Идёт отбор головных фракций, оставшееся и прошедшее время в минутах.
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.152  21 Мая 26, 18:20
На Нано в момент забилgvsp, 21 Мая 26, 16:47
переходи на стм32 или чтото подобное условно современное, на древних мк, да ещё с ардуиноговнобиблиотеками - хотелки исполнять - мазохизм
я щас разучиваю особенности CH32Vхххх

Добавлено через 11мин.:

На телефон приходитgvsp, 21 Мая 26, 16:47
телефону и не такую карабарщину разбирать - не напрягатся
dee Научный сотрудник Минск 12.8K 2.9K
Отв.153  21 Мая 26, 19:20 (через 60 мин)
Понял, что Веб интерфейс уже не светитgvsp, 21 Мая 26, 16:47
веб-морду можно сделать на ESP32, скармливать ей строчку из telneta а она будет показывать
svarnoy Профессор Жуковский. 9.7K 4.8K
Отв.154  21 Мая 26, 21:04
Чем вам есп 32 не нравится, там и интернет и чего хочеш
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.155  22 Мая 26, 07:19
написанно же :
Ограничения и решения
В суровых производственных условиях применение «голых» плат для разработчиков (например, ESP32 DevKit) недопустимо.
Для промышленной автоматизации применяются готовые промышленные контроллеры (выпускаемые, например, брендами Emotas, NORVI, Teensy и др.), которые обеспечивают:Изолированные интерфейсы (опторазвязка RS-485/CAN).Защиту от электромагнитных помех и скачков напряжения.Промышленные типы питания (вход на 12 В или 24 В) и монтаж на DIN-рейку.
svarnoy Профессор Жуковский. 9.7K 4.8K
Отв.156  22 Мая 26, 08:07 (через 49 мин)
SedoY,
Для бытовых решений нужно обезательно на дин рейку?
Ну и опторазвязки сам делай, не цепляеш же 220 на пин напрямую.
Я уже писал, повторюсь.
У меня автоматизировано вообще все до чего могу дотянуться, две коптилки, автоклавы, полив, три самогонных аппарата, климат система мастерской, и все на есп32 врум 32у, все платы разводятся под один контроллер.
И за примерно 8 лет на на есп32, не было ни одной с ними проблемы.
Полив и коптилка вообще живут на улице, под навесом.
Ну и допустимо недопустимо, может сертификата нет не по тому что плохая, а по тому что не делали.
Тут каждый для себя решит сам.
Домашнее управление самогоном это не обезательно пром решения и пром контроллеры.
dee Научный сотрудник Минск 12.8K 2.9K
Отв.157  22 Мая 26, 09:21
Для промышленной автоматизации применяются готовые промышленные контроллерыSedoY, 22 Мая 26, 07:19
ну так и ценник там "промышленный", готовые модули опторазвязки тоже есть. Кстати на озоне висит контроллер MicroPython PyBoard V1.1 в районе 1000РФ на STM32F405, 192КБ оперативы и акселерометр, в наши палестины полетные контроллеры для квадриков не возят но вот плату разработчика купить можно
SedoY Профессор Новосибирск 5.2K 2.2K
Отв.158  22 Мая 26, 10:54
svarnoy, просто нелюблю для ответственных решений использовать МК у которых ПЗУ внешнее. для вебки - да пофиг, а управлять чем то , что может убить ( те же 220в ) ну его с таким потенциалом.
учили меня так
svarnoy Профессор Жуковский. 9.7K 4.8K
Отв.159  22 Мая 26, 10:58 (через 5 мин)
SedoY,
Думается мне, что все не так грустно .
Вопервых, глюконуть или отработать не так, не отработать, может любой контроллер!
Во-вторых, при проектировании на есп32 можно внедрить кучу защитных механизмов, это не отменяет возможного не так. За счёт большей памяти, простоты, этих механизмов можно внедрить много.