Выжимаем максимум. USB осциллограф на Arduino

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Okmor

Привет! За новую прогу спасибо!

Пробовал Мегу8 с делителем АЦП /2 ?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

К сожелению пока не пробовал. Начал ремонт и на хобби остается несколько часов в неделю, а на работе не попаяешь.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Okmor пишет:

К сожелению пока не пробовал. Начал ремонт и на хобби остается несколько часов в неделю, а на работе не попаяешь.

Понимаю, сам не тяну свои проекты в погоне за

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

пост #28 дана схемка для подключения и замера 5 вольт, для чего там ресет подключается к 3в?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Baks пишет:

пост #28 дана схемка для подключения и замера 5 вольт, для чего там ресет подключается к 3в?

Это не ресет, а опорное напряжение REF. От опортного напряжения я отказался в виду его абсолютной непредсказуемости.

Витенька
Offline
Зарегистрирован: 03.04.2016

А можно чуть точнее по поводу опорного напряжения. Вопервых, так нужно всеже подавать эти 3 вольта или нет, и вовторых, где этот пин REF?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Опорное напряжение нужно подавать. В скетче выбрано "внеший источник напряжения", потому нужно его подключать.

Вывод AREF расположен сразу возле вывода 3,3В , я их просто тонкой проволокой обматываю.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Кто нибудь это осилил в плане переноса на другие МК

Есть STM32 ...  -- 72 мегагерц

Есть ESP 12   -- 80-160 мегагерц

Как большую частоту измерить?

И есть ли возможность даже с этой частотой вывести на дисплей с той же нано - например I2C OLEd...

igorlab
Offline
Зарегистрирован: 11.11.2015

народ, помогите, собрал - какое бы напряжение не подавал, вкл-выкл всегда одна и та же картинка :(

alxppv
Offline
Зарегистрирован: 02.08.2016

Это потому, что на входе опорного напряжения (AREF) - 0В. Нужно замкнуть данный вход на 3.3В или на 5В, а потом на А0 подать аналоговый сигнал. Еще делитель в программе установить СК/4 - СК/128.

Sherkon
Offline
Зарегистрирован: 31.08.2016

Добрый день.

Есть в наличии USB UART на чипе SP2101 Возможно ли его подключить к этой программе, какая схема подключения ? 

Спасибо.

mazaysky
Offline
Зарегистрирован: 19.05.2014

Уважаемые гуру!

Уже весь моСК себе выел, не хочет компилироваться скетч, пишет такое:

In file included from sketch_sep12a.ino:3:
C:\Users\олеся\Documents\Arduino\libraries\CyberLib/CyberLib.h:1: error: stray '\357' in program
C:\Users\олеся\Documents\Arduino\libraries\CyberLib/CyberLib.h:1: error: stray '\273' in program
C:\Users\олеся\Documents\Arduino\libraries\CyberLib/CyberLib.h:1: error: stray '\277' in program
In file included from sketch_sep12a.ino:3:
C:\Users\олеся\Documents\Arduino\libraries\CyberLib/CyberLib.h:788:2: error: #error Ваш контроллер библиотекой CyBerLib РЅРµ поддерживается
sketch_sep12a.ino: In function 'void setup()':
sketch_sep12a:14: error: 'UART_Init' was not declared in this scope
sketch_sep12a:15: error: 'ADATE' was not declared in this scope
sketch_sep12a.ino: In function 'void loop()':
sketch_sep12a:26: error: 'UART_SendByte' was not declared in this scope
sketch_sep12a:27: error: 'UART_SendArray' was not declared in this scope
sketch_sep12a:35: error: 'UART_ReadByte' was not declared in this scope
 
Библиотеку переустанавливал, ардуиноИДЕ менял - всё бестолку!
Можете кто выложит hex, для 328/16 Наны? Можно 168/16 или 8/16 есть все эти МК, могу их вставить в кроватку на Уно.
Помогите старичку!
Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015
mazaysky
Offline
Зарегистрирован: 19.05.2014

Щиро Дякую!

А схемку можна ? Не дуже зрозуміло з скетчу про конденсатори .

З Повагою!

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

mazaysky пишет:
А схемку можна ? Не дуже зрозуміло з скетчу про конденсатори .

Тут все просто.

Выставляя регистры (0 << REFS1) | (1 << REFS0) мы можем изменять опорное напряжение.

Опорное можно подтягивать к питанию, или к встроенному 3,3 источнику.

void setup()
{
  Serial.begin(115200);
  ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADATE) | (0 << ADIF) | (1 << ADIE) | (0 << ADPS2) | (1 << ADPS1) | (0 << ADPS0);
  ADMUX =  (0 << REFS1) | (1 << REFS0) | (1 << ADLAR)  | (0 << MUX3) | (0 << MUX2)  | (0 << MUX1)  | (0 << MUX0) ;
//  REFS1:REFS0
//00    AREF
//01    AVcc, с внешним конденсатором на AREF
//10    Резерв
//11    Внутренний 2.56В  источник, с внешним конденсатором на AREF
}

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Вот добавил схемку в програму.

