Автомобильный осциллограф: цены и параметры

Удобный 4-канальный осциллограф для проверки автомобиля.

Мне понадобился автомобильный осциллограф, я посмотрел цены и был удивлен… Цены просто зашкаливают, как будто это крыло самолета. Кстати, не понятно почему, ведь параметры осциллографа для проверки автомобиля очень низкие, как по частотам, так и по напряжению. Поэтому я решил сделать его сам.

1. Я решил использовать USB-приставку для ноутбука в качестве осциллографа, потому что удобно смотреть на большом экране, можно сохранять данные для последующего анализа и так далее.
2. Я выбрал тип сигнала: переменный, постоянный, с положительной полярностью. Мне не нужно работать с отрицательными напряжениями.
3. Я решил использовать 4 канала, больше не вижу смысла, но есть возможность расширения до 8.
4. Максимальное входное напряжение — 50 вольт, больше не нужно.
5. Чувствительность — 1 милливольт, больше тоже не нужно :-)
6. Частота — до 20 Кгц, для миллисекундных сигналов этого более чем достаточно.
7. Я ищу удобную программную оболочку.

Начну с самого главного – Оболочки для автомобильного осциллографа. Да да, именно с оболочки. Ведь железо не так сложно сделать, а вот удобная оболочка – это настоящая редкость. Оболочки, которые просто показывают сигнал в реальном времени для автомобильного осциллографа, не очень удобны, потому что часто нужно анализировать сигнал в течение длительного времени и иметь возможность вернуться назад. Поэтому нужна оболочка вроде Самописца-Осциллографа. И чтобы было не менее 4 каналов…

Долго искал в просторах интернета удобную оболочку и, наконец, нашел то, что искал! Это называется PowerGraph. Эту замечательную программу разработала компания ООО «ДИСофт». На их сайте есть платная и бесплатная версии. В общем, это программное обеспечение предназначено для промышленного использования, но оно на все 100% подходит для моего осциллографа. Оно работает как самописец и как обычный осциллограф. Эта программа предназначена для следующих целей:
1. Сбор данных с различных измерительных устройств и приборов.
2. Регистрация, визуализация и обработка сигналов в режиме реального времени.
3. Редактирование, математическая обработка и анализ данных.
4. Хранение, импорт и экспорт данных.
Это только малая часть того, что она умеет :-) И самое главное, есть бесплатная версия. Я остановился на ней, после того как перепробовал более десятка других программ. Она просто идеально подходит для автомобильного осциллографа.

Вот она, по моему мнению, самая превосходная. Это не реклама, это действительность :-) Лично я так считаю.

Итак, я уже определился с программным обеспечением, теперь нужно решить вопрос с интерфейсом. Я выбрал использовать СОМ-порт. Работать с ним очень просто, он обладает достаточной пропускной способностью для моих задач, и в выбранном программном обеспечении есть драйвер для вывода информации через СОМ-порт.

Теперь осталось решить вопрос с железом, а именно с выбором АЦП. Мне нужно, чтобы оно было доступным, стабильным, недорогим и легко программировалось. Я не долго думал и остановился на микроконтроллере АТмега 328р. Эти микроконтроллеры можно программировать на языке С++, что очень удобно.

Особенно удобно то, что этот микроконтроллер можно приобрести уже смонтированным на плате с минимальным набором необходимых компонентов. Это называется Ардуино :-) Таким образом, мне не нужно самому разводить и паять плату, что очень удобно. Микроконтроллер АТмега 328р полностью соответствует всем параметрам моего технического задания, поэтому я решил использовать его.

Для уменьшения размеров я использовал такую вот плату. Она обладает 8 аналоговыми входами, которые полностью соответствуют требованиям технического задания. Кроме того, на плате есть эмулятор СОМ порта на СН340, и она питается напрямую от USB порта. В общем, это именно то, что нужно. Можно использовать любую Ардуинку на базе 328р.

Вот схема данной платы. На ней установлен микроконтроллер АТмега 328р, эмулятор СОМ порта СН340, кварц и стабилизатор питания ЛМка для подключения к внешнему источнику питания. Также присутствуют несколько лампочек и фильтров. Все необходимое и ничего лишнего! Говорят, что совершенство заключается в простоте.

