Jump to content
ecoo

Arduino для индустриальных применений

Recommended Posts

Есть желание сделать плату, совместимую с Arduino и пригодную для индустриальных приложений, т. е. способную корректно, без сбоев работать в условиях достаточно сильных электромагнитных помех, механических загрязнений и при высокой влажности.

Если с грязью и влажностью можно будет побороться лакировкой платы, то для защиты от помех придется, похоже, довольно глубоко менять схему и печатную плату устройства. Для экспериментального подтверждения работоспособности есть термокамера Reocam TC-250 и испытательный генератор наносекундных импульсных помех ИГН 4.1М с емкостными клещами ЕК 4.

Для первой попытки модернизации была выбрана Arduino Nano; сначала, чтобы не нарубить дров, было решено скопировать оригинальную схему. Если у вас есть опыт работы с Arduino, приглядитесь пожалуйста, нет ли в схеме несостыковок с первоисточником.

Если дело будет доведено до конца, то разработанная плата будет доступна на тех же условиях, что и оригинальная Arduino Nano — в свободном доступе будет как схема, так и печатная плата устройства.

Схема во вложении.

diy-industrial-arduino-clean-sch-wiredlogic.io.png

Edited by ecoo
Коррекция тегов

Share this post


Link to post
Share on other sites

и какие меры помехозащиты вы планируете применить?


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
17 часов назад, mail_robot сказал:

и какие меры помехозащиты вы планируете применить?

Защита питания, GPIO, входов АЦП. Без гальванической изоляции, иначе плата получится очень большая. Схему обязательно выложу для обсуждения.

Share this post


Link to post
Share on other sites

Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее

это все общие слова. Конкретнее

ну и строить что-то толковое на базе ардуино, это конечно редкий мазохизм

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее

Если под совместимостью подразумевается использование среды программирования от ардуино - то нахрен кому это нужно в промышленности??? Тех трёх стандартных и понятных даже инженерам, далёким от программирования - достаточно. И они гораздо удобнее, плюс подразумевают асинхронность (читай "многозадачность"), которой в ардуине и близко нет, а в промышленности без неё - никак.

Share this post


Link to post
Share on other sites

Новинки гибридных конденсаторов: преимущества технологии

Гибридные конденсаторы унаследовали от полимерных конденсаторов такие достоинства как устойчивость к импульсам тока, повышенную надежность и низкое собственное сопротивление, а также высокую емкость и низкий ток утечки, как у алюминиевых электролитов. Благодаря этому гибридные конденсаторы могут с успехом заменить традиционные алюминиевые конденсаторы.

Подробнее

1 час назад, oldmao сказал:

Тех трёх стандартных

тех трех чего?


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

наверно языков программирования для ПЛК: ST, FBD, IL

Share this post


Link to post
Share on other sites

похоже для какой то цели человек очень хочет сэкономить


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
13 часа назад, oldmao сказал:

плюс подразумевают асинхронность (читай "многозадачность"), которой в ардуине и близко нет

Если ПЛК будет на базе МК и ему подобном, где программа выполняется линейно, то её (асинхронности (читай"многозадачности")), также, никакой не будет.
Причём тут абдурина ?
 

Share this post


Link to post
Share on other sites

а где вы видели ПЛК не на скалярном контроллере?

другое дело что для ПЛК очень желательно иметь ОСРВ на борту, а это уже само по себе дает некоторое ограничение по камням снизу, в которое восьмибитки AVR и PIC уже не попадают

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
4 часа назад, mail_robot сказал:

для ПЛК очень желательно иметь ОСРВ на борту

Не желательно, а строго обязательно! 

Share this post


Link to post
Share on other sites

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

mail_robot Конкретнее

Сейчас обдумываю схему помехозащиты, как нарисую - обязательно выложу, обсудим.

Share this post


Link to post
Share on other sites
Guest Ломтик

Этот товарисчь на всех доступных форумах отметился со своей "идеей".

