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

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

2 функции на одну кнопку

Доброго времени суток уважаемые форумчане!

Заранее извиняюсь за вторжение, и за то что у кого-то отберу время, но может быть кто нибудь сможет помочь.

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

Ошибка в коде с прерыванием

Здравствуйте, прошу найти ошибку в коде с прерыванием. Нет никакой реакции на нажатие кнопки. Все моделирую в TINЛERСAD.

И еще два вопросы:

1) в какой части кода положено задавать начальное состояние выходов/входов?

2) какой должна быть разность между начальным состоянием входа и его конечным, чттобы сработало прерывание?

ir + китай leonardo

Захотел включать - выключать компьютер ик пультом. Была у меня https://ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-for-arduino-ATmega32U4-5V-16MHz-Module-with-2-row-pin-header/1348800135.html?spm=a2g0s.9042311.0.0.274233edv8iA5L и пульт с ик-приемником от тв-тюнера Beholder. Наваял такую суперпрограмму :

Ардуино. Ошибка компилятора

Создала проект, сейчас компилятор выводит ошибку.

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

Здравствуйте, хочу чтоб датчик Ultrasonic включал и выключал реле( ну и отправлял состояние на брокер) только тогда когда на реле высокий уровень напряжения( реле инвертирована и высокий уровень, это выкл).

Вот такой код написал, но мне нужен чтоб он запускался только когда реле переключено на разомкнутое состояние.

float dist_cm = ultrasonic.Ranging(CM);

Firmata передать массив

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

 

Что-то даже через гугл не могу уяснить пару простейших вопросов по фирмате на ардуине.

Ардуина соединена с хостом (RaspberryPi) по USB.

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

В скетче я вставляю из примера

Подключение экрана от нокия 5110 к nodeMCU V3

Arduino: 1.8.8 (Windows 7), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, 4M (3M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
 
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544_Nokia_5110_LCD_library-1.0.0\Adafruit_PCD8544.cpp: In member function 'void Adafruit_PCD8544::begin(uint8_t, uint8_t)':
 

PROGMEM tricks

Думаю, что ни для кого не является секретом, что любой отвязный ардуинщик рано или поздно пытается засунуть в самый дешёвый микроконтроллер если не веб-сервер, то хотя бы "умный дом". Ну, а какой умный дом обходится без вложенных в него автором красивых фраз, названий праздников и матросских ругательств? Но полёт мысли и приложенное к нему творчество быстро пресекается безжалостным фактом - оперативная память микроконтроллера не бесконечна.

Заполнить массив

Добрый день,
помогите пожалуйста с такой задачей - нужно заполнить массив [10000,4] от 0000 до 9999 таким образом, чтобы каждому элементу массива соответствоавала только одна цифра, при этом там где нет цифр, оставить 0.
Например, цифре 0 надо вписать 0,0,0,0. Цифре 10 - 0,0,1,0. Цифре 200 - 0,2,0,0.

То есть нужно получить вот такой массив:
{0,0,0,0},
{0,0,0,1},
{0,0,0,2},
...
{9,9,9,8},
{9,9,9,9}
Всю голову сломал, вроде как это делать надо через перевод в String и затем используя оператор Char?

Сглаживание fft

Добрый день
В предыдущем посте с Вашей помощью сделал первый шаг изучения fft, возникла проблема шумов, пытаюсь устронить их с помощью функций smooth но она пука не работает.
Вот что я сделал.
#include "arduinoFFT.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
#define SAMPLES 128 //Must be a power of 2, # of bins = samples/by 2 = 64
#define SAMPLING_FREQUENCY 1000 //Hz, must be less than 10000 due to ADC