Я конечно дико извиняюсь, но с ардуино я работаю первый раз в жизни, поэтому пожалуйста не бейте Суть такая, у меня есть адресная светодиодная лента WS2812B, дисплей "мэлт mt-16s2h", ИК приёмник с пультом и Arduino Uno. Проблема у меня только с частью прошивки. Решил использовать библиотеки FastLED для ленты и IRremote для инфрокрасника. Две недели курил мануалы и думалка уже кипит, а тут уже и сроки горят. Вся эта тема должна работать так: на пульте набираем номер кабинета, всё это отображается на дисплее (цифры которые набираешь), после чего нажимаешь ок и загораются по одному светодиоду на определённом участке светодиодной ленты. Потом после простоя через две минуты всё сбрасывается, либо для сброса будет использоваться кнопка на пульте. Я просто не понимаю в каком направлении двигаться с этой конструкцией. Все гайды что я находил тяжело понять начинающему. Поэтому думал кто-нибудь напишет какие части библиотек мне нужны и в какой последовательности их запихнуть в ардуино.
Выражайтесь яснее. Светодиоды любые? Или они что-то должны изобразить? Из вашего описания совсем не понятно что вы хотите сделать в итоге.
Ну допустим я ввожу на пульте 12 и нажимаю ок, после чего загораются светодиоды 4,5,6,7,20 с интервалом в пол секунды.
Тогда забей. Если ты Ардуину видишь первый раз в жизни, за обозримые сроки тебе самому это написать не удасца.
Если бы мог забить то так бы и сделал. Я год назад писал простенькие проги на яве, думаю тут принцип схож, но за год очень многое забыл, думал тут кто нибудь подкинет материал хотя бы по инфракраснику. С FastLed я более менее разобрался но не знаю как это всё в кучу связать.
Смысл такой-принимаешь код по IR.Далее сверяешь его с запрограммироваными кодами оператором switch-case если совпал то выводишь на LCD что угодно и зажигаешь нужные адресные светодиоды нужным цветом.
Простой конечный автомат. В одном состоянии - анализируем коды с пульта, показываем на семисегментнике введённый номер. Как только номер введён (либо нажатием на кнопку ОК на пульте, либо по истечение N времени после ввода последней цифры) - переключаемся на ветку индикации пути. После окончания индикации - переключаемся на ветку ввода номера. Псевдокод. Подчёркиваю - псевдокод: Код (C++): typedef enum { msEnterNumber, msDrawWay, } MachineState; MachineState state; int number = 0; void setup() { } void loop() { switch(state) { case msEnterNumber: { int code = IR.getCode(); if(code == OK) { state = msDrawWay; } else if(code >= 0 && code <= 9) { number *= 10; number += code; sevenSegment.display(number); } } break; case msDrawWay: { int diodePin = getNextDiodePin(number); if(diodePin == -1) { state = msEnterNumber; number = 0; sevenSegment.clear(); } else { digitalWrite(diodePin,LOW); delay(500); } } break; } } Без delay - чуть сложнее логика. Состояния конечного автомата - можно добавлять, чтобы расширить функционал до требуемого.