Даже если не вдаваться в подробности, то взглянув на схемку - он что, смерти L1117 хочет, подавая на её выход напряжение от УСБ?

Share this post


Link to post
Share on other sites

Взглянуть бы на то производство, куда @ecoo собрался свою поделку внедрить. Оно хоть застраховано? И сертификат Ростехнадзора он как получать собрался?
Не, если под "производством" подразумевается самогонный аппаратик или парничок какой на даче - то флаг ему в руки и барабан на шею. Каждый - сам себе злобный Буратино...

Share this post


Link to post
Share on other sites
18 часов назад, Гость Ломтик сказал:

он что, смерти L1117 хочет, подавая на её выход напряжение от УСБ?

Это соответствует схеме оригинальной Arduino Nano, мы же пока с ней разбираемся.

Share this post


Link to post
Share on other sites
Guest Ломтик

Понятное дело, что соответствует оригинальной схеме. Но зачем делать ровно то же самое, особенно после того, что вы сами недовольны помехозащищенностью оригинальной схемы.

Вообще, сам по себе LM1117-5.0 - это регулятор с малым падением напряжения. И допустимое входное у него очень низкое, не выше 9 В, а на практике вообще лучше вольт 7-8, не больше. Иначе начинает сильно греться даже при мизерных токах. У меня уже был неприятный опыт, уже несколько раз писал про него, когда я чуть было не сжег дорогущий TFT-дисплей из-за перегрева и пробоя этой LM1117. А всего-то, на ее входе было стандартные промышленные 12 В, и ток потребления порядка 60 мА от подсветки дисплея.

Так что, на входе нужно ставить классическую L7805 в корпусе D2PAK. Причем, желательно дополнить на входе варистором для защиты от импульсных помех, типа JVR-05N330K или JVR-10N270K а так же параллельным диодом с обратной полярностью и предохранителем (можно самовосстанавливающимся, что-то типа MF-MSMF075/24) для защиты от переполюсовки питания - "защита от дурака".

Но одна  только принципиальная схема - это полдела, даже треть. А разводка печатной платы, а длинные соединительные провода, которыми любят опутывать свои поделки горе-ардуинщики. Попробуйте собранную конструкцию прогнать через этот ваш ИГН 4.1М, и вы увидите, как помехи просто пляшут по всем частям платы, сколько бы конденсаторов вы не навешивали.
Может быть конечно низкоскоростная слабенькая Мега и не почувствует их при определенном раскладе, но ХЗ.
Тут еще больший вред, чем от помех, может быть от говнокода, который так любят генерировать ардуинщики. Но это уже отдельная тема...

Share this post


Link to post
Share on other sites
3 часа назад, Гость Ломтик сказал:

И допустимое входное у него очень низкое, не выше 9 В, а на практике вообще лучше вольт 7-8

вы даташиты совсем не умеете читать? Для всех типов 1117 допустимое входное не выше 7 вольт.


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
Guest Ломтик

читать умею, уважаемый. Вот вам даташит на LM1117 - http://www.ti.com/lit/ds/symlink/lm1117.pdf  и еще один, http://www.promelec.ru/pdf/lm1117.pdf

Давайте-ка по-быстренькому вместе найдем главу Absolute Maximum Ratings, а в ней строчку DC Input Voltage и хором коллективно прочтем. Ну-с, что мы там видим? 20 V. Вы тоже это видите?
А то, что вы называете 7 вольт, это относится к регулировочной характеристике.
В графе Recommended Operating Conditions написано макс.входное 15 В.
И еще одна графа показывает, что VIN = 6.5V, 0 <= IOUT <= 800mA
Вот это значение как раз ближе к практическому. Хотя в других строчках таблицы видны и 10, и 15 В.
Короче говоря, производители сами толком не определились, при каких и сколько можно..
Практика показывает, что почти ничего не можно.
 

Share this post


Link to post
Share on other sites

