Это потому, что на входе опорного напряжения (AREF) - 0В. Нужно замкнуть данный вход на 3.3В или на 5В, а потом на А0 подать аналоговый сигнал. Еще делитель в программе установить СК/4 - СК/128.
Делаю аналогичный проект.
Вижу, вы использовали CyberLib для того, чтобы ускорить передачу через UART. Но 256 000 бод (256 Кбит в секунду) очевидно недостаточно чтобы передать за секунду описанные 300 000 измерений (больше 2 МБит!). Боюсь, счетчик у вас несколько раз переполняется в прериваниях ADC пока очередную порцию данных отправит по UART. Выходит, отправляются не все измеренные данные. Заметил это по ходу своей работы.
Значит нужно подымать скорость передачи. Даташит говорит что UART работает и со скоростями порядка 1 мегабода, нужно пробовать.
P.S. Делитель на 2 у АЦП не работает, похоже, по той же причине - не успевает отправлять, перезаписывает поверх старых данных и пошло-поехало. Более того, у процессора остаётся слишком мало времени на отправку.
У меня больше работы в обработчике АЦП (иначе реализована передача, не останавливаю прерывания), по этому работает только с делителем 8 (если меньше - передача данных критически замедляется).
Сегодня, используя регистры управления 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;
}
Здравствуйте Уважаемый Okmor! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода?
Если нет 3.3 вольна на плате - подключайте AREF к любому источнику стабильного напряжения, который не больше напряжения питания платы (Vcc). Если нет пина AREF - используйте внутреннее опорное напряжение (у ардуин можно переключаться между напряжением питания или внутренним 1.1 В опорным напряжением, иногда встречаются 2.56 В опорного, смотрите в даташите по микроконтроллеру).
Мерять с данной схемой можно от -AREF/2 до AREF/2 (больше или меньше просто не сможет измерит АЦП, если подать значительно больше - есть риск спалить микроконтроллер). В норме - од -1.5 до 1.5 В. Если нужно мерять больше - нужен дополнительный делитель напряжения.
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
ВНЄЗАПНО драйвера 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! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода?
Спасибо Большое! Вроде бы как понятно с питанием, a без AREF с конденсатором тоже можно будет использовать, и какие делители нужно использовать, и ещё, делаю настройки по Вашему посту #8 но после выхода и входа в программу настройки возвращаются в первоначальное положение, так и должно быть?
Всем привет, никто не делал с внешним АЦП осциллограф на ардуино? Думаю себе кипить вот такой АЦП http://www.stanson.ch/files/USB-oscope/TDA8708A.pdf , только еще не знаю как сделать сбор с него данных и передачу их на компьютер без больших потерь скорости. Может кто делал что нибудь похожее или у кого какие идее есть?
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Извините за вопрос начинающего :
По какой схеме я могу измерять напряжения от -2В до +2В при помощи ардуино и настольного ПК ?
..... поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Если ардуино подключен к ПК, то измеряемую схему нужно запитать от отдельного источника питания (аккумуляторной батареи или трансформаторного источника питания).
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Извините, но не могу понять почему "ардуино и подключенный к ней ноутбук не должны быть подключены к земле схемы, которую меряете ..." ? Если можно объясните более подробно .
Извините, но не могу понять почему "ардуино и подключенный к ней ноутбук не должны быть подключены к земле схемы, которую меряете ..." ? Если можно объясните более подробно .
Дело в том, что АЦП ардуино измеряет положительную составляющую относительно своей земли.
В нашем случае это от 0 до +5В. Поэтому, для возможности измерения отрицательной составляющей
измеряемой схемы, земля измеряемой схемы, с помощью делителя смещена вверх относительно земли ардуино.
В нашем случае на середину измеряемого диапазона АЦП ардуино +2.5В
Получаем:
+2.5В измеряемой схемы это +5В для АЦП ардуино,
-2.5В измеряемой схемы это 0В для АЦП ардуино.
Теперь о том, если соединить земли измеряемой схемы и ардуино:
+2.5В измеряемой схемы это +2.5В для АЦП ардуино,
-2.5В измеряемой схемы это -2.5В для АЦП ардуино.
В лучшем случае Вы не измерите отрицательную составляющую,
в худшем - спалите АЦП ардуино, а может не только ...
все равно никак не въеду. если подключить ноутбук к сети, то каким образом он окажется подключенным к земле измеряемой схемы? земля ардуино и ноутбука связаны посредством USB-кабеля - какое он имеет отношение к розетке? и что будет, если я, к примеру, захочу снять осциллограмму трансформаторного блока питания при помощи ардуино, подключенной к стационарному компьютеру? а если блок питания будет импульсным или на основе автотрансформатора?
эти конденсаторы – малой емкости, а значит, они оказывают большое сопротивление для тока в 50 Гц. тогда получается, что проблема сдесь вовсе не в гальванической развязке между компьютером, исследуемой схемой и сетью, а в том, что на корпусе ПК образуется напряжение около 110 вольт относительно нулевого провода сети и если их соединить, получится КЗ. эта проблема, если я правильно понимаю, решается заземлением компьютера, которое уравнивает потенциал его корпуса с землей. а если не так, то я запуталсо окончательно)
Измеряемая схема, если даже она ни к чему не подключена имеет ёмкость относительно земли. При том у разных её элементов она разная.
Представьте, что она подключена к земле через кондёр маленькой ёмкости.
Масса компа тоже имеет ёмкость относительно земли
Эта же масса компа через конденсаторы подключена к фазе и к нолю. И на массе компа относительно земли возникает переменный потенциал 110вольт, прошедший через конденсаторы, которые в блоке питания.
Соответственно через провода, соединяющие измеряемую схему и комп, будет идти зарядный ток через ёмкость, которая между схемой и землёй
Ток этот слабый, но при больших сопротивлениях могут возникать не маленькие напряжения.
Если при измерении масса компа соединяется с массой схемы, то ещё туда-сюда всё зависит от длины щупов и экранирования. Общий провод благодаря своему низкому сопротивлению хорошо выравнивает потенциал между массой компа и массой схемы.
А если надо мерить какое-нибудь дифференциальное напряжение, то всё гораздо хуже
К примеру чтобы снять кардиосигнал амплитудой около двух милливольт и с ничтожным током, нужно мерить напряжение между двумя точками, ни одна из которых не соединена с массой измеряемой схемы. Да и нет там этй массы, ибо невозможно создать низкоомное соединение с человеком.
PS ардуиной измерять лучше с использованием внутреннего ИОНа (сигнал должен быть приведён к диапазону 0-1.1в). При этом точность увеличивается раза в 4.
Вы меня извините, но после этого объяснения у меня возникло еще больше непоняток - видимо еще не отрастил нужный синапс. ладно, черт с ней, с сутью. давайте зайдем с другой стороны. допустим ардуино подключена к компу, который в свою очередь подключен к сети. тогда что будет, если я захочу снять осциллограму со схемы, которая питается:
1) от сети напрямую;
2) от сети через трансформаторный блок питания;
3) от сети через импульсный блок питания;
4) от батареи;
5) ну и для проформы – отключена от питания.
Ps. слышал краем уха, что там какие-то траблы с внутренним опорным напряжением. лично мне еще рано копать в эту сторону.
Вы меня извините, но после этого объяснения у меня возникло еще больше непоняток - видимо еще не отрастил нужный синапс. ладно, черт с ней, с сутью. давайте зайдем с другой стороны. допустим ардуино подключена к компу, который в свою очередь подключен к сети. тогда что будет, если я захочу снять осциллограму со схемы, которая питается:
1) от сети напрямую;
Фаза может через схему попасть на массу ардуины и если она соединена с массой компа, тогда и на массу компа и на массу всей периферии.
Если одно из устройств окажется заземлено допустим через третий провод, то будет КЗ, сработает автомат или УЗО или сгорит какой-нибудь из проводов.
Если ничто не заземлено, тогда
если какое-нибудь существо наденет наушники и возьмётся рукой за водопровод, отопление или арматуру, то возможен печальный исход. В прочем если измеряющая цепь будет правильной, то измерять вполне можно.
Т.е. думаю понятно, что так лучше не делать ?
Цитата:
2) от сети через трансформаторный блок питания;
тут никаких таких больших опасностей нет, если конечно трансформатор нормально изолирован.
Цитата:
3) от сети через импульсный блок питания;
Если устройства питаются от одной и той же фазы, то между ними не должно возникнуть большого напряжения, но некоторое всё равно будет.
Если питаются от разных фаз, то будет до где-то 200 вольт, но ессно при очень слабом токе. не приятном но не опасном.
Цитата:
4) от батареи;
схема вместе с батареей в реальности нельзя сказать, что висит в воздухе совершенно отдельно от всего.
Она всё равно имеет ёмкость относительно земли и при попытке подключить висящую в воздухе схему к чему-либо, чей потенциал относительно земли всё время изменяется, по соединяющим проводам будет идти слабый переменный ток.
Цитата:
5) ну и для проформы – отключена от питания.
то же самое что и с батарейкой. Батарейка в нашей теме ничем не отличается от какого-нибудь резистора.
Цитата:
Ps. слышал краем уха, что там какие-то траблы с внутренним опорным напряжением. лично мне еще рано копать в эту сторону.
лучше бы кинули схему и обрисовали задачу и вам скажут как сделать
Здравствуйте. А с Atmega8 так и не получилось ничего? Валяется пару штук без дела, хотел на них собрать, но скетч не компилится. Пишет, что cyberLib ее не поддерживает. (
Okmor
Привет! За новую прогу спасибо!
Пробовал Мегу8 с делителем АЦП /2 ?
К сожелению пока не пробовал. Начал ремонт и на хобби остается несколько часов в неделю, а на работе не попаяешь.
К сожелению пока не пробовал. Начал ремонт и на хобби остается несколько часов в неделю, а на работе не попаяешь.
Понимаю, сам не тяну свои проекты в погоне за
пост #28 дана схемка для подключения и замера 5 вольт, для чего там ресет подключается к 3в?
пост #28 дана схемка для подключения и замера 5 вольт, для чего там ресет подключается к 3в?
Это не ресет, а опорное напряжение REF. От опортного напряжения я отказался в виду его абсолютной непредсказуемости.
А можно чуть точнее по поводу опорного напряжения. Вопервых, так нужно всеже подавать эти 3 вольта или нет, и вовторых, где этот пин REF?
Опорное напряжение нужно подавать. В скетче выбрано "внеший источник напряжения", потому нужно его подключать.
Вывод AREF расположен сразу возле вывода 3,3В , я их просто тонкой проволокой обматываю.
Кто нибудь это осилил в плане переноса на другие МК
Есть STM32 ... -- 72 мегагерц
Есть ESP 12 -- 80-160 мегагерц
Как большую частоту измерить?
И есть ли возможность даже с этой частотой вывести на дисплей с той же нано - например I2C OLEd...
народ, помогите, собрал - какое бы напряжение не подавал, вкл-выкл всегда одна и та же картинка :(
Это потому, что на входе опорного напряжения (AREF) - 0В. Нужно замкнуть данный вход на 3.3В или на 5В, а потом на А0 подать аналоговый сигнал. Еще делитель в программе установить СК/4 - СК/128.
Добрый день.
Есть в наличии USB UART на чипе SP2101 Возможно ли его подключить к этой программе, какая схема подключения ?
Спасибо.
Уважаемые гуру!
Уже весь моСК себе выел, не хочет компилироваться скетч, пишет такое:
Вот ссылка на програмку без использования сторонних библиотек
Щиро Дякую!
А схемку можна ? Не дуже зрозуміло з скетчу про конденсатори .
З Повагою!
Тут все просто.
Выставляя регистры (0 << REFS1) | (1 << REFS0) мы можем изменять опорное напряжение.
Опорное можно подтягивать к питанию, или к встроенному 3,3 источнику.
Вот добавил схемку в програму.
Теперь не потеряется.
Работает!
Ще раз дякую!
Всем привет.
Делаю аналогичный проект.
Вижу, вы использовали CyberLib для того, чтобы ускорить передачу через UART. Но 256 000 бод (256 Кбит в секунду) очевидно недостаточно чтобы передать за секунду описанные 300 000 измерений (больше 2 МБит!). Боюсь, счетчик у вас несколько раз переполняется в прериваниях ADC пока очередную порцию данных отправит по UART. Выходит, отправляются не все измеренные данные. Заметил это по ходу своей работы.
Значит нужно подымать скорость передачи. Даташит говорит что UART работает и со скоростями порядка 1 мегабода, нужно пробовать.
P.S. Делитель на 2 у АЦП не работает, похоже, по той же причине - не успевает отправлять, перезаписывает поверх старых данных и пошло-поехало. Более того, у процессора остаётся слишком мало времени на отправку.
У меня больше работы в обработчике АЦП (иначе реализована передача, не останавливаю прерывания), по этому работает только с делителем 8 (если меньше - передача данных критически замедляется).
Добрый день.
Сегодня, используя регистры управления USART, "разогнал" его до 2 Mbaud.
До сих пор не хватает чтобы отправлять 300 000 бит в секунду (делитель тактов АЦП = 4), но это максимум для асинхронного режима передачи с Arduino (которую у меня, похоже, тактует 16 МГц кварц). Но хватает для отправки 130 000 бит в секунду (делитель тактов АЦП = 8).
Большей скорости можно достичь с использованием синхронного режима передачи и поднятием тактовой частоты МК, насколько я понимаю. Но мои 20 МГц кварцы ещё в дороге с Китая.
Весь скетч:
Здравствуйте Уважаемый Okmor! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода?

Если нет 3.3 вольна на плате - подключайте AREF к любому источнику стабильного напряжения, который не больше напряжения питания платы (Vcc). Если нет пина AREF - используйте внутреннее опорное напряжение (у ардуин можно переключаться между напряжением питания или внутренним 1.1 В опорным напряжением, иногда встречаются 2.56 В опорного, смотрите в даташите по микроконтроллеру).
Мерять с данной схемой можно от -AREF/2 до AREF/2 (больше или меньше просто не сможет измерит АЦП, если подать значительно больше - есть риск спалить микроконтроллер). В норме - од -1.5 до 1.5 В. Если нужно мерять больше - нужен дополнительный делитель напряжения.
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Кстати, о разгоне 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! Последняя программа осциллографа запускается и на Меге и на Про Мини с адаптером, только вот, на Про Мини нет ни 3.3 вольта ни AREF но всё вроде работает, как быть в этой ситуации, и ещё, по приведённым Вами схемам делителей которые в комплекте с программой какое максимально допустимое напряжение можно измерять и каким должен быть к примеру щуп, нужно ли применять типа классического как у аналоговых, или просто щуп без земляного отвода?
Спасибо Большое! Вроде бы как понятно с питанием, a без AREF с конденсатором тоже можно будет использовать, и какие делители нужно использовать, и ещё, делаю настройки по Вашему посту #8 но после выхода и входа в программу настройки возвращаются в первоначальное положение, так и должно быть?
Всем привет, никто не делал с внешним АЦП осциллограф на ардуино? Думаю себе кипить вот такой АЦП http://www.stanson.ch/files/USB-oscope/TDA8708A.pdf , только еще не знаю как сделать сбор с него данных и передачу их на компьютер без больших потерь скорости. Может кто делал что нибудь похожее или у кого какие идее есть?
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Извините за вопрос начинающего :
По какой схеме я могу измерять напряжения от -2В до +2В при помощи ардуино и настольного ПК ?
Извините за вопрос начинающего :
По какой схеме я могу измерять напряжения от -2В до +2В при помощи ардуино и настольного ПК ?
http://arduino.ru/forum/proekty/vyzhimaem-maksimum-usb-ostsillograf-na-a...
Схема слева (от -2.5 до +2.5)
..... поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
А как при этом обойти это ограничение ???
А как при этом обойти это ограничение ???
Если ардуино подключен к ПК, то измеряемую схему нужно запитать от отдельного источника питания (аккумуляторной батареи или трансформаторного источника питания).
Не забывайте что ноль при измерениях смещается (посмотрите как реализована схемма), поэтому ардуино и подключённый к ней ноутбук НЕ ДОЛЖНЫ быть подключены к земле схемы, которую меряете (отключите на время измерений питание ноутбука, к которому подключена ардуино, питание можно включить только когда щупы отключены от измеряемой схеммы). Об этом уже писали, будьте осторожны.
Извините, но не могу понять почему "ардуино и подключенный к ней ноутбук не должны быть подключены к земле схемы, которую меряете ..." ? Если можно объясните более подробно .
Извините, но не могу понять почему "ардуино и подключенный к ней ноутбук не должны быть подключены к земле схемы, которую меряете ..." ? Если можно объясните более подробно .
Дело в том, что АЦП ардуино измеряет положительную составляющую относительно своей земли.
В нашем случае это от 0 до +5В. Поэтому, для возможности измерения отрицательной составляющей
измеряемой схемы, земля измеряемой схемы, с помощью делителя смещена вверх относительно земли ардуино.
В нашем случае на середину измеряемого диапазона АЦП ардуино +2.5В
Получаем:
+2.5В измеряемой схемы это +5В для АЦП ардуино,
-2.5В измеряемой схемы это 0В для АЦП ардуино.
Теперь о том, если соединить земли измеряемой схемы и ардуино:
+2.5В измеряемой схемы это +2.5В для АЦП ардуино,
-2.5В измеряемой схемы это -2.5В для АЦП ардуино.
В лучшем случае Вы не измерите отрицательную составляющую,
в худшем - спалите АЦП ардуино, а может не только ...
Добрый день, уважаемый Okmor.
Не могли бы вы сделать версию для скорости обмена 115200 и с большим таймаутом
Дело в том, что у меня девайс работает через блютус. И есть ещё пара соображений.
Или дайте исходники, если не жалко.
все равно никак не въеду. если подключить ноутбук к сети, то каким образом он окажется подключенным к земле измеряемой схемы? земля ардуино и ноутбука связаны посредством USB-кабеля - какое он имеет отношение к розетке? и что будет, если я, к примеру, захочу снять осциллограмму трансформаторного блока питания при помощи ардуино, подключенной к стационарному компьютеру? а если блок питания будет импульсным или на основе автотрансформатора?
В импульсных блоках питания масса компа подключена к розетке через высоковольтные конденсаторы маленькой ёмкости.
но ведь тогда эти конденсаторы обеспечивают гальваническую развязку. или я не прав?
Да, но переменка то через них проходит по напряжению это больше 110 вольт
эти конденсаторы – малой емкости, а значит, они оказывают большое сопротивление для тока в 50 Гц. тогда получается, что проблема сдесь вовсе не в гальванической развязке между компьютером, исследуемой схемой и сетью, а в том, что на корпусе ПК образуется напряжение около 110 вольт относительно нулевого провода сети и если их соединить, получится КЗ. эта проблема, если я правильно понимаю, решается заземлением компьютера, которое уравнивает потенциал его корпуса с землей. а если не так, то я запуталсо окончательно)
Представьте себе землю.
Измеряемая схема, если даже она ни к чему не подключена имеет ёмкость относительно земли. При том у разных её элементов она разная.
Представьте, что она подключена к земле через кондёр маленькой ёмкости.
Масса компа тоже имеет ёмкость относительно земли
Эта же масса компа через конденсаторы подключена к фазе и к нолю. И на массе компа относительно земли возникает переменный потенциал 110вольт, прошедший через конденсаторы, которые в блоке питания.
Соответственно через провода, соединяющие измеряемую схему и комп, будет идти зарядный ток через ёмкость, которая между схемой и землёй
Ток этот слабый, но при больших сопротивлениях могут возникать не маленькие напряжения.
Если при измерении масса компа соединяется с массой схемы, то ещё туда-сюда всё зависит от длины щупов и экранирования. Общий провод благодаря своему низкому сопротивлению хорошо выравнивает потенциал между массой компа и массой схемы.
А если надо мерить какое-нибудь дифференциальное напряжение, то всё гораздо хуже
К примеру чтобы снять кардиосигнал амплитудой около двух милливольт и с ничтожным током, нужно мерить напряжение между двумя точками, ни одна из которых не соединена с массой измеряемой схемы. Да и нет там этй массы, ибо невозможно создать низкоомное соединение с человеком.
PS ардуиной измерять лучше с использованием внутреннего ИОНа (сигнал должен быть приведён к диапазону 0-1.1в). При этом точность увеличивается раза в 4.
Вы меня извините, но после этого объяснения у меня возникло еще больше непоняток - видимо еще не отрастил нужный синапс. ладно, черт с ней, с сутью. давайте зайдем с другой стороны. допустим ардуино подключена к компу, который в свою очередь подключен к сети. тогда что будет, если я захочу снять осциллограму со схемы, которая питается:
1) от сети напрямую;
2) от сети через трансформаторный блок питания;
3) от сети через импульсный блок питания;
4) от батареи;
5) ну и для проформы – отключена от питания.
Ps. слышал краем уха, что там какие-то траблы с внутренним опорным напряжением. лично мне еще рано копать в эту сторону.
Вы меня извините, но после этого объяснения у меня возникло еще больше непоняток - видимо еще не отрастил нужный синапс. ладно, черт с ней, с сутью. давайте зайдем с другой стороны. допустим ардуино подключена к компу, который в свою очередь подключен к сети. тогда что будет, если я захочу снять осциллограму со схемы, которая питается:
1) от сети напрямую;
Фаза может через схему попасть на массу ардуины и если она соединена с массой компа, тогда и на массу компа и на массу всей периферии.
Если одно из устройств окажется заземлено допустим через третий провод, то будет КЗ, сработает автомат или УЗО или сгорит какой-нибудь из проводов.
Если ничто не заземлено, тогда
если какое-нибудь существо наденет наушники и возьмётся рукой за водопровод, отопление или арматуру, то возможен печальный исход. В прочем если измеряющая цепь будет правильной, то измерять вполне можно.
Т.е. думаю понятно, что так лучше не делать ?
тут никаких таких больших опасностей нет, если конечно трансформатор нормально изолирован.
Если устройства питаются от одной и той же фазы, то между ними не должно возникнуть большого напряжения, но некоторое всё равно будет.
Если питаются от разных фаз, то будет до где-то 200 вольт, но ессно при очень слабом токе. не приятном но не опасном.
схема вместе с батареей в реальности нельзя сказать, что висит в воздухе совершенно отдельно от всего.
Она всё равно имеет ёмкость относительно земли и при попытке подключить висящую в воздухе схему к чему-либо, чей потенциал относительно земли всё время изменяется, по соединяющим проводам будет идти слабый переменный ток.
то же самое что и с батарейкой. Батарейка в нашей теме ничем не отличается от какого-нибудь резистора.
спасибо :) буду пока жить с этим. а там, глядишь, и понимание прискачет)
Или дайте исходники, если не жалко.
Исходники DelphiXE6
Или дайте исходники, если не жалко.
Исходники DelphiXE6
Правда я уже заканчиваю свою прогу.
Уважаемый Okmor!
подскажите, пожалуйста, по какой схеме нужно подключить ардуино чтобы измерить сигнил -12в +12в ?
Видимо нужен делитель? Или изменить номиналы резисторов?
я только начинаю, извините если спрашиваю что-то простое.
Уважаемый Okmor!
подскажите, пожалуйста, по какой схеме нужно подключить ардуино чтобы измерить сигнил -12в +12в ?
Тут делитель на 80.
Тут делитель на 80.
Спасибо! И еще уточнение: общая "земля" на схеме это GND Arduino?
Тут делитель на 80.
Спасибо! И еще уточнение: общая "земля" на схеме это GND Arduino?
Общей земли нет.
Общей земли нет.
Собрал себе такую схему (деление примерно на 3,3) . С чем соединить отмеченные площадки?
Соединить все вместе и на GND Arduino
Здравствуйте. А с Atmega8 так и не получилось ничего? Валяется пару штук без дела, хотел на них собрать, но скетч не компилится. Пишет, что cyberLib ее не поддерживает. (