stas732

Генератор Токовой Петли + Термометр

12 сообщений в этой теме

stas732    4

Приветствую, уважаемые форумчане!

Хотел бы вам представить прибор для измерения и генерации тока.

По специфике своей работы (наладка и настройка автоматики) хотел иметь в наличии недорогой прибор для работы.

Прибор имеет следующие функции:

генерация и измерение токовой петли в диапазоне 0-24 мА

измерение постоянного напряжения 0-36 В

измерение температуры электронным датчиком (Dallas) -55 - + 120 Град

Возможно в функционал что-то добавится, для удобства.

Программу для микроконтроллера прилагаю. Модификации ПО приветствуются для своих нужд.

Если у кго-то есть идеи улучшения как электронной начинки, так и ПО - пожалуйста.

Электронные компоненты специально не подбирал, использовал имеющиеся под рукой.

Сразу после подачи питания ( если оно не меньше 7В ) устройство переходит к первому пункту меню - измерению постоянного напряжения, при нажатии кнопки, следующее меню - измерение тока, далее - генерация тока, измерение температуры, и последний пункт меню - измерение напряжения питания.

Прилагаю фото готового устройства

post-78998-0-59469800-1404975681_thumb.jpg post-78998-0-92434900-1404975673_thumb.jpg

post-78998-0-49330400-1404998634_thumb.jpgpost-78998-0-25694900-1404998625_thumb.jpg

post-78998-0-95143200-1404975481_thumb.jpg

post-78998-0-12576600-1404975529_thumb.jpg

current_measure.rar

Изменено пользователем stas732
  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
mvkarp    3 529

Неплохо было бы маленькую инструкцию по работе схемы. Не могу определить токовый выход.

Для универсальности обслуживания устройств КИПиА добавить диапазоны выходного тока 0-5мА, 4-20мА. И можно расширить 0-20 до 0-(25...30)мА - для проверки сигнализации обрыва линии или отказа датчика.

Добавить выход по напряжению 0-5В, 0-10В.

Уж коль есть источник тока, то можно добавить измерение сопротивлений, прозвонку диодов.

Пока такие "хотелки". Может, кому-то это и лишнее. :unknw:

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
stas732    4

Я изначально подумывал разбить диапазоны,но потом, из практической необходимости выбрал именно расширенный диапазон,охватывающий все известные + запас для перекрывания диапазона (до 24-25 мА). Думал использовать ШИМ для генерации тока на выходе с помощью кнопок больше и меньше, но это очень непрактично оказалось,когда необходимо в единицу времени изменять ток в широких пределах ( кнопками пришлось бы ждать дольше изменений тока). Выход по напряжению подумываю добавить, но уже сейчас если включить режим генерации по току и подключить резистор 500Ом, то на нем как раз и будет падение напряжения 0-10 В в диапазоне тока 0-20 мА.

Прозвонку диодов и измерение сопротивлений я считаю излишней, в моем случае эти функции выполняет миниатюрный мультиметр - он пофункциональней в отношении прозвонки.

Вложенный архив обновил

Изменено пользователем stas732

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 529

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

Про напряжение - здесь Вы ошибаетесь. При подключении нагрузки напряжение на зажимах (на подключенном ранее образцовом резисторе) изменится. Поэтому уж если делать, то именно источник напряжения. Т.к. проверять придется реальные цепи с конечными и разными сопротивлениями.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
stas732    4

Напряжение падения как раз стабилизировано, так как сопротивление стабильно (500 Ом), и ток стабилен и не зависит от напряжения питания прибора( в большей части диапазона). Просто этот способ уже проверял на практике для задания частотнику 0-10 В. Способ конечно дерзкий и непрактичный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 529

Минимальное сопротивление потребителя для унифицированного сигнала 0-10В вроде как 2кОм. Подключив его параллельно 500 омам, получим большую погрешность.

Просто обычно входное сопротивление приборов производители делают повыше, > 10кОм. Поэтому Вы и не заметили это шунтирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
stas732    4

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

Самому нужен режим 0-10В, попробую его реализовать, по наличию времени.

В перспективе есть желание реализовать выдачу сигнала по закону синуса(или другого) с низкой частотой, например, проверять работоспособность пишущих приборов (графикопостроители, регистраторы,самописцы)