Сейчас требуется разработать программу для микроконтроллера. Нам необходимо постоянно опрашивать аналоговый вход и передавать данные о величине напряжения в СОМ порт в режиме реального времени. Если у нас есть несколько каналов, то мы опрашиваем все необходимые входы по кругу, и данные передаются в СОМ порт с использованием табуляции в качестве разделителя. Вот так все просто.

Вот скриншот того, что должен выводить микроконтроллер в СОМ порт для нашей программы PowerGraph.

У меня будет осциллограф, который будет работать в четырех режимах: 1-й канал, 2-й канал, 3-й канал и 4-й канал.
Переключение между каналами будет осуществляться круговым образом с помощью кнопки.
При включении канала будет загораться светодиод, указывающий на работу данного канала.
Вот я написал программу. Я сам не программист, поэтому написал ее насколько смог, не судите меня слишком строго, я расстроюсь :-) Программа полностью рабочая и была проверена неоднократно на практике. Я не буду рассказывать, как загружать программу на плату, так как в интернете на каждом углу это уже подробно описано с картинками :-)

Вот сама программа.

int режим = 1;
int флаг = 0;
void установка()
digitalWrite(07, ВЫСОКИЙ);
Serial.begin(128000);//скорость СОМ порта должна совпатать со скорость в драйвере
pinMode(2, ВЫХОД);
pinMode(3, ВЫХОД);
pinMode(4, ВЫХОД);
pinMode(5, ВЫХОД);
>
void цикл()
if(digitalRead(07)==ВЫСОКИЙ&&флаг==0)//если кнопка нажата
// и перемення флаг равна 0, то …
режим++;
флаг=1;
if(режим>4)//ограничим количество режимов
режим=1;//так как мы используем только одну кнопку,
// то переключать режимы будем циклично
>
>
if(digitalRead(07)==НИЗКИЙ&&флаг==1)//если кнопка НЕ нажата
//и переменная флаг равна — 1, то …
флаг=0;//обнуляем переменную «knopka»
>
if(режим==1)//первый режим
digitalWrite(2, ВЫСОКИЙ);//включение светодиода
digitalWrite(3, НИЗКИЙ);
digitalWrite(4, НИЗКИЙ);
digitalWrite(5, НИЗКИЙ);
// читаем аналоговый вход pin 0:
int порт0 = analogRead(A0);
//Преобразовываем аналоговые показания (которые идут от 0 до 1023) в напряжение (0 — 5 В)
float напряжениепорт0 = порт0 * (4.745 / 1023.000);//4.745 опорное напряжение, замеряется при калибровке на плате
// выводим значение напряжения в порт
Serial.println(напряжениепорт0,3);// печатаем значение в порт и жмем энтер
//задержка для стабильности
задержка(1);
>
if(режим==2)//второй режим
digitalWrite(2, ВЫСОКИЙ);//включение светодиодов
digitalWrite(3, ВЫСОКИЙ);
digitalWrite(4, НИЗКИЙ);
digitalWrite(5, НИЗКИЙ);
int порт0 = analogRead(A0);
int порт1 = analogRead(A1);
float напряжениепорт0 = порт0 * (4.745 / 1023.000);
float напряжениепорт1 = порт1 * (4.745 / 1023.000);
Serial.print(напряжениепорт0,3);// печатаем значение в порт
Serial.print(» «);// печатаем таб
Serial.println(напряжениепорт1,3);// печатаем значение в порт и жмем энтер
задержка(1);
>
if(режим==3)//Третий режим
digitalWrite(2, ВЫСОКИЙ);
digitalWrite(3, ВЫСОКИЙ);
digitalWrite(4, ВЫСОКИЙ);
digitalWrite(5, НИЗКИЙ);
int порт0 = analogRead(A0);
int порт1 = analogRead(A1);
int порт2 = analogRead(A2);
float напряжениепорт0 = порт0 * (4.745 / 1023.000);
float напряжениепорт1 = порт1 * (4.745 / 1023.000);
float напряжениепорт2 = порт2 * (4.745 / 1023.000);
Serial.print(напряжениепорт0,3);
Serial.print(» «);
Serial.print(напряжениепорт1,3);
Serial.print(» «);
Serial.println(напряжениепорт2,3);
задержка(1);
>
if(режим==4)//Четвертый режим
digitalWrite(2, ВЫСОКИЙ);
digitalWrite(3, ВЫСОКИЙ);
digitalWrite(4, ВЫСОКИЙ);
digitalWrite(5, ВЫСОКИЙ);
int порт0 = analogRead(A0);
int порт1 = analogRead(A1);
int порт2 = analogRead(A2);
int порт3 = analogRead(A3);
float напряжениепорт0 = порт0 * (4.745 / 1023.000);
float напряжениепорт1 = порт1 * (4.745 / 1023.000);
float напряжениепорт2 = порт2 * (4.745 / 1023.000);
float напряжениепорт3 = порт3 * (4.745 / 1023.000);
Serial.print(напряжениепорт0,3);
Serial.print(» «);
Serial.print(напряжениепорт1,3);
Serial.print(» «);
Serial.print(напряжениепорт2,3);
Serial.print(» «);
Serial.println(напряжениепорт3,3);
задержка(1);
>
>

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

