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

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

Serial Half-Data

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

Для общения между МК <-> ПК через Serial порт использую байт массивы определённой структуры (некое подобие пакетов). Но есть одна маленькая проблема. Данные считываемые платой не соответствуют действительности.

Код МК:

void serialEvent()
{
      while (Serial.available())
      {
            byte a = Serial.read();
            Serial.write(a);
      }
}

Отправляю из программы следующий байт массив:

Помогите написать алгоритм для кнопки.

Задача такая:

При нажатии кнопки (например на 8 пине) необходимо выдать на пин (например 9) напряжение в течении 5 секунд после чего убрать напряжение. Алгоритм без использования delay.

MIDI Drums на базе Arduino nano

Здравствуйте! Прошу помощи. Есть проект https://deadastronaut.wixsite.com/effects/nano-8-midi-drums по сути это восемь датчиков, чьи сигналы преобразовываются в миди команды. Миди команды отправляются в барабанный модуль или в софт на железке. Все дело в том что управлять можно одним набором ударных (всего восемь звуков). А мой внешний модуль позволяет загружать в себя несколько сотен. Хотелось бы добавить вход (или кнопку) для переключения пресетов. Допустим: 1) - 1-8. 2) - 9-16. и так далее.

Сообщение о прерывании связи nrf24l01+

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

Есть датчик, данные с которого передаются через дуину-передатчик на дуину, подключенную к компьютеру, после чего выводятся в порт. Однако, при нарушении связи (отключение питания на передатчике), в порт продолжают выводится последние полученные данные.

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

Передатчик:

Прошу помоши новичка в переделке прошивки GRBL

Приобрел себе комплект электроники под ЧПУ Mega 2560+ RAMPS 1.4+ DRV8825 (5шт) на самом деле мне нужен ЧПУ фрезер. Стал розыскивать прошивку для фрезера под это железо. Оказалось для фрезера лучьше подходит GRBL но железо там используют другое в основном UNO+ RAMPS 3.0 + DRV и прошивок под них как грязи. Но нашол прошивку под свою связку grbl-Mega-1.1f.20170802 в ней сам HEX и исходники.

Прошил ардуину XLoader-ом думал шас хоть движками покручу, да не тут то было, ни чего не вышло. Стал смотреть куда какие сигналы приходят оказалось что

Работа с двумя и более nRF24L01

Всем привет. Не могу настроить работу со второй nRF24L01.  Ардуино с nRF24L01 отправляет сигнал первой ардуино, та опрашивает состояния реле и отправляет обратно сигнал в зависимости от сигнала в ком порт идет соответствующая команда. Это все работает, нормально. Когда отправляет второй ардуино она его не принимает. Вчем может быть дело, что я делаю не так?

Меня больше интересует последний блок.

код:

Помогите объединить 2 скетча

#include <CustomStepper.h>
CustomStepper stepper(2, 3, 4, 5, (byte[]){8, B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001}, 4075.7728395, 12, CW);
boolean rotate1 = false;
boolean rotatedeg = false;
boolean crotate = false;

void setup()
{
  //sets the RPM
  stepper.setRPM(2);
  stepper.setSPR(4075.7728395);
}

void loop()
{
  
  if (stepper.isDone() &&  rotate1 == false)
  {
    stepper.setDirection(CCW);
    stepper.rotate(2);
    rotate1 = true;
  }

​
  stepper.run();
}

#include <IRremote.h>
 

Библиотека SIM900, АТ команды, запрос баланса.

Есть рабочий код вывода баланса в сериал:

Ардуино и температурный контроллер Yudian AI518

Добрый день товарищи!

Пытаюсь достучаться до температурного контроллера Yudian AI518 и получать с него какие то данные.

Получается отправлять запрос, контроллер на запрос отвечает, но это происходит не стабильно. И почему то отправка-прием идет только при открытие в IDE монитоинга порта. Короче мои подозрения на таймер, по протоколу нужно отправлять-принимать с определенным интервалом. Я новичек, пожтому тут у меня возникли вопросы. Кому не сложно посмотрите пожуйста, буду очень благодарен за помощь, пишете в лс, в долгу не останусь. Очень нужно эту проблему решить.