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

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

Ретрансляция видеопотока

Всем доброго дня, дорогие форумчане!

Столкнулся с проблемкой. 

Есть ESP32-CAM и DOIT ESP32 DEVKIT V1. На ESP-CAM поднят WebServer для стриминга и WiFi в режиме клиента. На DEVKIT поднят ESPAsyncWebServer и WiFi в режиме AP+STA.

Схема работы: (ESP-CAM -> AP DEVKIT) -> STA DEVKIT -> роутер -> домашняя сеть + инет

Когда ESP-CAM и DEVKIT подключены к роутеру, на ESPAsyncWebServer видео транслируется без проблем. Но, когда подключаю по описанной выше схеме, доступа к видеопотоку нет. 

Должен ли оптимизатор выкидывать из конечного кода неиспользуемые методы класса?

Столкнулся с такой ситуацией - беру пустой код ардуино, добавляю туда экземпляр своего класса - больше ничего. Никакого кода с участием этого экземпляра нет, только обьявление - но итоговая прошивка сразу увеличивается на 8к.

В связи с этим два вопроса:

1. разве по умолчанию оптимизатор не должен выкидывать из кода неиспользуемые методы класса?

2. если по умолчанию нет - есть ли какие-то способы заставить его это делать? Или не заставить - а скорее помочь определить, что данный код лишний и может быть выкинут....

 

Зависает прием HEX с ИК пульта.

Привет!
В программировании нулевый, была задача сделать вывод бегущей строки на адресной матрице 8х32 с нажатия кнопок на ИК пульте.

На каждую кнопку - своя надпись, которая крутится 1 раз и ждет следующей кнопки.

Двусвязный список

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

Проверка инициализации переменной


void loop() {
  enc1.tick();
  MenuItem* item;

  if (enc1.isRight()) {
    Serial.println("isRigh");
    item = mm.Next();
  }
  if (enc1.isLeft()) {
    Serial.println("isLeft");
    item = mm.Back();
  }

  if (item) {
    Serial.println(mm.current->_name);
  }

}

Не пойму как проверить что переменная item инициализированна, проверка if (item == NULL) так же не работает

прямое смешение указателя "shar*stroka"




//IDE 1.6.6

// эта конструкция работает
      (*stroka)--[n];
      (*stroka)--[n];
      (*stroka)--[n];
      (*stroka)--[n];
      (*stroka)--[n];              //возвращаем указатель на начало строки
      Serial.println(stroka[n]);
      n++;
      (*stroka)++[n];
      (*stroka)++[n];
      (*stroka)++[n];
      (*stroka)++[n];
      (*stroka)++[n];

// тоже работает
   for (byte w = 0; w < 5; w++) {(*stroka)--[n];}//возвращаем указатель на начало строки

TFT LCD tootch 3.5 шилд на уно и мега2560

Купил дисплей tft 3.5 ili 9486 в паре с мега2560.со стандартными биб-ми не работает нормально тачскрин.

Что подкрутить в библе может? Или ссылку на стороннюю библу если есть у кого оставте пожалуйсто.

 

 

Вывод данных из RS485 на LCD дисплей

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

Подключаю две ардуины по rs485 моодулю. С передающей отпровляю в сериал строку. На принимающей нужно вывести эту строку на дисплей, но т.к. в сериал передаётся и принимается посимвольно и из-за этого на дисплей выводится без конца и тем самым заполняет весь дисплей, а не обновляет символы с установленного курсора.

 

Передающая ардуино:

ESP32 и создание экземпляра SD

на mega2560 использовался код: 

#include <SD.h>
SDClass * mySD = NULL; // ссылка на объект сд карты

void setup() {
  mySD = new SDClass;
  if (mySD->begin(5)) delete mySD;  
}

void loop() {
}

на ESP32 выдаёт ошибку: error: 'SDClass' does not name a type

Связь Arduino & ESP по uart

Добрый день. Есть A.Nano & ESP8266.

К Нано подключен датчик тока. Раз в 5 секунд нано считывает показания с датчика. В лупе:

 if(curr_voltage >= 180)
    {
      voltage_status = 1;
    }
    else
    {
      voltage_status = 0;
    }
  //транслируем в сериалы
  Serial.write(voltage_status); // пробовал и  print
  delay(5000); 
 

Показание 0 / 1 транслируются раз в 5 сек в сериал. 

На есп натянут веб интерфейс. Соеденены нано и есп RX-TX TX-RX. 

В есп слушаем: