Создание пользовательского блока (Code-Basic) простым языком.

Статистический опрос.

Мне помогла эта тема разобраться с созданием ПБ.
36
60%
Я уже умел создавать ПБ, но нашел в теме что то новое для себя.
17
28%
Я умею создавать ПБ, ничего нового, но считаю тему полезной.
3
5%
Тема прикольная, но особой пользы от нее я не вижу.
1
2%
Полный бред. Прорабы какие то, квартиранты. Чушь.
3
5%
 
Всего голосов: 60

aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение aidar_i »

Qwert855 писал(а): 09 дек 2021, 15:57 Т.е только через "новый" редактор?
Нет, делайте в старом.
Вам письмо отправлял в ЛС давно, откройте.
Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19 дек 2020, 23:57
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение Qwert855 »

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

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

Код: Выделить всё

#include <Adafruit_NeoPixel.h>
bool en;
bool En;
byte num_led;
byte NumL;
byte brightness;
byte led_1r;
byte led_1g;
byte led_1b;
bool clearL;
bool St;
//bool clearL;
Adafruit_NeoPixel pixels= Adafruit_NeoPixel(5 ,   7 , NEO_GRB + NEO_KHZ800);
void setup()
{
    pixels.begin();
    pixels.show();
}
void loop()
{
    //Плата:5
    en = 0;
    En = 0;
    num_led = 0;
    NumL = 0;
    brightness = 0;
    led_1r = 0;
    led_1g = 0;
    led_1b = 0;
    clearL = 0;
    if (en   == 1 && En == 0)
    {
        pixels.setBrightness(brightness);
        pixels.setPixelColor (num_led -1, pixels.Color(led_1r  ,  led_1g  ,  led_1b));
        pixels.show();
        St = 1;
    }
    else if (En == 1 && en   == 0)
    {
        pixels.setBrightness(brightness);
        for (byte i = num_led -1; i <= NumL -1; ++i)
        {
            pixels.setPixelColor (i, pixels.Color(led_1r  ,  led_1g  ,  led_1b));
            pixels.show();
            St = 1;
            //clearL = 1;
        }
    }
    else if (En == 0 && clearL == 1)
    //else if (En == 1 && en == 1)
    {
        // clearL = (0);
        pixels.clear();
        pixels.show();
        St = 0;
    }
    else
    {
        pixels.setPixelColor (num_led -1, pixels.Color(0 , 0  ,  0));
        pixels.show();
        St = 0;
    }
    //Плата:6
}
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение aidar_i »

Qwert855 писал(а): 12 дек 2021, 21:17 Если кто то знает как можно добавлять условия экземпляров в блоках
[spoiler][bbvideo]https://youtu.be/XFpheEmjFrU[/bbvideo][/spoiler]
NeoPixel.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19 дек 2020, 23:57
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение Qwert855 »

да я по сути так и сделал.

но в новом редакторе можно присваивать номера самому
хотелось бы сделать декларацию на экземпляр с присвоением пина, а далее блоки функции привязывать к экземпляру.
[spoiler]
002.flp
[/spoiler]
[spoiler]
Безымянный2.png
[/spoiler]

как объяснить блоку что несет только функцию луп, к какому заголовку он относится? если в проекте таких блоков 10 в разных частях программы.
можно конечно поставить всего один блок на проект и все сделать последовательностью перезаписи переменных, но все же.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение aidar_i »

Qwert855 писал(а): 13 дек 2021, 18:22 как объяснить блоку что несет только функцию луп, к какому заголовку он относится? если в проекте таких блоков 10 в разных частях программы.
Вот так: создаете для каждой ленты еще свой главный блок со своим идентификатором.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение aidar_i »

Пример с блоками
NeoPixel_1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19 дек 2020, 23:57
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение Qwert855 »

это нужно вручную изменения вставить в код и потом блоки размножить?
pixels_1
pixels_2
и тд.
и все корректировки в ЛУП блоке разово так же вручную делать. :(
трудоемко но ОК. спасибо
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

Сообщение aidar_i »

Qwert855 писал(а): 13 дек 2021, 20:33 это нужно вручную изменения вставить в код и потом блоки размножить?
pixels_1
pixels_2
и тд.
и все корректировки в ЛУП блоке разово так же вручную делать. :(
трудоемко но ОК. спасибо
Делаете 2 блока на один вывод, куда подключена лента (блок 1 и размножаемый блок 1.1), если у Вас 2 ленты то нужно 4 блока. Блоки 1.1, 2.1 могут вставляться необходимое количество раз. Ничего трудоемкого!
В код лазить не нужно, и, вообще то, я Вам блоки уже выложил! Если Вам нужно еще на третий вывод, создайте блоки под номером 3 и 3.1.
Да, в новом редакторе можно из параметров.
Ответить

Вернуться в «Обучающие примеры работы в FLProg»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя