Программирование

Вопросы по программированию Arduino.

Ломается пользовательская функция при повторном использовании ее с другим аргументом

Здравствуйте. Идея в том чтобы отрисовывать в мониторе порта (позже на текстовом экране) символьные анимации. Данные об анимациях хранятся в прогмем.  Написал функцию playAnimation, и она работает пока не использовать ее еще раз с другим аргументом animationNumber (даже если в этом цикле она не вызовется). В таком случае с периодом около минуты начинает выводиться пустой буфер экрана. Вот сам код:

ATMEGa328-ESP12 Обратная связь

Здравствуйте, не соображу как мне наладить обратную связь между Atmega и ESP. Суть такая, нажали на кнопку соединенную с ATMEGA, загорелась лампочка. Еще раз нажали-выключилась. Тоже самое и с ESP. Но вот проблема в чем. Нажали на кнопку ATMEGA. лампа загорелась, нажимаю на кнопку ESP лампа гаснет.А вот потом нажимаю на кнопку ATMEGA лампа не загорается, она загорается если еще раз нажать. А нужно чтобы загоралась сразу. Вот схема. Вот мои куски скетчей для ATMEGA  и ESP. Подскажите пожалуйста где я запутался.

Поиск совпадения в двухмерном массиве

Подскажите пожалуйста, есть ли какая-то готовая функция поиска символов в двухмерном массиве?
То есть проверки совпадения последовательности, например из 4 символов.
char input_number[] {"6390"}; // последовательность символов для поиска
char stored_numbers [][4]{ // массив char по 4-ре символа
	"1234",
	"5678",
	"4567",
	"7801",
	"6390",
	"7524"
	// ... и так далее
};

bool find_number() {
...
return true; // совпадение есть

Условная компиляция ядра.

Как сделать условную компиляцию ядра ? #define в скетче компилятор игнорирует, видимо ядро компилируется до скетча
Спасибо.
 

Таймер обратного отчета

Доброго времени суток, уважаемые форумчане.

Есть желание сделать таймер обратного отчета(секунды, минуты, часы) максимально точный, управляется кнопками (энкодер в дальнейшем), вывод на LCD 1602, закину на ардуино нано

НО, чего то совсем не могу разобраться до конца. Прошу помощи и рекомендаций по оптимизации. Огромное спасибо заранее!

Поставить на стоп с помощью кнопки

Привет привет мои друзья и товарищи!!! По несчастью или нет не могу быть уверена, но у меня встал вопрос! При нажатии на энкодер хочу чтобы ставилось звучание на паузу, а при повторном воспроизводилось снова. Получается сделать пока что только воспроизведение при удержании))

Жду Вашей помощи и активных обсуждений!

 

Моя безуспешная попытка:

проблема Servo + Speaker

Приветствую всех, у меня вопрос.

Есть ли разумный способ заставить работать одновременно Servo и Speaker ???

Если нужен примерный код то вот:

(В данном коде используется серво на 8 порту, спикер на 9 порту, и SD карта откуда берём аудио файл в формате Wav, так же дабы не плодить задержки убраны все delay(); они заменены на millis() весь код в комментах для лучшего понимания.

Этот ваш лживый С или "ты проверяй какого пола твой сосед"

Собственно это 1-я часть пятничного поста:
Есть такой маленький пример:
 

// ESP8266
char tic[8];
uint32_t n = 0xfefefefe;

void setup() {
Serial.begin(115200);
}

void loop() {
Serial.println(n);
delay(1000);
Serial.println(utoa(n,tic,10));
delay(1000);
}

Под переменную отведён заведомо меньший объём памяти! И что же видим...полёт нормальный...
 

4278124286
4278124286

 

Помогите с plx-daq

Есть система учета времени прихода сотрудников собранная на mc522 и arduino uno. Все данные при считывании карт приходят в excell файл. Проблема в том, что при отключении plx daq от серийного порта и повторном его включении, данные записываются в ячейки с уже существующими данными, какую функцию добавить, что бы при повторном подключении прога не переписывала уже существующие ячейки, а начинала запись новых данных в первую свободную ячейку? Вот код

Плавный пуск нагрузки в прерывании.

Есть готовый скетч диммера по управлению тэном на энкодере с кнопкой. При первом нажатии на кнопку, отключаем нагрузку. Второе нажатие включает нагрузку с мощностью которая была до отключения. Скетч рабочий. Только нужно сделать плавный запуск нагрузки при повторном нажатии.