FLprog урок №1 Вводный

preview_player
Показать описание
Вводной урок по среде разработки 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
Рекомендации по теме
Комментарии
Автор

Вообще круто, но хотелось бы попроще для чайников)))

ЕвгенийПуртов-йм
Автор

Доброго времени суток, всё хорошо, но возможно многие сами блоки плохо понимают. Сделай по ним уроки, и ближе к реальности и быту.

Andrei
Автор

всё это уже для подготовленных сделай для чайников всё последовательно

KURBASHI-bnm
Автор

Смотрю и радуюсь! Красавчик!
Только огромное просьба сделай в описании а лучше файл блокнота с памяткой терминов которые используешь. Так сказать "для чайников"

sanya
Автор

Приветствую! Подскажи пожалуйста, есть такая схема: часы реального времени-компараторе (два штуки длятриггеоа) -триггер-реле. Мне нужно чтобы в определённое время реле срабатывало и работало до определённого времени. На пример в 7:00 вкл в 23:00 выкл. Загвоздка в соединение компаратором и блока времени. Не совсем догоняю какие значения в каких единицах указывать в компараторе (на пример >=7:00 на одном и >=23:00). Но эти цифры понятное дело ни о чем для компоратора. Одно дело градусы и влажность с датчика а другое дело время, как оно делится, как переводится, float, integer или что там должно быть? Если не трудно подуажи пожалуйста. Спасибо заранее!

pravitel
Автор

Спустя 2 года: И так, теперь мы умеем программировать микроконтроллеры, так что сегодня мы начнем строить наш космический корабль (и начинает также доходчиво на простом языке рассказывать как это делается) :)

baisara
Автор

У тебя очень хорошие понятные уроки. Не скучно слушать.

ИгорьШойтов
Автор

Ардуино пытается заменить пром PLC?. Забавненько.

sergeybelov
Автор

Здравствуйте, а Вы можете помочь с "меню"?

trubalex
Автор

поробывал сделать, но ничего не получилось, в чем может быть проблема?

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
}

ambal
Автор

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

ЭнетБраун
Автор

Добрый день, а как подключить 2 потенциометра, и что бы один менял время горения светодиода, а второй время не горения?

pupkin
Автор

"Танчики" всмысле Battle City (1985) или WoT? ( Шутка ) . - На ардуин-е Scad-у вообще можно развернуть? Хотя бы самую примитивную? .... Спасибо за видос... всё очень доходчиво. Но всё таки подача материала не совсем для "чайников". Искал как раз про FBD. Он ведь много где используется.

Stiven_
Автор

Вставлю свои "три копейки" - вдруг это прочтут разрабы)) Считаю, что не нужно изобретать "лясопед" с графическими "языками программирования", а нужно просто создать для Ардуинок среду на старом добром Паскале - как самом простом, отлично структурированном (что немаловажно для новичков!), но в то же время очень мощном языке программирования! Вообще, лично мне непонятно, почему разрабы Ардуины, позиционируя ее как "микроконтроллер для всех" и чуть ли не как "радиоконструктор для смышленных дошколят", вдруг решили делать среду программирования на совсем не любительских Сях - ведь это язык для профи и, мягко говоря, не "хэллоу, ворлд для самых маленьких"! А вот Паскаль как раз создавался для начинающих, но его красота и ясность позволили ему обрести статус вполне серьезного языка - Delphi тому пример!

Вообще, лично для меня идеальный инструмент для Ардуинки выглядит так: некое подобие Delphi, где есть элементы "графического программирования" для рутинных операций; возможно, с неким подобием дельфячьей событийной модели, где человек ручками прописывает реакцию микрухи на то или иное событие (появление единицы на входе и т.п.); на Паскале (разумеется!!!) и с очень удобным отладчиком в стиле стоковой атмеловской AVR Studio (где можно в графическом виде посмотреть каждый порт на каждом шаге программы)... Вот она - "мечта поэта"))) Но пока даже энтузиасты, запилившие Лазаря (как бесплатный и мультиплатформенный клон Дельфы), не торопятся учить его компиллить под Ардуину... А зря!!!

ГалинаБалагардашова
Автор

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

winzam
Автор

жаль что перестал снимать видео по программе FLPog у тебя классно получается

kosmos
Автор

Ай ай ай, UNO показал классическую, а дрова поставил на CH340 заблуждаешь зрителей))). Это не упрёк, просто не большое замечание).

HOUSE-bmgk
Автор

лучше бы ты объяснял что ты делаешь. нах твои перемные курсор твой не видно так быстро скачит по экрану . не пойму кому ты все это делаешь? тебе денег МАЛО? тупо видео. смотри других и учись

zona