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

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

как прочитать spi

Здравствуйте, есть 2 устройства, общаются по spi, хочу сесть на их выводы и считывать информацию, не могу до конца понять каким образом, вижу это как: когда ss меняет свой уровень с 1 на 0, начинается передача данных, в этот момент надо считывать MISO и MOSI но в читабельном виде, то есть надо 2 массива я так понимаю? а при постановке пина ss в логический 0, выводить информацию в монитор порта, но тогда тактовый сигнал SCK получается не нужен мне? есть может у кого наработки на эту тему?

Не работает больше одного return; в функции

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

Переключатель "Авомат - Ручное"

Доброго времени суток!

Делаю проект "Умная темплица". Вывод показаний и управление реле, осуществляется с вэб сервера. Теперь необходимо сделать переключатель (кнопку) режимов управления включения реле "Авто-Ручное".

В положении "Авто", должен исполнятся этот кусок кода:

Для reset86 про интервалы

Не знаю, кто тему снёс, это не я

uint8_t GetDayPeriod(const uint8_t AHours, const uint8_t AMinutes) {
    uint16_t time = 60U * AHours + AMinutes;

    if (time < TIME_NIGHT) return EVENING;
    if ((time > TIME_EVENING) || (time < TIME_MORNING)) return NIGHT;
    if (time < TIME_DAY) return MORNING;
    if (time < TIME_EVENING) return DAY;
    return EVENING;
}

 

Как убрав временные промежутки сделать так что бы мои светодиоды включались строго тогда когда подастся другой ток (то есть у ме

int A = 1;
int B = 2;
int C = 3;
int D = 4;
int E = 5;
int F = 6;
int G = 7;
int H = 8;
void setup()
 
{
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(H, OUTPUT);
}
 
void loop()
 
{
if (digitalRead(A0) == HIGH) {
    digitalWrite(A, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(E, HIGH);
    digitalWrite(G, HIGH);
  
    digitalWrite(B, HIGH);

Два датчика ds18b20 показывают -127

3драствуйте, есть скетч контроллер холодильника, Проблема в том что 2 датчика температур ds18b20 показывают -127, при том что в тестовой прошивке от библиотеки dallas-temperature все ок, работало и с адресами и с индексом. Прикрепляю прошивку

Почему то горят по два светодиода при подключении пустого провода

Здравствуйте, у меня возникла проблема с входными значениями на ардуино уно, я написал скетч для светофора на 2 светодиодах на каждый (то есть красный и зелёный), и когда подключаю все входные не подавая напряжения то у меня горят все светодиоды без исключения
 
 
int A = 1;
int B = 2;
int C = 3;
int D = 4;
int E = 5;
int F = 6;
int G = 7;
int H = 8;
void setup()
 
{

Нужно ускорить процедуру чтения UART

тут ниже тема чужая, не буду в нее влезать...

есть модуль ESP-01 он по WiFi  раздает контент, все работает относительно быстро пока его не подключаю к MEGA по UART,

 

Мега шлет относительно маленькие пакеты 1 раз в секунду, ESP их разбирает и все работает, но уже сильно медленнее... 

Да я читал, что String медленный, но не понимаю на сколько он медленный, может кто подскажет что-то конкретное по ускрению этого кусочка?