Теперь не потеряется.

 

mazaysky
Offline
Зарегистрирован: 19.05.2014

Работает!

Ще раз дякую!

ShaTALKER
Offline
Зарегистрирован: 16.11.2016

Всем привет.

Делаю аналогичный проект. 
Вижу, вы использовали CyberLib для того, чтобы ускорить передачу через UART. Но 256 000 бод (256 Кбит в секунду) очевидно недостаточно чтобы передать за секунду описанные 300 000 измерений (больше 2 МБит!). Боюсь, счетчик у вас несколько раз переполняется в прериваниях ADC пока очередную порцию данных отправит по UART. Выходит, отправляются не все измеренные данные. Заметил это по ходу своей работы.
Значит нужно подымать скорость передачи. Даташит говорит что UART работает и со скоростями порядка 1 мегабода, нужно пробовать.

P.S. Делитель на 2 у АЦП не работает, похоже, по той же причине - не успевает отправлять, перезаписывает поверх старых данных и пошло-поехало. Более того, у процессора остаётся слишком мало времени на отправку.
У меня больше работы в обработчике АЦП (иначе реализована передача, не останавливаю прерывания), по этому работает только с делителем 8 (если меньше - передача данных критически замедляется).

ShaTALKER
Offline
Зарегистрирован: 16.11.2016

Добрый день.

Сегодня, используя регистры управления USART, "разогнал" его до 2 Mbaud.

  UCSR0A = (1<<U2X0); //Режим двойной скорости включён
  UCSR0B = (1 << TXEN0); // Только передача
  UCSR0C = (1 << UCSZ01)|(1 << UCSZ00); // Настройка размера фрейма данных 8 бит, без четности, 1 стоп-бит
  // Настройка скорости 2000000 bps при включённом U2X0 (~200 kBps)
  unsigned short ubrr = 0;
  UBRR0H = (ubrr >> 8);
  UBRR0L = (ubrr % (1<<8));

До сих пор не хватает чтобы отправлять 300 000 бит в секунду (делитель тактов АЦП = 4), но это максимум для асинхронного режима передачи с Arduino (которую у меня, похоже, тактует 16 МГц кварц). Но хватает для отправки 130 000 бит в секунду (делитель тактов АЦП = 8).

Большей скорости можно достичь с использованием синхронного режима передачи и поднятием тактовой частоты МК, насколько я понимаю. Но мои 20 МГц кварцы ещё в дороге с Китая.

Весь скетч:

/*
 * Рассчитано для работы на 16 МГц.
 */

//#define DEBUG // вывод в SERIAL читабельной информации о сигналах и перегрузках (помимо обычной)
#define OVERFLOW_CHECK // подсвечивает L-светодиод если USART не успевает передавать данные

