Borodach

Цифровые Микросхемы 572Пв5,2,6, 7106, 7107... .

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

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

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

  • x
    мм
Заказать Получить купон на $5.00
nameless    0

Добрый день.

В электронике не силен от слова совсем, но руки растут из правильного места. Спаять, собрать по инструкции смогу :). Есть в наличии датчик влажности/температуры с выходом 0,4 - 20 мА https://relsib.com/product/datchik-vlazhnosti-i-temperatury-dvt-03te. Есть желание вывести его показания на семисегментный индикатор. Фактически, как я понимаю, для этого нужно измерить значение тока, т.е., нужен миллиамперметр. Возможно как-то доработать приведенные здесь схемы амперметров под эту задачу? 

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


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

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

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


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

Спасибо. Боюсь, в этой теме это уже будет оффтоп и жесткий ликбез, поэтому заранее извиняюсь. Получается, что, допустим, я купил/спаял преобразователь 0,4 - 20 мА / 0 - 10 В. Если теперь подать показания с преобразователя на вольтметр, так он ведь и покажет вольты, а не градусы.

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


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

Преобразователь должен будет выдавать напряжение пропорциональное измеряемой величине. Допустим 5 Вольт при 50 градусах, 10 Вольт при 100. 3.66 Вольта при 36.6 градусах и т.д. На вольтметре просто  включаем точку в нужном разряде.

Если покупать, то лучше сразу готовый прибор с нужным токовым входом, типа ТРМ.

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


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

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

Насчет преобразователя. Нашел вот такой: https://ru.aliexpress.com/item/Electricity-conversion-voltage-signal-conditioning-module-turn-4-20-ma-0-10-V-to-15-V/32716626890.html. Вроде бы там можно как-то накрутить зависимость вольт от ампер?

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


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

Я китайского не знаю. Какие-то подстроечники стоят, а для чего непонятно.

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


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

Нашел про него на английском: http://www.ebay.com/itm/Current-to-Voltage-Signal-Transmitter-4-20mA-to-0-3-3V-5V-0-10V-0-15V-Converter-/201525599275. Вряд моя идея верна. Там подстроечники для коррекции нуля и выходного напряжения.

Я, кстати, немного запутался, зачем такие сложности с вольтметром. Я так понимаю, что этот АЦП должен представлять в цифровом виде значение напряжения, которое подается на 30 и 31 вход (смотрю даташит на сайте Чип и Дип). На них можно подать от - 2 до + 2 В. Берем мой датчик + преобразователь напряжения. Подаем напряжение с преобразователя на 30/31 вход и все должно заработать. Ну чисто принципиально. Нет? 

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


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

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

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


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

Ага, спасибо. Значит, берем датчик, берем преобразователь ток/напряжение с верхним порогом + 2V, берем, допустим, вот этот термометр: http://vrtp.ru/index.php?act=categories&CODE=article&article=2266. Вместо датчика, который предусмотрен проектом, подключаем мой датчик через преобразователь напряжения и все должно работать? Такой "дработки" схемы для подключения моего датчка будет достаточно? 

2266_4_.jpg

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


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

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

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


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

Тот датчик, который у меня есть, уже работает в составе оборудования. Проблема только в индикации его показаний. Сейчас они отображаются на дисплее ПР200 (http://www.owen.ru/catalog/programmiruemoe_rele_pr200/77396741 ). Дисплей  у него маленький и расположен неудобно. Вот и возникло желание вынести показания в более удобное место и сделать их нагляднее. У того же Овена есть для этого готовое решение - индикатор токовой петли. Правда один индикатор стоит от 2 000 руб. Учитыая, что по большому счету, это я с жиру бешусь и вполне можно обойтись дисплеем ПР200, отдавать по 2 000 руб за индикатор неразумно. Вот и думаю, что можно наколхозить. 

Про "примерно так" не подскажите чуть подробнее?

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

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


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

Честно говоря, я в недоумении - для предприятия 2тр - тьфу и растереть, я то думал, вы для себя городите огород - картошку в подвале контролировать.

А что подробней - преобразователь выдаёт Вольты, прибор их измеряет и выводит на дисплей.

Могу ещё посоветовать пару книжек С. Бирюкова "Устройства на микросхемах" и "Цифровые устройства на МОП интегральных схемах", в сети они есть. Там подробно рассмотрено устройство и принцип работы эти микросхем. Без теоретической подготовки наладить, добиться нормальной работы будет очень сложно, просто взять и спаять по схеме тут не выйдет.

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


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

Насчет "тьфу и растереть" - это вы погорячились, и не за такие суммы жмутся :). А по факту да, это я для себя. Просто "погреб" у меня большой и "картошки" много :).  