можете подключать хоть 30, уважаемый. Если читать умеете только в строчку.

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
Guest Ломтик

Бездоказательно, mail_robot, бездоказательно. Покажите ту строчку, где написано иное. Да вы просто сами то не читали даташита, а где-то от кого-то услышали, что типа чето там 7 В, посему и решили так.

 

Share this post


Link to post
Share on other sites

вы же видите, я не спорю, значит все так. Чего вам еще хочется?

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

ну деталек много. Платка будет с лапоть размером.

У меня лично несколько вопросов

1. Зачем столько RCR, когда можно было воткнуть обычные супрессорные сборки, коих навалом готовых в компактных корпусах?

2. Кварц на плате не способствует помехозащищенности и частенко становится основной проблемой при включении мощных нагрузок.

3. Наличие такого количества дросселей на VCC для какой цели?

4. Что дает применение такой экзотики как LM4600 кроме пафоса и необходимости использовать параметрик? По линии +5 вполне бы хватило и одного параметрика. Там разброс +/-слон


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
В 4/10/2017 в 19:21, mail_robot сказал:

Платка будет с лапоть размером.

Наверное, да. Пока даже точно не знаю, как обеспечивать совместимость со штатными шилдами.

В 4/10/2017 в 19:21, mail_robot сказал:

Что дает применение такой экзотики как LM4600 кроме пафоса и необходимости использовать параметрик? По линии +5 вполне бы хватило и одного параметрика. Там разброс +/-слон

Стоят два LM46002, после них линейные стабилизаторы не нужны. Думаю, при Uвх = 50 В и Uвых = 5 В, Iвых = 2 А нужно безальтернативно ставить импульсный стабилизатор, иначе придется делать огромный радиатор и иметь низкий КПД. Конкретно LM46002 взял из-за расширенного диапазона входных напряжений и относительной дешевизны.

Над остальным пока думаю.

Edited by ecoo

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения


  • Понижающий преобразователь напряжения

  • Similar Content

    • By admin
      В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno.
      Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248
      Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE
      Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3
      Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32
      Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark
      Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA
      Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q
      Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
    • By sys
      Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало.
              Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться.
      Присутствовал на борту модуль с Алиекспресса с DS3231,  на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками  и подвергалось давлению перфекционизма. Времени для записи, по даташиту  10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM.
             Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц,  выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы.
      Для FM24C04:
      #include <Wire.h>
      byte iich = 0x50;// адрес устройства
      unsigned int address = 0;
      byte datawrite = 0x77;// чем заполнить ячейки памяти
      void setup() {
        Serial.begin(115200);
        Wire.begin();
        Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают
        for (address = 0; address < 512; address ++ ) {  // цикл для записи в память
          iic_write (address, datawrite);    
        }
        for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти
          Serial.println ();
          Serial.print (address);
          Serial.print ("--");
         Serial.print (iic_read (address),HEX);
          Serial.print ("--");   
        }
      }
      /////////////////////////////////////////////////////
        void loop() {
        }
      /////////////////////////////////////////////////////
        
      unsigned int iic_read (unsigned int adrd) {
          Wire.beginTransmission(iich);
          Wire.write(adrd);
          Wire.requestFrom(iich, 1);
          return  Wire.read();
          Wire.endTransmission();
        }
       void iic_write ( unsigned int adwr, byte dat) {
          Wire.beginTransmission(iich);
          Wire.write(adwr);
          Wire.write(dat);
          Wire.endTransmission();
        }
       
      Для  FM24С64 меня ждали несколько шикарных, испытанных временем граблей.
      Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор  internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим  проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе.
      Подпрограммы изменились, для чтения:
      unsigned int iic_read (unsigned int adrd) {
        Wire.beginTransmission(iich);
        Wire.write(adrd >> 8);// старший байт
        Wire.write(adrd & 0xFF);//младший байт
        Wire.requestFrom(iich, 1);
        if (Wire.available()) {
          return  Wire.read();
        }
        Wire.endTransmission();
      }

      для записи:
      void iic_write ( unsigned int adwr, byte dat) {
        Wire.beginTransmission(iich);
        Wire.write(adwr >> 8);
        Wire.write(adwr & 0xFF);
        Wire.write(dat);
        Wire.endTransmission();
      }
      Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя.
      По поводу  FM24C64 (подозреваю что и С32 ,  С128,  С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо.  Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-)  и способ адресации отличается от младших, с меньшим объёмом.
         Интересных всем проектов!
    • By jonytvester
      Есть у меня два блока питания один на 35kV второй на 65kV, у обоих присутствует порт аналогового программирования 0-10 v (смотрите  прикрепленный мануал ), я ищу умельца который сможет выполнить описанную ниже задачу. возможно есть уже готовое решение ? 
      Задача состоит из двух частей 
      Железо которое должно подключатся с одной стороны  к блоку питания FUG(мануал во вложении ) выдавая от 0-10V , а с другой стороны к ПК через юсб Программа , в которой будет возможно калибровать выходное напряжение блока питания  в зависимости от подключенного БП, возможность повышать/понижать  напряжение постепенно , таймер на выключение/ включение блока питания  .  Analog_programming.pdf
    • By Gor_Th
      Доброго времени суток.

      Есть ли здесь знатоки, кто мог бы на пальцах объяснить работу минут в часах с видео? а еще лучше подсказать, где можно найти схему и код на подобное. (Имеются часы: плоская дощечка длинною в 30см на которой зажигаются минуты. То есть нужна схема, при которой индикаторы зажигаются поочередно.)
      Я в этом деле полный профан и начал копаться в "ардуинах" с неделю назад. Если я правильно понимаю можно получить данный эффект с помощью часов реального времени (например DS 3231) подключенных к arduino и 60 светодиодов подключенных через сдвиговые резисторы плюс, разумеется, должен быть будильник и кнопки которые этим всем оркестром будут управлять, так?
      Реально ли найти готовые схему подключения и сам код работы подобных часов?
      PS: Если кто даст буду крайне благодарен (мало ли у кого-то завалялось).

      lineclock1.mp4
    • Guest Игорь
      By Guest Игорь
      Доброй ночи, уважаемые.
      Прошу Вашего совета по следующей куче проблем для меня, т.к. не соображаю в электронике, схемах, резисторах и подобному, но дружу с компом и есть желание сделать определенный механизм, но пока нет наставления на путь истинный от специалистов)
      Задача состоит в следующем - хочу мотор стеклоочистителя подключить к Ардуино, но управлять им необходимо с кнопки. Шилд, например, который обрабатывает сигнал нажатия на кнопку (допустим кнопка записи), при ее активации, нажимаю на другую кнопку, которая дает команду движку вращаться по часовой стрелке. Отпускают ее, моторчик останавливается. Другая кнопка, вращение в противоположную сторону. Т.е. записал последовательность и продолжительность вращений,  нажимаю вновь на кнопку запись и мои действия сохраняются. Далее на 4 кнопку жму и моя игра с моторчиком автоматически воспроизводится. Если такое выполнимо с помощью плат и шилдов без доп программирования логики, то буду ОЧЕНЬ  признателен если расскажете как вкратце это осуществить или кинете ссылки к примеру на Али с нужными товарами. Если легковыполнимо, то в будущем наверное уже разберусь,  как обойтись без нажатия на 4 кнопку (воспроизведения записанных действий) и запускать этот процесс, подключив датчик движения или звука.
      Если необходимо описывать логику или создавать типа какого-то протокола, что шилд (?) умел понимать, что я от него хочу, то подскажите среду разработки для неба, что б там по минимуму было наворотов) В принципе с основами c++ для Ардуино скорее всего придется ознакомиться. 
      Заранее спасибо!
×
×
  • Create New...