FLprog урок №1 Вводный
ฝัง
- เผยแพร่เมื่อ 10 ก.พ. 2025
- Вводной урок по среде разработки FLprog для программирование arduino и микроконтроллеров. Здесь вы узнаете о основах и функциях FLprog, своими силами соберёте простую схему демонстрирующую работу собственноручно написанной программы. И для этого вам не понадобится знать ни одного текстового языка программирования.
Термины озвученные в видео:
МК - микроконтроллер
FBD - Function Block Diagram (Диаграмма функциональных блоков)
SCADA - Supervisory Control And Data Acquisition (диспетчерское управление и сбор данных)
Аналоговый вход предназначенный для измерения напряжения в каком либо диапазоне напряжений, для большинства МК это 0 - 5вольт.
Аналоговый выход предназначен для генерации напряжения 0 - 5вольт (диапазон напряжения зависит от контроллера)
Цифровой вход предназначен для считывания наличия или отсутствия напряжения
Цифровой выход предназначен для подачи напряжения 5 вольт, либо подачи 0 вольт
Pin - контакт контроллера
EEPROM - Electrically Erasable Programmable Read-Only Memory (один из видов энергонезависимой памяти)
ШИМ - широтно импульсная модуляция
Переменная - выделенный объём памяти в контроллере под запись и считывание значений в зависимости от типа переменной
True\ False - Истина\Ложь - 1\0 - Наличие сигнала\Отсутствие сигнала - 5вольт\0 вольт
Мультивибратор - дилдо с несколькими скоростями вибрации
Инверсия - замена значения на противоположное
Дискретная логика - Логика в которой используются только два значения - True\False
Вообще круто, но хотелось бы попроще для чайников)))
Доброго времени суток, всё хорошо, но возможно многие сами блоки плохо понимают. Сделай по ним уроки, и ближе к реальности и быту.
всё это уже для подготовленных сделай для чайников всё последовательно
Интересно и понятно для новичков
Смотрю и радуюсь! Красавчик!
Только огромное просьба сделай в описании а лучше файл блокнота с памяткой терминов которые используешь. Так сказать "для чайников"
Спасибо) я тоже очень радуюсь искренним и положительным комментариям вроде этого) Хорошо, постараюсь этим как нибудь заняться.
Готово. Описание расширенно.
@@TechnoChannelru Спасибо большое!
Приветствую! Подскажи пожалуйста, есть такая схема: часы реального времени-компараторе (два штуки длятриггеоа) -триггер-реле. Мне нужно чтобы в определённое время реле срабатывало и работало до определённого времени. На пример в 7:00 вкл в 23:00 выкл. Загвоздка в соединение компаратором и блока времени. Не совсем догоняю какие значения в каких единицах указывать в компараторе (на пример >=7:00 на одном и >=23:00). Но эти цифры понятное дело ни о чем для компоратора. Одно дело градусы и влажность с датчика а другое дело время, как оно делится, как переводится, float, integer или что там должно быть? Если не трудно подуажи пожалуйста. Спасибо заранее!
У тебя очень хорошие понятные уроки. Не скучно слушать.
Спустя 2 года: И так, теперь мы умеем программировать микроконтроллеры, так что сегодня мы начнем строить наш космический корабль (и начинает также доходчиво на простом языке рассказывать как это делается) :)
Хах) возможно будет и так) Давно не видать тебя, мой друг) Где пропадал?
@@TechnoChannelru да просто не уследил что новые видосы подкатили)
Ардуино пытается заменить пром PLC?. Забавненько.
Здравствуйте, а Вы можете помочь с "меню"?
поробывал сделать, но ничего не получилось, в чем может быть проблема?
int _gtv1 = 2000;
int _gtv2 = 3500;
int _gtv4 = 4500;
bool _gen5I = 0;
bool _gen5O = 0;
unsigned long _gen5P = 0UL;
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, 0);
}
void loop()
{
//Плата:1
if (( (!(((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv1))) && (!(((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv2))) && (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv4)) )) { if (! _gen2I) { _gen2I = 1; _gen2O = 1; _gen2P = millis(); } } else { _gen2I = 0 ; _gen2O= 0;}
if (_gen2I) { if ( _isTimer ( _gen2P , 250 )) { _gen2P = millis(); _gen2O = ! _gen2O;}}
if (( (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv1)) && (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv2)) && (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv4)) )) { if (! _gen5I) { _gen5I = 1; _gen5O = 1; _gen5P = millis(); } } else { _gen5I = 0 ; _gen5O= 0;}
if (_gen5I) { if ( _isTimer ( _gen5P , 1000 )) { _gen5P = millis(); _gen5O = ! _gen5O;}}
if (( (!(((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv1))) && (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv2)) && (((map(( (analogRead (0))), (0), (1023), (0), (5000)))) < (_gtv4)) )) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;}
if (_gen1I) { if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}
digitalWrite(13, ( (_gen5O) || (_gen1O) || (_gen2O) ));
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
решил эту проблему намного проще, с помощью мультивибратора с внешним входом.
Есть ли симуляция в программе FLprog?
Нету
Программа очень сложная! для новичков. Ребят, лучше сделайте что-то типа флоу кода, убрав его косяки и замудренности.
Тут такое чувство, что разрабатывал концепцию не недавний новичок, или преподаватель, а уже крутой программер. Все вроде и норм, но разобраться сможет тот, кто уже и так может программировать.
Добрый день, а как подключить 2 потенциометра, и что бы один менял время горения светодиода, а второй время не горения?
Создать блок несимметричного мультивибратора и добавить входы в этом блоке на длительность импульса и длительность паузы
"Танчики" всмысле Battle City (1985) или WoT? ( Шутка ) . - На ардуин-е Scad-у вообще можно развернуть? Хотя бы самую примитивную? .... Спасибо за видос... всё очень доходчиво. Но всё таки подача материала не совсем для "чайников". Искал как раз про FBD. Он ведь много где используется.
Вставлю свои "три копейки" - вдруг это прочтут разрабы)) Считаю, что не нужно изобретать "лясопед" с графическими "языками программирования", а нужно просто создать для Ардуинок среду на старом добром Паскале - как самом простом, отлично структурированном (что немаловажно для новичков!), но в то же время очень мощном языке программирования! Вообще, лично мне непонятно, почему разрабы Ардуины, позиционируя ее как "микроконтроллер для всех" и чуть ли не как "радиоконструктор для смышленных дошколят", вдруг решили делать среду программирования на совсем не любительских Сях - ведь это язык для профи и, мягко говоря, не "хэллоу, ворлд для самых маленьких"! А вот Паскаль как раз создавался для начинающих, но его красота и ясность позволили ему обрести статус вполне серьезного языка - Delphi тому пример!
Вообще, лично для меня идеальный инструмент для Ардуинки выглядит так: некое подобие Delphi, где есть элементы "графического программирования" для рутинных операций; возможно, с неким подобием дельфячьей событийной модели, где человек ручками прописывает реакцию микрухи на то или иное событие (появление единицы на входе и т.п.); на Паскале (разумеется!!!) и с очень удобным отладчиком в стиле стоковой атмеловской AVR Studio (где можно в графическом виде посмотреть каждый порт на каждом шаге программы)... Вот она - "мечта поэта"))) Но пока даже энтузиасты, запилившие Лазаря (как бесплатный и мультиплатформенный клон Дельфы), не торопятся учить его компиллить под Ардуину... А зря!!!
Генератор постоянного движения...................................
Интересно, но это скорее ознакомительный урок, а не обучающий. Новичкам ничего не понять.
посмотрите схема неправильная
жаль что перестал снимать видео по программе FLPog у тебя классно получается
Извиняюсь. Вдохновения совсем пропало, а делать видосы без вдохновения = делать мусор
@@TechnoChannelru Ещё известен визуальный язык ДРАКОН. Там тоже есть свои плюсы. И кажется воспринимать ДРАКОН проще чем электрическую схему со всеми наворотами. И это я любительски занимался аналоговой электроникой и профессионально электротехникой. Не всегда электро- схемы легко читаются. Иногда они просто ужасно нарисованы и требуют серьёзных усилий для восприятия. Схемы с логикой более трудны для восприятия лично для меня. А от релейных схем вообще можно мозги вывихнуть (если брать что то посложнее).
ДРАКОН выглядит проще и лаконичнее, особенно в сравнении с FBD.
Он изначально сделан с упором на эргономику и восприятие.
Интересно было сравнить, в каком случае код получится более быстрый, на ДРАКОНЕ в основе или на FBD?
Может быть возможен их симбиоз? Начать разработку на ДРАКОН-е, а потом перенести его на FBD?
Есть ли в этом какой то смысл?
Придется наверное поставить снова ДРАКОН- редактор..
Ай ай ай, UNO показал классическую, а дрова поставил на CH340 заблуждаешь зрителей))). Это не упрёк, просто не большое замечание).
А разве на классическую uno также в автоматическом режиме дрова не поставились бы? А то я сделал упор на автоматическую установку, а не на тип драйвера
@@TechnoChannelru Автоматом не ставятся, надо указывать на папку с дровами в папке с IDE.
@@HOUSE-bm9gk спасибо, буду иметь в виду. Хорошо что тот кто сталкнется с этой проблемой - с лёгкостью найдет ответ в комментах под этим видосом
@@TechnoChannelru Всегда рад помочь)).
все это хорошо но подскажи вот что если у меня пропадет связь как сделать так чтоб двигатель остановился th-cam.com/video/PThbb-3NOis/w-d-xo.html
Из передатчика сделайте периодически повторяющийся сигнал, а в приемнике принимайте его через блок задержки выключения. Когда импульсы перестанут подаваться (связь прервется) - тогда блок задержки выключения отключится через некоторое время, и отсутствием этого сигнала включайте двигатель
Первый урок и нихуя не понятно
Посмотри канал ключ к ардуино, там по блокам человек уроки сделал
лучше бы ты объяснял что ты делаешь. нах твои перемные курсор твой не видно так быстро скачит по экрану . не пойму кому ты все это делаешь? тебе денег МАЛО? тупо видео. смотри других и учись
Интересно но нихрена не понятно