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

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

Ввод текста в переменную "char" с матричной клавиатуры.

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

Очередное определение уровня заряда аккумулятора



int zarya[2]; //переменная для хранения 3 последний значений напряжения
unsigned long ms;  //счетчик секунд
unsigned long ms2;
int Bat;  //заряд батареи в Вольтах
byte q;    // счетчик
void setup() {
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(A1, INPUT);
}
void loop() {
  ms = millis();

в чом проблема немагу понять

добрыйденвсем вложилскечь и вылезлиошибкив чиом можетбытьпроблема

Помогите с частью кода: "выключатель освещения счетчик людей в помещении"

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

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

Отправка СМС GSM Shield

Помогите пожалуйста, при достижении датчиком определенного значения отправляеться СМС поповещение о тревоге, как сделать так что бы смс отправлялось единожды ???

Смещение диапазона джойстика

Помогите разобраться (а то уже мозги потекли)

Суть вопроса - имеется джойстик и триммер подстройки (подстрочный резистор), по какой формуле считать?

Перерыл кучу статей по работе с джойстиками но оказывается некто не ставит триммеры.

Получается нужно смещать (триммировать) центральное положение джойстика, при этом крайними положениями стика по прежнему должны оставаться значения 0 и 1023.

Этюд: 2 строки по 40 символов на LCD 1602

Решил тоже небольшой этюд написать.
При разборке одного большого проекта, освоил работу с дисплеем LCD 1602 на контроллере HD44780 и выяснил интересную вещь. Хотя LCD 1602 может отображать только 2 строки по 16 символов, но в контроллере HD44780 память заложена на 2 строки по 40 символов. И в эту память можно выводить символы. А отобразить выведенные данные можно с помощью команд сдвига экрана (в библиотеке LiquidCrystal они называются scrollDisplayLeft и scrollDisplayRight). При этом сдвигаются обе строки экрана.

Управление диодом при поступлении сигнала с порта

Хочу сделать, чтобы диод включался автоматически( в зависимости от освещённости), при получении 1 с порта, а если 0, то выключаем. Не получается сделать, чтобы постоянно светодиод менял яркость, а не только при получении сигнала. 

Как выполнить код параллельно?

Имеется такая логика:

1. Дальномер постоянно считывает дальность. Если переменная уменьшается, то выполняется действие Х.

2. DHT должен получать данные каждые 5 секунд например. Если температура превышает определенный порог, то выполняется действие Y.

Если напишу код допустим:

int distance = ultrasonic.Ranging(CM);

if (distance < 100) digitalWrite(10, HIGH);

int t = dht.readTemperature();

if (t > 35) digitalWrite(11, HIGH);

включение света с ПИР, ИК и фоторезистором

в общем: скетч должен включать свет: в темноте - от ПИР (при поступлении сигнала с ИК напрежение должно повышаться, при повторном - выключаться + авто выключение при свете), на свету - от ИК(плавно)

вот начальный скетч, но что-то работает не так, как надо. Помогите пожалуйста