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

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

Требуется исправление, и расширение, действующего ПО

 

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

Увеличение аналоговых и цифровых входов

[code]
/*Заготовка скетча для расширения портов NodeMCU ESP8266 или ардуино UNO 
 * 74НС595 - две штуки. Расширитель аналоговых портов CD 4051BE - 2 штуки. 
 * При чём аналогвые расширители управляются 5 портами микпрсхемы 74НС595
 * Схема и скетч тестированы на UNO и NodeMCU ESP8266 c контролем на монитор порта
 * Скетч не содержит Delay и millis Однако аналоговый порт считываться успевает
 * Занимая один аналоговый порт микроконтроллера и три цифровых ....
 * получаем 16 аналоговых и 8+3 = 11 цифровых
 Может кому пригодится*/

ESP32 срабатывание прерывания кнопки при analogRead

На ESP32 стоят три кнопки (счетчики) при нажатии которых срабатывают прерывания, а также 4 аналоговых датчика, с которых по времени считываются значения. При analogRead срабатывают прерывание на кнопках, пины которых также завязаны на ADC2, кнопка которая на ADC1 и где сами аналоговые датчики такой проблемы не имеют.

Перечитал интернет, попробовал использование библиотеки driver/adc.h - не помогло. Как вариант перенести эти две кнопки на другие пины, не ADC, но все равно любопытно как это победить.

Объединение двух кодов в один (будильник и ночник)

Нужно соединить два разных кода в один
Будильник:
#include
#include
#include

//************************************//
LiquidCrystal_I2C lcd(0x27,20,4); // Display I2C 20 x 4
RTC_DS1307 RTC;

//************Button*****************//
int P1=6; // Button SET MENU'
int P2=7; // Button +
int P3=8; // Button -
int P4=9; // SWITCH Alarm

//**************Alarm***************//
#define LED 13
#define buzzer 10

//************Variables**************//
int hourupg;
int minupg;
int yearupg;
int monthupg;
int dayupg;
int menu =0;

Два варианта объезда препятствий

Всем здрасьте!

Есть объект, который движется на плоскости в органиченном пространстве (50х50см). Ардуино передает ему управляющие сигналы. Там же расставлены препятствия-перегородки, как в либаринте.

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

1. Физический - навесить на него разные датчики, которые просигнализируют о столкновении, в результате объект свернет с неправильного пути. (От этого пособа не отказались, он пока основной. Но нужно проанализировать, насколько сложен и объёмен второй способ).

как длинный текст программы видеть

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

КАК? 

Как можно держать перед глазами максимальное число строк кода?

Паяльний фен на ардуино нано

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

Управление яркостью

Всем привет. Можно ли имея IR модуль + пульт управлять яркостью led ленты? Или только потенциометром? Тактовые кнопки пробовал - не понравилось..

как передать volatile + значение по умолчанию?

приветсвую .  

обозначяю ссылку на порт как volatile. как по науке. а потом хочу её передать через одну-другую функцию. и каждый раз пока  while сравнивает порт, он должен по моей задумке сравнивать реальное текущее значение порта а не статичное , устаревшее, не соответсвующее реальности значение. вот поэтому и pass-by-reference.

&port = 1; единица нужна как дефолтное стартовое значение для подстраховки и в случае если передача порта опущена при вызове soft_reset

но компилятор ругается. помогите исправить ошибку 

 

программный UART

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

использую программный UART, к нему подключен блютуз, скорость 57600.

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