FLProg - это просто!

  • ЭФЭ
1
Э
ЭФЭ
  • 28 Янв 2021
1

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


Данный текст встретится на главной странице сайта FLProg.
И это действительно так. Программа расчитана в основном для радиолюбителей, электронщиков. Автором данной программы является Сергей Глушенко.
Постараюсь продемонстрировать, что программа действительно прост в проектах. Для начала воспользуемся макетной платой "ARDUINO NANO", скачаем и установим программу. Первые проекты будут наипростейшие, далее вытянем нереализованные проекты из тем форума и реализуем на FLProg-е.

FLPprog. Установка. Выбор микроконтроллера.

Кликаем на официальный сайт  ссылка скрыта от публикации  далее "загрузки" > "дистрибутивы FLProg" > "актуальная версия" > "программа FLProg" , скачиваем необходимую программу (32 или 64 разряда) и устанавливаем в свой компьютер. Ставим галочку на "добавить иконку на рабочий стол" и готово. На рабочем столе появится иконка.
иконка.jpg

Кликаем на иконку, откроется пустое окно.
Далее "Файл" > "Новый" > "Новый проект для контроллера", откроется дополнительное окно.

панель1.jpg


Нажать квадрат с троеточием,


панель2.jpg



Нажимаем на стрелку "Стандартные описания контроллера


панель 4.jpg


и

панель 5.jpg

выбираем наш контроллер Arduino Nano.

далее, так выглядет сама плата. Жмем "Готово".

вн вид.jpg


Программа установлена, макетная плата Arduino Nano на готове, начинаем с чистого листа.


панель 6.jpg


(продолжение следует)
 
  • Like
Васисуалий
2
Э
ЭФЭ
  • 29 Янв 2021
2
Включаем и выключаем светодиод кнопкой.

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


2_001.jpg

Необходимо создать один вход и один выход.
В левой окне Дерево проекта > Контроллер1 > Теги > Входы кликаем на Добавить вход.
Откроется окно Вход платы.
В окошке Имя пишем любое имя входа. В окошке Тип выбираем Цифровой. Ставим галочку Включить подтягивающий резистор.
В окошке Номер контакта выберем нужный контакт (например А0)

2_1.jpg



Аналогично создаем выход. Выбираем выход D3
Мышкой перетаскиваем Вход и Выход на пустое поле. (вход всегда слева, выход справа)


2_2.jpg


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



2_3.jpg


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


2_4.jpg


Собираем макетную плату Arduino Nano. На выход D3 светодиод с резистором, а на вход - кнопку. (Вместо кнопки применил перемычку).
2_01.jpg

Плата готова, запускаем компиляцию. Проект > Компилировать.
На сером фоне появится окно Arduino IDE и немного ждем.


2_5.jpg


************************************************************

Компиляция готова. Текст выглядит так.
Для кого то текст очень прост, а для кого то темный лес.


2_6.jpg

Соединяем макетную плату с USB портом, выбираем контроллер ATmega 328 и загружаем программу
Скетч > Загрузка

( В моем случае загрузка зависает. Выбираю ATmega 328 Old Bootloader и грузится нормально. Пока не разобрался в причине.)

2_7.jpg


И поехали.
Перемычка - светодиод не светится.
Нет перемычки - светодиод светится.

вклвыкл.jpg


(продолжение следует)
 
  • Like
Васисуалий и graff40

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

  • Справочная информация

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

    • Диагностика
    • Определение неисправности
    • Выбор метода ремонта
    • Поиск запчастей
    • Устранение дефекта
    • Настройка

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

  • Неисправности

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

    • не включается
    • не корректно работает какой-то узел (блок)
    • периодически (иногда) что-то происходит

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

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

    На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.


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

    Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:


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

    На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).


    Информация размещена в каталогах, файловых архивах, и отдельных темах, в зависимости от типов элементов.

  • Marking (маркировка) - обозначение на электронных компонентах

    Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.


  • Package (корпус) - вид корпуса электронного компонента

    При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

    • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
    • SOT-89 - пластковый корпус для поверхностного монтажа
    • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
    • TO-220 - тип корпуса для монтажа (пайки) в отверстия
    • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
    • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
    • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

  • Краткие сокращения

    При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

      Сокращение   Краткое описание
    LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
    MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
    EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
    eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
    LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
    SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
    SDASerial Data - Шина интерфейса I2C для обмена данными
    ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
    IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
    PCBPrinted Circuit Board - Печатная плата
    PWMPulse Width Modulation - Широтно-импульсная модуляция
    SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
    USBUniversal Serial Bus - Универсальная последовательная шина
    DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
    ACAlternating Current - Переменный ток
    DCDirect Current - Постоянный ток
    FMFrequency Modulation - Частотная модуляция (ЧМ)
    AFCAutomatic Frequency Control - Автоматическое управление частотой

  • Частые вопросы

    Как мне дополнить свой вопрос по теме FLProg - это просто!?

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему FLProg - это просто! как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

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


  • Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.



3
Э
ЭФЭ
  • 1 Фев 2021
3
Плавно меняем яркость светодиода

с помощью переменного резистора.
В предыдущем проекте работали с цифровым входом и выходом, здесь же, необходимо оцифровать аналоговое напряжение в цифровой код, а затем промодулировать в широтные импульсы. Схема выглядит так.
1_2.jpg


На макетной плате, из предыдущего проекта, на вход А0 вместо кнопки (перемычки) подключить ползунок переменного резистора.
Вид соединения на макетной плате. Как видно, переделка незначительная.

1_3.jpg


Запускаем FLProg, открываем предыдущий проект (светодиод с кнопкой), или создаем новый.
В предыдущем проекте достаточно двойной клик на прямоугольник со входом и выходом.
В окне параметра Вход выбираем Тип Аналоговый, в параметре Выход, выбираем Тип ШИМ.




1_4.jpg
1_5.jpg


Рамки и соединительная линия закрасятся голубым цветом.


1_6.jpg


Проект компилируем и заливаем скетч в Arduino Nano.
На сей раз скетч выглядит так.


1_10.jpg


Сразу после заливки скетча, с помощью переменного резистора можно управлять яркостью светодиода.
Три снимка с осциллограммами выхода ШИМ с 10, 50 и 90 % заполнения, соответственно низкий, средний и яркий свет светодиода.

серия.jpg


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

(продолжение следует).
 
  • Like
Васисуалий
4
Э
ЭФЭ
  • 7 Фев 2021
4
ЭФЭ сказал(а):
Но, при вращении переменного резистора от левого крайнего положения (минимум) до правого крайнего положения (максимум), светодиод увеличивает яркость, затем гаснет и вновь увеличивает яркость. Так происходит четыре раза.
Микроконтроллер ATmega 328 (Arduino NANO) имеет 10 битный АЦП , а разрядность ШИМ в 8 бит. Соответственно, аналоговый вход имеет максимальное десятиричное значение - 1023, выход ШИМ - 255. При значении на входном более 255, происходит переполнение, выход ШИМ генерирует новое значение от ноля до 255. И так четыре раза.
1023 : 255 = 4 ( остаток 3).

ацп шим.jpg


Сделаем так, чтобы яркость светодиода пропорционально соответствовало ползунку переменного резистора от мин. до макс.
Для этого, перетащим блок SCALE из Встроенные > Масштабирование? вставим между Вход и Выход? соединим линии.
Предварительно необходимо разъединить линию между входом и выходом (с предыдущего проекта) путем захвата линии у выхода и отвода в сторону. Линия исчезнет.

блок.jpg



Дважды кликнем SCALE для ввода параметров линейного масштабирования.
Так, как константы по умолчанию соответствуют нашим требованиям (вход от 0...1023, выход от 0...255), изменять ничего не будем.


справка_.jpg


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

видеоурок_.jpg



Проект компилируем, заливаем скетч в Arduino Nano.
(Картинку скетча ставить не буду, все равно ничего не поймем. Только мешать будет.)
Запускаем проект.
Всё как хотели. Яркость меняется пропорционально ручке резистора.
Было 10 бит, стало 8 бит.

ацп шим2.jpg


(продолжение следует)
 
  • Like
Васисуалий
5
A
antonluba
  • 7 Фев 2021
5
Прикольно, чо.

Кстати, один мой друг(с) на ардуино делал даже вывод сигнала PAL. Есть даже библиотека такая для нее.
Только у ардуино разрешение максимальное получается 128х64 (это неточно), а у меня на чистом Си получилось 400х260 (может даже чуть больше).
Так что за все надо платить.

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

Но лично я предпочитаю чистый Си.
 
6
Э
ЭФЭ
  • 7 Фев 2021
6
antonluba сказал(а):
Так что за все надо платить.
Ну, высокоскоростные операции на FLProg на вряд ли удастся когда нибудь сделать. Зато заметь, ни одного текста на СИ :)
Чем то напоминает sPlan.

Моргаем светодиодом.

Сделаем классическую моргалку на Ардуино. Импульсы с паузами хотим такую.

графика.jpg


Соберём схему.

схема.jpg


Понадобится один цифровой выход. Для наглядности в параметрах создадим описание "D3" (название вывода платы)
Перетащим блок Generator из папки Таймеры, соединим с Выход.

блок.jpg


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


парам.jpg


Блок генератор имеет вход EN (enable) (знакомый нам, электронщикам, под названием "вкл"). По умолчанию блок выключен. Для постоянного включения, наводим мышь на вход, нажимаем правую кнопку.