Выше была представлена схема. Из нее видно, что на плате имеется 8 аналоговых входов и 14 цифровых входов/выходов. Именно с ними мы и будем работать.

Вот, когда мы понимаем, как подключать, остается только реализовать на практике.

Давайте начнем с защиты и делителя.
Защиту обеспечит стабилитрон с напряжением 5.1В. А делитель будет обычным, состоящим из резисторов.
Так как наши сигналы будут низкочастотными, это значительно упрощает задачу. При расчете делителя не нужно учитывать внутреннее сопротивление приемника, не нужно согласовывать вход с делителем, не нужно учитывать волновое сопротивление кабеля и разъемов.
Просто нужно посмотреть в даташите микроконтроллера, на какое сопротивление выхода оптимизирован его АЦП, и сделать делитель с таким выходным сопротивлением. Таким образом, мы достигнем максимальной точности в 0.005 вольта. В даташите указано, что он оптимизирован для 10Ком выходного сопротивления нагрузки. Внутреннее сопротивление АЦП составляет 100Мом…

Я разработал такую схему. R1 и R2 являются делителями, причем R2 также определяет сопротивление выхода делителя. Я выбрал значение R2 равным 10 кОм, так как ЦАП оптимизирован для работы с таким сопротивлением. R3 и VD1 представляют собой защиту от перенапряжения. На вход АЦП нельзя подавать напряжение выше 5.2 В. VD1 — это стабилитрон с напряжением 5.1 В, который можно использовать любой. R3 является ограничительным резистором, который ограничивает ток стабилитрона при его открытии. Вот такой простой делитель с защитой.

Все на самом деле так просто :-)

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

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

Вот какой набор деталей у меня.

Прежде всего, необходимо подготовить корпус, пробурив все отверстия.

Затем, установим делители непосредственно на блоке разъемов с помощью навесного монтажа.
Таким образом, это будет просто, надежно и удобно.

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

Установим в корпус светодиоды, кнопку, переключатель и конденсатор. Вот так. Длина проводов достаточна, но не избыточна.

Практически все готово, осталось вставить плату в корпус.

Установить блок разъемов в корпус. Взять голубую изоленту, без нее ни в коем случае! Создать ограничитель для провода УСБ.

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

Мой автомобильный осциллограф готов к использованию. С его помощью можно проводить диагностику таких компонентов, как расходомер воздуха (МАФ), генератор, катушки зажигания, датчики положения коленчатого и распределительного валов. Также осциллограф позволяет проверить правильность установки ГРМ и работу форсунок. Пульсация топлива в рампе позволяет косвенно оценить работу топливного насоса и регулятора давления. В общем, это очень полезное устройство в хозяйстве. Особенно оно пригодится, когда какое-либо устройство начинает работать неисправно, но мозг автомобиля не обнаруживает эту проблему.

Пришло время приступить к испытаниям на автомобиле.
Все идеально и очень комфортно. Точно так, как я задумывал :-)

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

Вот так легко можно создать себе высококачественный автомобильный осциллограф.
Это все, ни гвоздя вам ни жезла :-)

Понравилась статья? Поделиться с друзьями в социальных сетях:
Toyota Club
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: