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

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

Хук для говнокодеров

Типовой говнокод на этом ресурсе выглядит примерно так:

void func()
{
  digitalWrite(relay1,HIGH);
  delay(1000);
  digitalWrite(relay1,LOW);
  delay(1000);
}

Затем следует вопрос: почему loop() останавливается на 2 сек...

Небольшие изменения этого говнокода превращают его в автомат состояний

Конфликт двух процессов - помогите разобраться

Добрый день, корифеи

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

stty ubuntu настройка

сделал простейший таймер - перезагружает роутер при отсутствии пинга, перезагружает компьютер при зависании. bash скрипт посылает в ардуину символы echo "#1" > /dev/ttyUSB0 - пинг есть, echo "#0" > /dev/ttyUSB0 - пинг остутствует и просто echo "7" > /dev/ttyUSB0 время от времени (как сигнал "я живой").  sudo chmod a+rw /dev/ttyUSB0 - прописано. Всё работает (из bash, или из коммандной строки) только при условии, что загружена ARDUINO IDE с включенным монитором порта.

Помогите создать условия округления на языке ардуины

В общем вопрос такой как получив не важно откуда 1684

Округлить так чтобы переменные получили

допустим :

a=1

b=6

c=8

d=4

заранее благодарен не могу понять как ето в скетче отразить

Ожидание выполнения функции

Вопрос по программе. Есть лента с управляемыми светодиодами. Функция loop ожидает завершение выполнения кода - функции RainbowCycle (радуга). Необходимо по нажатию кнопки немедленно ее прервать и начать другую функцию (ту же RainbowCycle но с задержкой). Оператор break не помогает, условие в цикле функции - тоже.

Радиоуправление

Отслеживание сигнала передатчика

Как управлять сенсорной панелью с шилда без библиотеки?

Добрый день. Вопрос в следующем:

познаю азы по книге "65 проектов Ардуино своими руками". И вот в одной из них есть пункт,где подключается к ардуино сенсорная панель от Nintendo ( BOB-09170). У меня тут в местных магазинах такого не было, но был шилд 2,4" дисплей+сенсор+ микроСД (такая вот: https://arduino-kit.ru/catalog/id/displey-2.4-tft-240h320-sensornyiy-%2B...)

В чём встал вопрос:

в книге описано подключение сенсора без подключения библиотеки Тачскрин. Прикручен ЛСД-дисплей, на который выводятся координаты при нажатии на сенсор.

Определить замкнут контакт или нет.

Есть геркон, нужно получить 0 или 1 (разомкнут или замкнуть кантакт)

Использую Leonardo (Pro  Micro).

int val = 0;

void setup() {
  pinMode(7,INPUT);
  digitalWrite(7, HIGH);
  Serial.begin(9600);

}

void loop() {
  val = digitalRead(7);
  Serial.print(" VAL ");
  Serial.printlnln(val);
 }

Я сдела так, но на Pin 7 и GND  показывает 4.3V, есть решения которое просто определяет замкнута сеть или нет, без питания?

String

Суть такова, я пытаюсь управлять ргб лентой по блютусу через телефон. Но я дошел до проблемы когда мне нужно управлять яркостью ленты(pot). Я решил сделать через операции со строками, но ничего не заработало. Я попытался посмотреть через serial.println что выдает значение, что бы понять где ошибка, но в итоге все крякнуло(в коде). Кто нибудь может подсказать где ошибка или другой возможный вариант решения этой проблемы.
#define blu 3
#define grn 6
#define red 5
String val, pot;
int myLength, r, g, b;

Библиотека ArduinoThread и прерывания.

Приветствую.

Есть такая библиотека ArduinoThread. Как я понимаю, всё в ней делается через millis и всё удобно и работает.

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

А вот смысла этого я понять не могу. 

Не поясните?

Спасибо.