Пятница, 22.05.2026, 10:11
Приветствую Вас Гость | RSS
Главная | Переключение эффектов кнопкой - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Переключение эффектов кнопкой
AdminДата: Пятница, 02.02.2018, 01:44 | Сообщение # 1
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
smile
 
grunge934Дата: Пятница, 02.02.2018, 01:44 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
мне управление с кнопки нужно для декоративного светильника, для вифи у меня есть и сборка и код, но вот для кнопки у меня проблемы с кодом, а точнее не могу записаить примеры из других скечей, поэтому и ищу, где можно взять
 
AdminДата: Пятница, 02.02.2018, 01:44 | Сообщение # 3
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Не знаю в чем у вас проблеммы.
Самый простой код.
Нажали кнопку - включилось.
Еще раз нажали - выключилось.
Код
if (digitalRead(Key) == LOW){
   digitalWrite(PIN, ! digitalRead(PIN));
    }

Для защиты от дребезга контактов можно просто вставить задержку.
 
grunge934Дата: Пятница, 02.02.2018, 01:45 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
смотри, есть готовый скетч с примерами, там выбраны несколько режимов, которые посменно работают, мне необходимо, что бы эта смена проходила по нажатию кнопки
 
AdminДата: Пятница, 02.02.2018, 01:45 | Сообщение # 5
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Так бы сразу и написал :)))))
Вот так перебираются эффекты по кругу кнопкой.
Код
if (digitalRead(Key) == LOW){
    delay(300);
    a ++;    
    if (a > 301) {
    a = 0;
    }   
    setEffects();
    }

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

В твоем скетче возможно нужен несколько другой алгоритм.
зависит от кода.
 
grunge934Дата: Пятница, 02.02.2018, 01:45 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
слушай, если я скину ссылку на скеч, и укажу какие именно мне нужны эфеткты, ты подскажешь мне как именно исправить?
 
AdminДата: Пятница, 02.02.2018, 01:45 | Сообщение # 7
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Можно попробовать.
 
grunge934Дата: Пятница, 02.02.2018, 01:45 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
https://github.com/AlexGyver/WS2812_FX вот тут скечи, в WS2812_FX (в этом скече) приведены примеры, вотмне надо что бы примеры переключались кнопкой. у него в коде выделено несколько примеров, которые идут по кругу, я вот и хочу выбрать свои примеры, выбрать их и переключать, возможно такое?
 
AdminДата: Пятница, 02.02.2018, 01:45 | Сообщение # 9
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Ну и наворочено :)))))
На мой вгляд библиотека от адафрута попроще будет.
Все эффекты написаны в виде функций.
Для выбора эффекта присвоть переменной "newmode" номер нужного эффекта.
Вызвать функцию "change_mode".
Убираете ненужные эффекты и настройки.
Изменяете нумерацию что бы шла по порядку.
Добавляете опрос кнопки.
Только есть нюанс.
Если код кнопки в основном цыкле, переключения не будет
пока не отработает функция эффекта.
Вот как то так.
 
grunge934Дата: Пятница, 02.02.2018, 01:46 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
ок, а как сделать, что бы взять несколько эфектов и сделать смену при нажатии кнопки? и сколько будет стоить скеч?
 
AdminДата: Пятница, 02.02.2018, 01:46 | Сообщение # 11
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
В скетче WS2812_FX_rndChange_light
Все намного проще

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

Код
byte fav_modes[] = {2, 11, 14, 25, 27, 30, 41};


Добавляете переменную, например "а"

Вот эту часть кода

Код
i
    f (millis() - last_change > change_time) {
    change_time = random(5000, 20000);                // получаем новое случайное время до следующей смены режима
    ledMode = fav_modes[random(0, num_modes - 1)];    // получаем новый случайный номер следующего режима
    change_mode(ledMode);                             // меняем режим через change_mode (там для каждого режима стоят цвета и задержки)
    last_change = millis();
   }


Меняете на

Код

    if (digitalRead(Key) == LOW){
    a ++;    
    if (a > num_modes) {
    a = 0;
    }   
    ledMode = fav_modes[a];
    change_mode(ledMode);
    }


Нажимаете и удерживаете кнопку до смены эффекта.

На счет цены незнаю. Для комфортной работы скетча его нужно переписать заново :))))
 
grunge934Дата: Суббота, 03.02.2018, 22:49 | Сообщение # 12
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
Спасибо, утром попробую, а то сегодня уже голова не варит, целый день убил, что бы lsd дисплей запустить, еле библиотеку нашёл

Добавлено (03.02.2018, 23:45)
---------------------------------------------
что то я не нашёл куда добавить эту часть кода
Код
byte fav_modes[] = {2, 11, 14, 25, 27, 30, 41};
и куда переменную записать?

Добавлено (03.02.2018, 23:49)
---------------------------------------------
походу я туп в этом) сколько стоить будет написать скеч, где примеры будут нак в примерах библиотеке неопиксель? что бы они переключались кнопкой. Скажи своюю цену пожалуйста

 
AdminДата: Воскресенье, 04.02.2018, 00:24 | Сообщение # 13
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Ты хочеш скетч где примеры неопиксель переключаются кнопкой ?
С библиотекой неопиксель от адафрута идет такой пример.
Называется buttoncycler. Посмотри, может разберешся.
Если не получится, будем решать.
 
grunge934Дата: Воскресенье, 04.02.2018, 10:40 | Сообщение # 14
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
я видел его, прикол в том, что время маленькое там у эфектов, и переключаются они лишь при полном прохождении предыдущего

Добавлено (04.02.2018, 11:40)
---------------------------------------------
Да и примеров там мало

 
AdminДата: Воскресенье, 04.02.2018, 14:05 | Сообщение # 15
Admin
Группа: Заблокированные
Сообщений: 329
Статус: Offline
Это не полнлценный скетч а пример как пишутся эффекты и как их можно переключать.
WS2812_FX имеет больше эффектов в скетче. Но проблеммы при переключении кнопкой будут теже самые.
 
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Световые эффекты © 2011