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

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

Реле не размыкается

Есть лента, которая должна автоматически включаться с 6:57 до 7:03 ежедневно, кроме воскресенья. Питается она от 12В, ключём выступает реле, на которое подается сигнал от ардуино (D7), в прошивке которой написаны условия, при которых сигнал на D7 поступает. Эти условия используют информацию полученную с датчика времени DS1302. Прошивка датчика скачана отсюда: http://iarduino.ru/file/235.html. Проблема в том, что реле не размыкается даже когда условный оператор ложен. Включается реле тогда, когда запрограммировано. Код программы:

TFT LCD shild + arduino

у этого экрана не работает сенсор. как решить эту проблему я не знаю. подскажите пожалуйста.

не просто мигать а определенные сигналы.



// Массив режимов работы светодиода
byte modes[] = {
   0B00000000, //Светодиод выключен
   0B11111111, //Горит постоянно
   0B00001111, //Мигание по 0.5 сек
   0B00000001, //Короткая вспышка раз в секунду
   0B00000101, //Две короткие вспышки раз в секунду
   0B00010101, //Три короткие вспышки раз в секунду
   0B01010101  //Частые короткие вспышки (4 раза в секунду)
};

uint32_t ms, ms1 = 0, ms2 = 0;
uint8_t  blink_loop = 0;
uint8_t  blink_mode = 0;
uint8_t  modes_count = 0; 

Подскажите как добавить действие к двухпериодный таймер

// входа  
#define potPause A0   // потенциометр на 10 кОм для установки паузы двигателя.
#define potWork A1   // потенциометр на 10 кОм для установки работы движка.

#define WorkDrive 2 // Вывод к котрому подключена нагрузка
#define TIME_ON_NASOS 1000  // Время в течении, которого на выводе 1
#define TIME_OFF_NASOS 5000 // Время в течении, которого на выводе 0
boolean state_nasos = 0; // Переменная для хранения состояния вывода
unsigned long new_millis_nasos = millis(); // Переменная для хранения времени

Меню для LCD5110

Здравствуйте, уважаемые! 

Нашел интересное меню для LCD5110. Вот ссылка: https://www.youtube.com/watch?v=AF_UkkPpgGw&t=27s

Очень захотел прикрутить его к своему проекту. Но при компиляции выдает ошибки, то переменная не обозначена, то функция. Вот сам скетч:

Некорректная работа функции if

Использую экран TFT для вывода температуры с ds18b20

Иногда,когда температура с датчика изменяется,

Например температура опускается с  30 до 29.5 и данные на экране начинают очень быстро сменять друг-друга несколько раз,написал функцию millis с периодом опроса в 3 секунды,но почему-то моргания не пропали.

Где я накосячил?

использование сторонних библиотек

Решил освоить ардуину, купил комплект, поставил IDE почитал мануал и прилагаемые примеры. Всё просто, понятно. Но как только начал разбирать чужие готовые проекты (надо ж учиться у старших), так сразу понимание моё и закончилось

В тексте скетча идет обращение к незнакомой функции. Её нет в списке встроенных функций, нет во всех *.h установленых в системе вместе с IDE. В конце концов я нашел эту функцию вот тут:

правильно ли написана функция

//Передаем сам массив и количество элементов в нем
unsigned char Sum(unsigned char *Array, unsigned char Len) 
{
        //Делаем тут что то c данными массива


        // Добавляем пару байт в массив и возвращаем его
  	Array[Len] = BitLow;     
  	Array[Len+1] = BitHigh;
  	return *Array;
}

вроде работает, но кажется я что то упустил

Вопрос по структурам

Всем здравствуйте.

Возникла нужда "разбирать по полочкам" символьный массив в 32 байта, для удобства сортировки и обращения было решено создать структуру и за счет нее сортировать данные.

Два устройства по UART. Nextion и mh-z19

Доброго времени суток! Возникла следующая проблема. Не хотят вместе работать дисплей nextion и датчик CO2 mh-z19.

Суть примерно следующее. Устройство ждет команды от дисплея, и раз в минуту подключается к датчику.

Но проблема в том что по отдельности все работает. А вместе, датчик вроде что то получает. Ардуина отправляет команды дисплею, но при этом почему то не получает команды от дисплея.

Есть подозрение, что они где то мешают друг другу, уже всю голову сломал. помогите пожалуйста(