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

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

Датчик тока ACS712

Подключил датчик тока ACS712 на 30А к ардуино нано.

Залил скетч 

Пожалуйста,объясните чайнику про кнопки!!!!

Пожалуйста,не пинайте!!! Только приобрел Leonardo. Пытаюсь понять азы программирования.Переписал с видеоурока скетч про кнопку и светодиод.Нажал-горит,еще раз нажал-не горит.Залил-отлично работает!     Но!!! Никак не могу понять,как в этом скетче сделать вторую кнопку и светодиод. Ну чтобы каждая кнопка включала при нажатии и выключала при повторном нажатии свой светодиод. Допустим мне нужно включать-выключать восемь реле. Очень прошу,объясните! Нигде не найду про несколько каналов.Прилагаю скетч на один канал.Спасибо всем,кто поможет!

Выполнение двух подпрограмм одновременно.

Добрый день. Решил познать мир программирования МК и прикупил платку ардуинки. 

Итак, возникла идейка, сделать на ардуине генератор импульсов и частотомер. Допустим на одной ноге МК висит генератор, который генерирует прямоугольную последовательность импульсов. На другой ноге висит частотомер. По раздельности всё прекрасно работает, но есть одно важное условие, генератор и частотомер должны работь одновременно и не зависимо. 

Вопрос: возможно ли это реализовать на одной плате UNO?

Генератор осуществил следующим образом:

подключение дисплея от Motorola c113 (он же от c115/c117) к ардуино

Вытащил из древного мобильника (Motorola c113) вот такой дисплей:

вот здесь пишут что он упраляется по i2c и ему надо 3.3v

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

Ардуино, оптимизация условия if()

добрый день.

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

#define BTN_A 1
#define BTN_B 2
#define BTN_C 3
#define BTN_D 4

if(BTN_PRESS == BTN_A) 

-->

#define BTN_A 1
#define BTN_B 2
#define BTN_C 4
#define BTN_D 8

if(BTN_PRESS & BTN_A) 

...

все бы хорошо пока "идентификаторов нажатий" было мало, вмещалось в байт.

SIM900 не полный ответ в ком порт

Здравствуйте, помогите решить проблему, при настрйке:

AT+ICF=1,1

модем адекватно себя ведёт выдаёт полные ответы на запросы например ATD*102#;

(через Putty) +CUSD 0, "bla bla blaa sdasd asd ads add" всё бы хорошо, но с параметром AT+ICF=1,1   не будет рабоать с ардвино, будет выдовать кракозябры! чтобы работало с ардвино нужны параметры AT+ICF=3,3 если их выставить то ответы приходят не поные пример: 

Сравнение строк в switch

Я не нашол ничего лучше как crc32 вычислять для каждой строки и сравнивать с подсчитанными заранее...

измерение интервалов сигналов. как правильно реализовать.

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

__________|````|___________________________________|```````|_______......

параметры сигнала полки в пределах 10-100 мкс

передний фронт от 0 в 1  в пределах от 200 мкс до 2000мкс

16МГц

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

как правильно это сделать?

Управление синтезатором частоты AD9958

Управление идёт через атмегу 168 программку я написал вроде компилется без ошибок. 

Суть в том что по формуле расчитывается некое число Ftw (десятичное), по которому и определяется нужная частота у синтезатора далее это число должно переводиться в двоичный 32 разрядный код и выдавяться на соот ножку синтезатора. Соот при этом ввод частоты идёт через виртуальный ком порт кот тут же описан (с этим проблем не возникло). Вопрос вот в чём:

1.расчитанное число Ftw будет итерпретироваться как двоичное если оно word?