вход разр.jpg


Кликаем Вставить константу.

константа.jpg


Вставим галочку на TRUE (1)
Появится надпись true на входе EN

Вх разр.jpg


Или же проще простого, просто инвертируем вход EN

инверт.jpg
>
ен.jpg


Всё.
Компилируем, зашиваем скетч, светодиод моргает.:)


Продолжение следует.
 
  • Like
dsp155 и Васисуалий
7
Э
ЭФЭ
  • 14 Мар 2021
7
ЭФЭ сказал(а):
Первые проекты будут наипростейшие, далее вытянем нереализованные проекты из тем форума и реализуем на FLProg-е.
Данный проект посвящается Александру Георгиевичу Карпову (ALEKARP ). К сожалению скончался в январе 2021.
Человек, создавший гибридные микросхемы, но так и не успел освоить программирование микроконтроллеров. Эта была его мечта. Вот одна из последних тем ( не решено). https://monitor.net.ru/forum/threads/647345/
Цитата :
_________________________________
Вопрос в следующем - необходимо соединить последовательно в цепочку ( 3шт.) купленные китайские платы таймеров, работающие по принципу:
1. подано питание - индикатор показывает время задержки, выходное реле обесточено,
2. вкл. таймера через вх. ТРИГГЕР - идет счет (обратный), реле ВКЛ.
3. после отработки установленного времени - схема возвр. в исходное состояние.
Таким образом ______!!!!!!!!!!!!!!!_______
1 2 3

Для запуска след. таймера на его вх (триггер) следует подать
ТОЛЬКО низкий уровень от первого триггера (3).
На ум приходит только поставить между ними счетчик и отловить состояние (3).
Как вам эта мысль и что можно сделать по проще?
С уважением.
_________________________________________


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

Три последовательных таймера

Три таймера с последовательным запуском и замкнутые в кольцо. Длительность таймеров фиксированные. 3 сек, 1.5 сек и 4 сек. Конечное управление - реле. Реле включается от начала фронта таймера №2, с продолжительностью до спада импульса в таймере №3. Графически выглядит так.

графика.jpg


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

нано3.jpg


В проекте создадим четыре цифровых выхода D4 Красный инд.; D3 Желтый инд.; D2 Зеленый инд. ; D7 РЕЛЕ, три переменных тайм1; тайм2 и тайм3.

Таймер1.jpg


Основами таймеров являются блоки Tof. Работа блока схожа с одновибратором (ждущий мультивибратор). Запуск осуществляется от входа EN, продолжительность высокого уровня на выходе Q задается констант на выводе Val в миллисекундах (как это мы обычно делаем RC цепочкой на ВИ1). ( константы и входа на картинке голубого цвета, что не очень видно отчетливо) На верхнем (первом) таймере константа 3000 (3 сек), в среднем 1500 (1.5) и 4000 в нижнем (4 сек).
Запускаются таймеры последовательно. Первый таймер запускается от спада импульса третьего таймера или програмного сброса при включении платы. Программный сброс собран на блоке RTrig . краткое описание блока :
RTrig - Выделение переднего фронта.
Блок служит для выделения переднего фронта импульса поступающего на вход I. В момент появления на входе I логической единицы на выходе Q выставляется логическая единица на время выполнения одного цикла программы. Блок не имеет параметров

Спад импульса от таймера 3 фиксируется блоком FTrig. краткое описание блоки :
FTrig - Выделение заднего фронта.
Блок служит для выделения заднего фронта импульса поступающего на вход I. В момент пропадания со входа I логической единицы на выходе Q выставляется логическая единица на время выполнения одного цикла программы. Блок не имеет параметров
Два импульса объеденены блоком OR (по нашему ИЛИ), запускает первый таймер.
По истечении времени первого таймера, выход меняет свое состояние и запускает второй таймер.
Затем третий и так по кругу.
Дополнительно на выходе таймеров подключены светодиодные индикаторы для контроля.
С помощью блока OR управляется реле от выхода таймера №2 ИЛИ выхода таймера №3 ( в нашем случае 5.5 сек)
Видео работы таймеров  ссылка скрыта от публикации 
(синий светодиод прикрыл бумагой от чрезмерной яркости. В середине ролика нажал общий сброс для демонстрации начала первого таймера.)
Проект на FLProg
 
Вложения
  • таймер_3.zip
    9,4 КБ · Посмотрено: 8
  • Like
KENT, Nickbell и Васисуалий
8
Э
ЭФЭ
  • 8 Апр 2022
8
Вышел ролик "Вводный урок для начинающих". Все что написано выше, только более подробнее и нагляднее.


 
  • Like
Васисуалий и Nikolaevich