Изменено пользователем stas732

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 529

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dina    1

Здравствуйте! У меня 3 вопроса.1 В архиве не увидил прошивки. 2 как цепляется переменный резистор ,который как я понял задаёт ток. 3 U1 И U2 это твердотельное реле или можно поставить опторазвязку pc817.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
stas732    4

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

а подключается как -в схеме, что именно не понятно?

post-78998-0-92284700-1415729113_thumb.gif

U1 и U2 - это твердотельное реле, именно оно, так как типовая оптопара не потянет ток коммутации в цепи питания, а также в измерительной цепи на оптопаре будет падать "не учтенное" напряжение, внося погрешность в измерении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
stas732    4

Скоро обновлю генератор, будет несколько диапазонов, будет работать на энкодере, АЦП, ЦАП, генерировать 0...10В, 4...20мА,0...20мА, причем ток генерировать как в пассивном режиме(без выдачи 24В в цепь измерения), так и активном режиме(цепь измерения запитывается 24В ). Детали будут достаточно доступные,  а АЦП и ЦАП можно приобрести в Китае, за небольшую стоимость. Измерения и генерация теперь будут по двум проводам.

Изменено пользователем stas732

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 529
В 28.08.2017 в 09:05, stas732 сказал:

АЦП, ЦАП, генерировать 0...10В, 4...20мА,0...20мА

Если так - хорошо
Если еще и температурная стабильность -плюсик!

