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

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

Игнорирование данных с пина определенное время

Добрый день. Сегодня первый день, как я начал осваивать азы Arduino. Пытаюсь сделать "дополнение" к своей сигнализации на авто. Суть в следующем: Имею arduino nano, модуль sim800l и аналоговый датчик напряжения. Схема подключения такова, что ардуина будет мне звонить при появлении напряжения на сирене. Все работает, все прекрасно, но при постановке и снятии с охраны мне так же приходит звонок. Вопрос в том, чтобы как-то сделать игнорирование сигнала, если он длится меньше, скажем, 2 секунд.

Некорретное отображение символов на LCD дисплей

Всем привет.

У меня следующая проблема. К arduino подключен датчик температуры ds18b20.

Имеется дисплей 2004 i2c.

Хочу выводить данные температуры в следующем формате "Temp:<температура>°С".

Все корректно работает, но через несколько часов работы после значения температуры и символами "°С" появляются значения C0, C5, C9.

Т.е. получается что-то типа "Temp: 20.51 С0 °С"

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

Код:

BUG Float???

Собственно вопрос вот:
 

unsigned long f = 43413500;

void setup() {
Serial.begin(115200);
}

void loop() {
float newf = f/100000;
Serial.print(" FREQ = ");
Serial.println(newf);
delay(100);
newf = f/1000;
newf = newf/100;
Serial.print(" FREQ_NEW = ");
Serial.println(newf);
delay(3000);
}

И вывод в порт:
 


 FREQ = 434.00
 FREQ_NEW = 434.13
 

 

Редактирование библиотеки. Структура "this"

Всем привет!

Есть библиотека https://github.com/darkbyte-ru/SA818 Хочу ее отредактировать "под себя". Вот содержимое файлов:

SA818.cpp

Переключение между страницами кнопками

Добрый всем день/ночь.

История такова:

Не догоняю вроде бы простых вещей, Help me pls.

Warning: ignoring changed section attributes for .progmem.data

Всем привет!

Компилирую код, получаю странное предупреждение. Вот скетч:

Помогите плиз

надо сделать программу в которой по нажатию 1 кнопки светодиоды бегут вправо, при нажатии 2 кнопки бегут влево

ОСНОВА УЖЕ ЕСТЬ:

void setup()
{
  DDRD |= 0xff;
}
uint8_t i = 0;
//Всё протестировано на ардуино уно!
void loop()
{
  PORTD = PORTD&0x0 | (1<<((i++) % 8));
  delay(100);
}

Процедура/функция которая записывает значения в параметры

Добрый день!

Подскажите пожалуйста, что-то торможу: как сделать процедуру/функцию которая записывала бы значения в свои параметры?

ну например:

void timer(int a, int b) {
 a = millis();
 b = micros();
}

void setup() {
 Serial.begin(9600);

}

void loop() {
 int ms,mics;
 timer(ms,mics);
 Serial.println(ms,DEC);
 Serial.println(mics,DEC);
 delay(1000);

}

как сделать чтоб в ms записывалось значение millis, а в mics соответственно micros?

Электронная педаль газа на arduino

Всем привет, собрал проект электронная педаль газа на трактор на arduino. Суть в том, что на педали газа потенциометр задающий сопротивление, и к тяге ТНВД двигателя прикреплен так скажем сервопривод (мотор на 24 вольт и потенциометр). Встал вопрос о защите от обрыва потенциометров, как реализовать защиту программно? А то допустим выйдет из строя или отпадет провод потенциометра у сервопривода и программа будет крутить мотор редуктора бесконечно. Для примера собрал макет: вывода на экран LCD 1602 значения потенциометра. Потенциометр подключен как обычно к минусу, к +5V и к аналоговому входу.

Диммер переменного тока (AC Dimmer RBDDimmer)

Здравствуйте. Возникла необходимость диммировать насос, подключающийся в 220В/50Гц, для этих целей купил RBDDimmer, способный, как я понял из описания, диммировать, как срезая часть синусоиды, так и пропуская полупериод (мне как раз надо диммировать пропуская период).

Скачал, подключил RBDdimmer.h, полез в документацию и с удивлением обнаружил, что для диммирования есть одна функция: