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

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

Таймер подсчета времени наработки

Доброго времени суток. Передо мной стоит задача написать программу которая на первый взгляд кажется очень тривиальной. Но т.к. дело обстоит с Arduino простая задача завела меня в тупик. Вобщем суть задачи такая: есть порт цифровой на нем в штатном режиме присутсвует 1 (порт притянут резистором к +5в). При появлении сигнала низкого уровня (0 - порт через оптопару притягивается к земле) необходимо запустить таймер который бы считал время наработки. Есще один "камень" в этом, что сигнал может держатся и час и два и сутки.

тип данных EEPROM

Не могу понять какой тип данных у EEPROM.

У меня данные для хранения int- 2 байта, меньше не могу, а у ПЗУ я так нонимаю 1 байт,  что делать, или записывать их в 2 ячейки, то как это съделать коректно? 

заранее спасибо.

Потенциометр

Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???

Не получается конвертировать переменную - не знаю как

  
Добрый вечер!
не удается конвертировать переменную типа  uint8_t* в тип char * . меня так же устроит если конвертировать так же в String но тоже не получается
пример кода:
интересует переменная msg  и tcp_msg
в msg приходит по TCP/IP текст


  size_t size;

  if (EthernetClient client = server.available())
    {
   
      Serial.println();   
      String tcp_msg;
      while((size = client.available()) > 0)
        {
          uint8_t* msg = (uint8_t*)malloc(size);
          size = client.read(msg,size);
         Serial.write(msg,size);

Кодировка win-1251

Добрый день!

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

Есть конечное оборудование, которое подключено к ардуино через serial.

Как оказалось, оборудование обменивается данными только в кодировке win-1251.

К примеру команду в виде - FE FE 5E E0 03 FD оборудвание понимает только в таком виде - юю^аэ

На указанную команду оборудвание должно дать ответ примерно следующего содержания - FE FE E0 5E 03 78 56 34 12 00 FD

проблемы с инициализацией двух модулей в void setup

всем привет.

есть anarduino+MW RF96(LoRa) http://www.anarduino.com/miniwireless/#

к ней подключены пара термосенсоров  DS18B20.

стандартный пример Multiple от OneWire+DallasTemperatule работает отлично:

Передача данных по 433.

Добрый день. в интернете очень много примеров как передать данные по 433, но ниодного примера как передать большие данные. больше чем 35 байт за раз. можно ли как то увеличить объем передачи данных

например мне нужно передать строку по радиоканалу такую:

4400 4400 500 1700 450 1750 500 1700 500 600 500 600 500 650 450 650 450 600 500 1700 550 1650 550 1700 500 600 500 600 500 600 500 600 500 650 450 1700 500 1700 500 1750 450 600 500 650 450 700 450 600 450 650 500 600 500 600 500 600 550 1700 450 1700 500 1750 450 1750 450 1700

 

ARDUINO и нестандартный контроллер по RS485

Здравствуйте. 

Требуется связать панель оператора (MODBUS ASCII, 38400,8,none,1,MASTER) и контроллер TRILOGI (свой протокол, 38400,8,none,1,SLAVE 01) по RS485, через ARDUINO(как конвертер).

Протокол обмена TRLOGI выглядит так:

Как передать и принять данные с контроллера? 

 

Получение данных из монитора порта

Здравствуйте, возникла необходимость получать данные из монитора порта, например при получении отклика от Arduino это показывается в мониторе, но мне хочется чтобы эти данные сразу записывались в отдельный файл, как это сделат?

Как обьеденить DS18B20 с TM1637 ?

Уважаемые форумчане подскажите пожалуйста как обьеденить DS18B20 c TM1637 т.е. как сделать чтобы на дисплее отображалась температура с датчика ? Заранее спасибо! (поиск в просторах особых результатов не дал):)