Книги да, полезные. В самом начале темы на них есть ссылки. Мозг у меня просто уже прошел профессиональную деформацию - с трудом новую информацию воспринимает :) 

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: admin
      Купить ADS1115 за ~2$
      Ссылка на datasheet ADS1115
      Дополнительные файлы с описанием микросхемы: ADS1115.pdf
      Библиотека для модуля на микросхеме ADS1115: Adafruit_ADS1X15-master.zip
    • Автор: oner
      Пишу программу для датчика освещенности, который должен по нажатию кнопки измерять напряжение на одном из портов своего АЦП и записывать измеренное значение (в вольтах) на SD-карту. При повторном нжатии на кнопку результат измерения должен записываться на карту в тот же файл, но на новую строку.
       
      Сопротивление фоторезистора в зависимости от освещенности изменяется пимерно от 0,5 до 25 кОм, поэтому в качестве второго резистора делителя напряжения, результат деления которого и замеряем, выбран 27 кОм, чтобы не перегружать вход АЦП.
      Собственно, а куда по схеме эту кнопку лучше ставить? На питание или на какой-нибудь порт?

       
      В коде отталкиваюсь от такого:
      #include <mega8.h> #include <stdio.h> #include <stdlib.h> #define ADC_VREF_TYPE 0x00 unsigned int result; unsigned int read_adc(unsigned char adc_input); // volatile unsigned int count; //счетчик скопированных данных { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } #asm("sei") ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x81; while (1) { result=read_adc(0); result=(result*500L)/1024; // Тут мы измерили напряжение на резисторе if(disk_initialize()==0) //инициализируем флешку { FILE *file; //Открываем текстовый файл с правами на запись file = fopen("light.txt", "w+t"); //Пишем в файл fprintf(file, result); //Закрываем файл fclose(file); getch(); pf_mount(0x00); //демонтируем фат } }  
    • Автор: Amiva
      Добрый день всем. Недавно начал изучать ардуино и основы работы с ним.  Вообщем в справочнике по работе с ним дошёл до работы с АЦП и тут возник вопрос, на который я пока не понимаю ответа. Когда я измеряю напряжение с входа, т.е подаю 5 В, все хорошо он их определяет и пишет 5 В соответственно, но когда я снимаю напряжение со входа, т.е ничего не подумаю, всё равно есть какие то измерения? Для себя я выделил 2 варианта ответа.
      1) Это случайные наводки, которые ловит вывод.
      2) Это из-за того, что измерение всегда производится относительно опорного напряжения, что вносит свои погрешности.
      Можете сказать, я думаю в правильном направлении?
    • Автор: oner
      Собираю устройство, которое на основании измеренного напряжения на резисторе своим АЦП на одном из своих портов выдает импульсы широтой, зависящей от измеренного напряжения. Широтой этого импульса задается ток, который, протекая через вышеупомянуты резистор, формирует вновь измеряемое напряжение. Пока результат такой. Зеленым цветом - сигнал на выходе контроллера, красным - напряжение на резисторе в цепи истока полевого транзистора, оно пропорционально току, протекающему через этот транзистор.Результат такой:

      Вопрос знатокам: почему это измеренное напряжение всегда застывает на одной и той же величине (0,8В)? Код:
      #include <mega8.h> #include <delay.h> #include <stdio.h> long result; long n=1; // Voltage Reference: AVCC pin #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (1<<ADLAR)) unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | ADC_VREF_TYPE; // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=(1<<ADSC); // Wait for the AD conversion to complete while ((ADCSRA & (1<<ADIF))==0); ADCSRA|=(1<<ADIF); return ADCH; } void main(void) { // Input/Output Ports initialization // Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0); // State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // ADC initialization // ADC Clock frequency: 125,000 kHz // ADC Voltage Reference: AVCC pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE; ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0); SFIOR=(0<<ACME); PORTB=0x00; DDRB=0x01; #asm("sei") while (1) { result=((read_adc(0)*5)/256.00); // Тут мы измерили напряжение на резисторе if (result>2) // и сравниваем, например, с 2В. В случае отклонения // измеренной величины от 2В меняем длительнось импульса n. { n=n-1; PORTB.0=1; delay_ms(n); PORTB.0=0; delay_ms(20); } if (result<2) { n=n+1; PORTB.0=1; delay_ms(n); PORTB.0=0; delay_ms(20); } }; }  
    • Гость Сергей
      Автор: Гость Сергей
      Здравствуйте.
      Купил АЦП для ардуино ADS1115 by Adafruit. И столкнулся с такой проблемой АЦП нормально работает с сигналом 110 Гц ниже данного выдает какую-то мешанину.
      Спасибо.