#define PD_MASK (B11111100) // маска для D2..D7
#define PB_MASK (B00000011) // маска для D8..D9
#define ADMUX_A0 (B00100000) // значение регистра ADMUX для измерения с A0 (включаем использование AREF (B00xxxxxx), смещаем вывод ADC влево (Bxx1xxxxx), влючаем ADC для измерения A0 (Bxxxx0000))
#define ADMUX_A1 (B00100001) // значение регистра ADMUX для измерения с A7 (включаем использование AREF (B00xxxxxx), смещаем вывод ADC влево (Bxx1xxxxx), влючаем ADC для измерения A1 (Bxxxx0001))
#define UDRE_VAL (0x20)

// буферы для записи замеров из ADC
byte circularList[256];
byte clFirst = 0;
byte clLast = 0;

void setup()
{
  SREG &= B01111111; // отключаем глобальные прерывания

  /* Init I/O pins */
  DDRD &= ~PD_MASK; // переключить D2..D7 на ввод
  DDRB &= B11000000; // переключить D8..D13 на ввод

  MCUCR &= ~(1 << PUD); // разрешить использование pull-up резисторов
  PORTB |= B00011100; // включить pull-up для D10..D12 (20-50 кОм)
  
  DIDR0 = B11111110; // отключаем цифровые входы A1..A7

  /* Init USART */

#ifdef DEBUG
  Serial.begin(115200);
#else
  UCSR0A = (1<<U2X0); //Режим двойной скорости включён
  UCSR0B = (1 << TXEN0);
  UCSR0C = (1 << UCSZ01)|(1 << UCSZ00); // Настройка размера фрейма данных 8 бит, без четности, 1 стоп-бит
  // Настройка скорости 2000000 bps при включённом U2X0 (~200 kBps)
  unsigned short ubrr = 0;
  UBRR0H = (ubrr >> 8);
  UBRR0L = (ubrr % (1<<8));
#endif

  /* Init ADC */
  
  ADMUX = ADMUX_A0; // включаем использование AREF (B00xxxxxx), смещаем вывод ADC влево (Bxx1xxxxx), влючаем ADC для измерения A0 (Bxxxx0000)
  ADCSRB = B00000000; // выбираем Free Running Mode для ADC (Bxxxxx000)
  ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADIE)|(B011<<ADPS0); // включаем ADC (B1xxxxxxx), начинаем преобразование (Bx1xxxxxx), включаем автоматическое начало преобразований (Bxx1xxxxx), включаем прерывания ADC (Bxxxx1xxx), устанавливаем делитель тактовой частоты на 8 (Bxxxxx011)

  SREG |= B10000000; // включаем глобальные прерывания
}

void loop()
{
#ifdef OVERFLOW_CHECK
  if (clLast == (clFirst - 1)) { // сигнал переполнения
    PORTB |= B00100000; // включает подтягивающий резистор для D13, L-светодиод слабо светится
  }
#endif
  
  if((clFirst != clLast) && (UCSR0A & UDRE_VAL))
  {
#ifdef DEBUG
    Serial.println(circularList[clFirst++]);
#else
    UDR0 = circularList[clFirst++];
#endif
  }
}

// Прерывание по завершению измерений АЦП
ISR(ADC_vect)
{
  circularList[clLast++] = ADCH;
}

 

Витенька
Offline
Зарегистрирован: 03.04.2016

Здравствуйте Уважаемый Okmor! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода? 

ShaTALKER
Offline
Зарегистрирован: 16.11.2016

Если нет 3.3 вольна на плате - подключайте AREF к любому источнику стабильного напряжения, который не больше напряжения питания платы (Vcc). Если нет пина AREF - используйте внутреннее опорное напряжение (у ардуин можно переключаться между напряжением питания или внутренним 1.1 В опорным напряжением, иногда встречаются 2.56 В опорного, смотрите в даташите по микроконтроллеру).
Мерять с данной схемой можно от -AREF/2 до AREF/2 (больше или меньше просто не сможет измерит АЦП, если подать значительно больше - есть риск спалить микроконтроллер). В норме - од -1.5 до 1.5 В. Если нужно мерять больше - нужен дополнительный делитель напряжения.
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.

ShaTALKER
Offline
Зарегистрирован: 16.11.2016

Кстати, о разгоне USART.

ВНЄЗАПНО драйвера VCOM, установившиеся вместе с Arduino Studio, через раз ложили виндовс (с БСОД, конечно) при подключению с использованием C# System.IO.Ports.SerialPort. В БСОДе писало что драйвер во время преривания обратился по неверному адресу (IRQL_NOT_LESS_OR_EQUAL, одна из типичных виндовых ошибок, которые ничего не говорят о проблеме). Тем не менее, такого не наблюдалось пока не поднял скорость USART на Arduino.

Путем проб и ошибок определил, что нормально работают китайские драйвера для CH340 (переходник USB <-> UART, который впаян в мой клон Nano). С ними Шиндовс не умирал каждые пять минут.
Поэтому, если у кого-то проблемы с подключением по USB к Arduino Nano и на нижней стороне вашей платы впаян чип CH340G - качайте драйвера (огромной синей кнопкой DOWNLOAD по центру страницы), распаковывайте где удобно, заходите в папку CH341SER и устанавливайте их через SETUP.EXE (попутно разрешая установщику творить всё, что вздумается, с виндой). Само собой, не забудьте перед процедурой удалить старые драйвера (обычно находятся в диспетчере устройств в портах COM и LTP).

Надеюсь, кому-то помог. Нашел данное решение на каком-то англоязычном форуме.

P.S. если что, у меня Windows 10 Pro x64, но, думаю, и для других подойдут.

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Витенька пишет:

Здравствуйте Уважаемый Okmor! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода? 

 

  ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADATE) | (0 << ADIF) | (1 << ADIE) | (0 << ADPS2) | (1 << ADPS1) | (0 << ADPS0);
  ADMUX =  (0 << REFS1) | (1 << REFS0) | (1 << ADLAR)  | (0 << MUX3) | (0 << MUX2)  | (0 << MUX1)  | (0 << MUX0) ;
//  REFS1:REFS0
//00    AREF (вариант 3,3В)
//01    AVcc, с внешним конденсатором на AREF
//10    Резерв
//11    Внутренний 1,1 В  источник, с внешним конденсатором на AREF
1. В скетче вариант без использования 3,3 В. Тоесть тот конец который должен идти на 3,3В вешаете на питание 5В.
2. Мерять можно и 300В и 500В, только не забудьте на щуп делитель поставить. И ноутбук из сети выключить, а то спалите пол дома.

 

Витенька
Offline
Зарегистрирован: 03.04.2016

Спасибо Большое! Вроде бы как понятно с питанием, a без AREF с конденсатором тоже можно будет использовать, и какие делители нужно использовать, и ещё, делаю настройки по Вашему посту #8 но после выхода и входа в программу настройки возвращаются в первоначальное положение, так и должно быть?

Wlad123
Offline
Зарегистрирован: 21.01.2017

Всем привет, никто не делал с внешним АЦП осциллограф на ардуино? Думаю себе кипить вот такой АЦП http://www.stanson.ch/files/USB-oscope/TDA8708A.pdf , только еще не знаю как сделать сбор с него данных и передачу их на компьютер без больших потерь скорости. Может кто делал что нибудь похожее или у кого какие идее есть?

ixus777
Offline
Зарегистрирован: 02.02.2017

ShaTALKER пишет:

Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.

Извините за  вопрос начинающего :

По какой схеме я могу измерять напряжения от -2В до +2В при помощи ардуино и настольного ПК ?

 

alxppv
Offline
Зарегистрирован: 02.08.2016

ixus777 пишет:

Извините за  вопрос начинающего :

По какой схеме я могу измерять напряжения от -2В до +2В при помощи ардуино и настольного ПК ?

http://arduino.ru/forum/proekty/vyzhimaem-maksimum-usb-ostsillograf-na-a...

Схема слева (от -2.5 до +2.5)

ixus777
Offline
Зарегистрирован: 02.02.2017

ShaTALKER пишет:

..... поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.

А как при этом обойти это ограничение ???

alxppv
Offline
Зарегистрирован: 02.08.2016

ixus777 пишет:

А как при этом обойти это ограничение ???

Если ардуино подключен к ПК, то измеряемую схему нужно запитать от отдельного источника питания (аккумуляторной батареи или трансформаторного источника питания).

ixus777
Offline
Зарегистрирован: 02.02.2017

ShaTALKER пишет:

Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.

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

alxppv
Offline
Зарегистрирован: 02.08.2016

ixus777 пишет:

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

Дело в том, что АЦП ардуино измеряет положительную составляющую относительно своей земли.
В нашем случае это от 0 до +5В. Поэтому, для возможности измерения отрицательной составляющей
измеряемой схемы, земля измеряемой схемы, с помощью делителя смещена вверх относительно земли ардуино.
В нашем случае на середину измеряемого диапазона АЦП ардуино +2.5В
Получаем:
+2.5В измеряемой схемы это +5В для АЦП ардуино,
-2.5В измеряемой схемы это 0В для АЦП ардуино.

Теперь о том, если соединить земли измеряемой схемы и ардуино:

+2.5В измеряемой схемы это +2.5В для АЦП ардуино,
-2.5В измеряемой схемы это -2.5В для АЦП ардуино.

В лучшем случае Вы не измерите отрицательную составляющую,
в худшем - спалите АЦП ардуино, а может не только ...

 

b612
Offline
Зарегистрирован: 12.03.2017

Добрый день, уважаемый Okmor.

Не могли бы вы сделать версию для скорости обмена 115200 и с большим таймаутом

Дело в том, что у меня девайс работает через блютус. И есть ещё пара соображений.

Или дайте исходники, если не жалко.

 

alingar
Offline
Зарегистрирован: 30.03.2017

все равно никак не въеду. если подключить ноутбук к сети, то каким образом он окажется подключенным к земле измеряемой схемы? земля ардуино и ноутбука связаны посредством USB-кабеля - какое он имеет отношение к розетке? и что будет, если я, к примеру, захочу снять осциллограмму трансформаторного блока питания при помощи ардуино, подключенной к стационарному компьютеру? а если блок питания будет импульсным или на основе автотрансформатора?

b612
Offline
Зарегистрирован: 12.03.2017

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

alingar
Offline
Зарегистрирован: 30.03.2017

но ведь тогда эти конденсаторы обеспечивают гальваническую развязку. или я не прав?

b612
Offline
Зарегистрирован: 12.03.2017

Да, но переменка то через них проходит по напряжению это больше 110 вольт

alingar
Offline
Зарегистрирован: 30.03.2017

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

b612
Offline
Зарегистрирован: 12.03.2017

Представьте себе землю.

Измеряемая схема, если даже она ни к чему не подключена имеет ёмкость относительно земли. При том у разных её элементов она разная.

Представьте, что она подключена к земле через кондёр маленькой ёмкости.

Масса компа тоже имеет ёмкость относительно земли

Эта же масса компа через конденсаторы подключена к фазе и к нолю. И на массе компа относительно земли возникает переменный потенциал 110вольт, прошедший через конденсаторы, которые в блоке питания.

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

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

Если при измерении масса компа соединяется с массой схемы, то ещё туда-сюда всё зависит от длины щупов и экранирования. Общий провод благодаря своему низкому сопротивлению хорошо выравнивает потенциал между массой компа и массой схемы.

А если надо мерить какое-нибудь дифференциальное напряжение, то всё гораздо хуже

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

PS ардуиной измерять лучше с использованием внутреннего ИОНа (сигнал должен быть приведён к диапазону 0-1.1в). При этом точность увеличивается раза в 4.

 

alingar
Offline
Зарегистрирован: 30.03.2017

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

1) от сети напрямую;

2) от сети через трансформаторный блок питания;

3) от сети через импульсный блок питания;

4) от батареи;

5) ну и для проформы – отключена от питания.

Ps. слышал краем уха, что там какие-то траблы с внутренним опорным напряжением. лично мне еще рано копать в эту сторону.

b612
Offline
Зарегистрирован: 12.03.2017

alingar пишет:

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

1) от сети напрямую;

Фаза может через схему попасть на массу ардуины и если она соединена с массой компа, тогда и на массу компа и на массу всей периферии.

Если одно из устройств окажется заземлено допустим через третий провод, то будет КЗ, сработает автомат или УЗО или сгорит какой-нибудь из проводов.

Если ничто не заземлено, тогда 

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

Т.е. думаю понятно, что так лучше не делать ?

Цитата:
2) от сети через трансформаторный блок питания;

тут никаких таких больших опасностей нет, если конечно трансформатор нормально изолирован.

Цитата:
3) от сети через импульсный блок питания;

Если устройства питаются от одной и той же фазы, то между ними не должно возникнуть большого напряжения, но некоторое всё равно будет.

Если питаются от разных фаз, то будет до где-то 200 вольт, но ессно при очень слабом токе. не приятном но не опасном.

Цитата:
4) от батареи;

схема вместе с батареей в реальности нельзя сказать, что висит в воздухе совершенно отдельно от всего.

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

Цитата:
5) ну и для проформы – отключена от питания.

то же самое что и с батарейкой. Батарейка в нашей теме ничем не отличается от какого-нибудь резистора.

Цитата:
Ps. слышал краем уха, что там какие-то траблы с внутренним опорным напряжением. лично мне еще рано копать в эту сторону.
лучше бы кинули схему и обрисовали задачу и вам скажут как сделать

alingar
Offline
Зарегистрирован: 30.03.2017

спасибо :) буду пока жить с этим. а там, глядишь, и понимание прискачет)

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

b612 пишет:

Или дайте исходники, если не жалко.

Исходники DelphiXE6

b612
Offline
Зарегистрирован: 12.03.2017

Okmor пишет:

b612 пишет:

Или дайте исходники, если не жалко.

Исходники DelphiXE6

Спасибо.

Правда я уже заканчиваю свою прогу.

oleg.dvd
Offline
Зарегистрирован: 01.04.2017

Уважаемый Okmor! 

подскажите, пожалуйста, по какой схеме нужно подключить ардуино чтобы измерить сигнил -12в +12в ?

Видимо нужен делитель? Или изменить номиналы резисторов?

я только начинаю, извините если спрашиваю что-то простое.

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

oleg.dvd пишет:

Уважаемый Okmor! 

подскажите, пожалуйста, по какой схеме нужно подключить ардуино чтобы измерить сигнил -12в +12в ?

 

Тут делитель на 80.

oleg.dvd
Offline
Зарегистрирован: 01.04.2017

Спасибо! И еще уточнение: общая "земля" на схеме это GND Arduino?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

oleg.dvd пишет:

Спасибо! И еще уточнение: общая "земля" на схеме это GND Arduino?

Общей земли нет.

oleg.dvd
Offline
Зарегистрирован: 01.04.2017

Okmor пишет:

Общей земли нет.

 

Собрал себе такую схему (деление примерно на 3,3) . С чем соединить отмеченные площадки?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

oleg.dvd пишет:
Собрал себе такую схему (деление примерно на 3,3) . С чем соединить отмеченные площадки?

Соединить все вместе и на GND Arduino

 

MadD0g
Offline
Зарегистрирован: 29.04.2017

Здравствуйте. А с Atmega8 так и не получилось ничего? Валяется пару штук без дела, хотел на них собрать, но скетч не компилится. Пишет, что cyberLib ее не поддерживает. (