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

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

подсчет количества оборотов с помощью щелевого оптического датчика

добрый день!

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

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

Помогите с кодом, что не так?

 

вывод в Serial данных

Добрый день.

Есть код, в котором совершается звонок на номер телефона по событию.

Serial.println("AT + CMGS = \"+79ххххххх\"");

Эта строка встречается в коде несколько раз с одинаковым номером телефона.

Разумно номер телефона записать  в переменную в начале скетча(пусть TEL_NUMB), а потом вызывать в нужном месте.

Вопрос, как в данной строке вызвать эту переменную, учитывая все символы?

Усреднение значений с аналогового входа

Есть идея усреднения значений, не могу понять как сделать: берем массив например из 5 ячеек, в каждую ячейку массива пишем значения с аналоговго входа при каждом проходе цикла loop и далее делим сумму всех ячеек на количество ячеек, таким образом получаем как бы среднее арифметическое. 

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

А так же может кто подскажет хорошие способы для усреднения, заранее благодарен ;)

Вопрос по использовнию Serial

Прошу помочь: на MEGA2560  столкнулся с проблемой при выводе в Serial1.

При использовании Serial1.print(bch,HEX) и Serial1.write(bch) значения отличаются друг от друга и не совпадают с тем, что выводится для контроля в Serial.print(bch), в который выводится правильно.

Результат вывода в Serial1 читаю терминальной программой через адаптер USB-RS.

Используемый скетч:

MPU9250 bypass?

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

В общем, такое дело - имеется агрегат, заказанный с Китая: "GY-91". Представляет из себя спарку из гироскопа/акселерометра/магнитометра MPU9250 и барометра BMP280 на одной плате, соразмерно со всем известным MPU6050. Но речь пойдет именно об MPU9250.

Коррекция показаний во второй строке LCD 1602

[code]
#include <EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal.h>

#define DS1307_I2C_ADDRESS 0x68

LiquidCrystal lcd(6, 7, 8, 9, 10, 11);

const byte outPin = 5; // выход на реле

byte setMinClockOn; // 
byte setHorClockOn;
byte setMinClockOff; // 
byte setHorClockOff;

byte key(){ //// для кнопок ЛСДшилда
  int val = analogRead(0);
    if (val < 50) return 5;
    else if (val < 250) return 3;
    else if (val < 450) return 4;
    else if (val < 650) return 2;
    else if (val < 850) return 1;

Запуск двух шаговых двигателей одновременно с помощью L293D

Народ, здарова) Нужна ваша помощь. Необходимо запускать два шаговых двигателя одновременно, но при этом не с помощью цикла( 1 шаг 1, 1 шаг 2). Т.к. нужна максимальная скорость, а мой двигателя с циклом работают медленно (28byj-48). В распоряжение есть движки, ардуино уно и шилд к ней(L293D). Использую библиотеку AFMotor. Сразу скажу, что я далеко не спец в ардуино. Помогите, пожалуйста)

Настройка сигнала SS на W5100 не на стандартную (10) ногу Arduino, а на другую

Есть такая схема:  ARDUINO Mega2560 подключена к W5100, но сигналл SS используется не с контакта №10, а с другого контакта. Пытаюсь запустить тестовый пример WebSerwer.ino.

В этом примере работа с W5100 идет через библиотеку "Ethernet.h", в примере не вижу, где указываются сигнал, который Ардуино использует в качестве SS для W5100.

Вопрос: возможно ли при использовании библиотеки "Ethernet.h" для W5100 указать. что сигнал SS идет не с 10-й ноги Ародуино, а с другого порта?

Переназначение порта

Как переназначить порт (как я понимаю 11тый порт указан как COM2A1) но он занят ISP интерфейсом. В роди как можно переназначить на 3тий (COM2B1) но так просто не получается, где тут еще привязка к 11тому порту?

TCCR2A = 0;
TCCR2A |= _BV(WGM21) | _BV(WGM20);
TCCR2A |= _BV(COM2A1);
TCCR2B = 0;
TCCR2B |= _BV(CS20);
TIMSK2 |= _BV(OCIE2A);}
ISR(TIMER2_COMPA_vect){
waitForInterrupt = false; }

GSM МОДУЛЬ Ai ThinkerTechnology для запуска webasto

Доброй вечер! У мнея появилась не большая пробляма с этим модемом. Раньше у меня стоял sim800 с ним проблем не было, сейчас поставил Ai ThinkerTechnology A6mini вот тут и начались танцы с бубном. Не могу считать смс из модема. Пожалуйста тыкните носом, что я не так делаю. Вот старый код, он полностью рабочий, хоть и кривой