Хорошая идея. Посмотрим на конечную схему.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Илья Говоруха
      Доброго времени суток, имею в наличии цифровой термометр без LCD-экрана, т.к. треснул. Необходимо сейчас переделать его в LED. В городе нигде нет, а заказывать не хочу, хочу попробовать спаять.

    • Автор: olegtur77
      Досталась плата бесконтактного термометра типа GM-550 (такой, не рекламма http://gtest.com.ua/benetech-gm550.html ) , но без пироэлемента, поиски привели в тупик, какой же там используется пиродатчик. На плате под него три контакта ТР+,ТР- и ТР(?) .
    • Автор: Артемон
      Всем привет. Просьба посодействовать в исправлении кода для термометра. Так как сам я в этом новичек, то код собирал из трех чужих проектов. Реализация такова, подключение термопары через микруху Max6675 к Atmega и вывод данных на LCD экран. В архиве прилагаю проект Atme Studio 7 и принт скрин из Протеуса. Ошибка заключается в неправильных показаниях температуры

      Test1.rar
      Вот код, чтоб не скачивать проект.

      #define F_CPU 1000000UL #include <util/delay.h> #include <avr/io.h> #include "max6675.h" #include "LCD.h" uint16_t gettemp(void); //Funktionsdeklarationen void initavr(void); //gettemp () returns absolute Temperature in Temp * 4 °C - in 1/4°-steps // uint16_t gettemp(void){ //Temperatur holen. uint8_t bit = 0, bitnr = 12; //Variablen uint8_t foo1 = 0; uint16_t Rohdata = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen bit = 15 - foo1; //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if((bit <= 14) && (bit >= 3)){ //Einfach mal die 12 relevanten von den 16 Bits ausfiltern if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... bitnr--; //zдhlen wir runter... Rohdata |= (1 << bitnr); // und schieben eine 1 an bit x }else{ //WENN dem NICHT so ist, dann... bitnr--; //zдhlen wir runter... Rohdata &= ~(1 << bitnr); //und schieben eine 0 an bit x } }else{ //weis au nimmer, was das soll. bitnr = 12; } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return Rohdata; //Das ist doch mal was ;D } // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected // (to enable this feature T- must be connected to GND) uint8_t getTC(void){ //Temperatur holen. //Variablen uint8_t TC = 0; uint8_t foo1 = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if(foo1 == 2){ //das 3. bit ist fьr uns relevant. if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... TC = 0; }else{ //WENN dem NICHT so ist, dann... TC = 255; } } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return TC; //Das ist doch mal was ;D } //Initiates the MAX6675 and IO-pins void init_6675(void){ //AVR initialisieren SO_DDR &= ~(1 << SO); CS_DDR |= (1 << CS); SCK_DDR |= (1 << SCK); //IOs setzen SO_Port |= (1<<SO); //Pullups an. (Wichtig fьr MAX6675, der kann nicht anders, hab ich festgestellt... CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. SCK_Port &= ~(1 << SCK); //SCK LO } int main(void) { init_port();// инициализируем порт ЖКИ lcd_init();// инициализируем ЖКИ init_6675(); while (1) { char buffer[8]; int temp; temp = gettemp(); temp /=4; lcd_gotoxy(0,0);//перемещаем курсор в верхний левый угол sprintf(buffer, "t=%i\xdf\C ", temp); // так как тут не плавающая запятая то числа с запятой записываются так %i.%i, код градуса записывается так \xdf lcd_putstring(buffer); } }
      вставляете код пользуйтесь тегами [CОDE][/CОDE] редактора сообщений, кнопка <>
    • Автор: sezam
      Доброй ночи, форумчане!
      Подскажите, каким аналоговым термометром, например LM35, и как можно измерить температуру вдыхаемого и выдыхаемого воздуха без касания к коже?
      Пока на примете есть такие термометры, как LM35 и LM35DM (TO-46, TO-92, SO-8), LM335, LM20 (microSMD).
      Интересует в первую очередь скорость и качество измерения, а также погрешность.
      Что можете посоветовать?
    • Гость Дайвер
      Автор: Гость Дайвер
      В мастерской встала задача измерять и отображать быстроизменяющуюся температуру в пределах от 100 до 500 градусов. Скорость изменения 30-50 градусов за 1 секунду. Важна только скорость нарастания.
      До этого работал только с DS18B20, но он под такую задачу не подойдет.
      Подскажите как варианты тут есть. Интересует как схема, так и какой тут датчик можно использовать с очень низкой инерционностью и быстрым "откликом".
  • Сообщения

    • Я думаю что R1  в "ланзаре" вполне возможно увеличить до 100 кОм., а то и выше тем самым увеличив входное сопротивление.  Если схема собрана достаточно грамотно, устойчивость не нарушится.
    • Актуальность темы. Применение высоковольтных нано и субнаносекундных импульсов достаточно обширно в настоящее время и постоянно расширяется вместе с развитием и удешевлением аппаратуры формирования импульсов. Некоторые примеры применения приведены ниже.
      Лазеры - возбуждение ячеек Поккельса и т. п.
      Экспериментальная физика - поджиг разрядников, формирование электронных и ионных пучков соответствующей длительности, времяпролетная массо и энерго спектрометрия.
      Химия - оперативное измерение параметров электролитов.
      Биология - импульсный электрофорез хромосом.
      Акустолокация - оперативное бесконтактное измерение толщины металлов с высокой точностью.
      Радиолокация - импульсная (широкополосная) локация, одно из преимуществ которой в малых габаритах и потреблении питания при большой импульсной мощности системы. Измерение параметров антенных систем во временной области с исключением влияния отражений от поверхности земли, зданий и т. п.
      Геолокация - радиолокация земной породы, океана и т. д. для поиска подземных вод, пустот (например в археологии), металлов, направления угольных пластов, измерения толщины льда.
      Радиоэлектроника - измерение помехоустойчивости аппаратуры, в том числе ЭВМ, импульсы развертки ЭОП. Посмотрите во вложении дипломный проект по этой теме. И еще автореферат диссертации на соискание ученой степени кандидата технических наук по этой же теме. А если еще и свое исследование проведете с учетом новшеств за прошедшие пару десятилетий, а не тупо проект напишете, сдадите и забудете, то честь вам и хвала. Генератор видеоимпульсов наносекундной длительности (2000).pdf Формирователи мощных наносекундных и субнаносекундных импульсов на полупроводниковой элементной базе (1994).pdf
    • Гость Дмитрий
      Всем доброго времени суток. Столкнулся с таким вопросом. Везде  в учебниках я читал, что земля это ноль, и все напряжения отсчитываются от него. Но вот в одной схеме я увидел, что на один вывод подается, например +20 В, а на другой вывод -20 В. Оказалось, что -20 В было подано на землю. Так вот, почему на землю подано -20 В, а не 0? И что, получается тогда на вход мы подаем 40 В (Разница между +20 и -20)?
    • С землями там все хорошо,фона нет,есть высокочастотный не большой шум,думаю шумит пу,вход замыкаю без изменений,выход замыкаю и тишина! 
    • хоть фотки кинул бы что ли?