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

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

не работает конока выключения в ночнике

Здравствуйте, помогите, разобратся почему не работает конока выключения:
 
задание:
Сигнал с фоторезистора приходит на порт А0 платы Arduino. В соответствии с яркостью в помещении изменяется количество и яркость горящих светодиодов. При нажатии на тактильную кнопку вся программа прекращает свою работу и не реагирует на изменение освящения в помещении.
 
кхопка просто не работает, в чём проблема, 
 
const int sensorPin = 0;

Создание виртуального порта

Мне стало интересно, есть ли возможность объединить несколько портов в "виртуальный порт". В конце получить что-то вроде этого:

DDRX = B11111111;
PORTX = B00000000;

проблема с массивами

Есть код в котором в цикле успешно заполняется массив  uint8_t outbuf[3]. После записи трех значений он перезаписывается. И так 35 циклов. 
Я успешно вывожу 35х3 = 105 значений в монитор. ВСЕГДА имеем только 105 значений, просто привел упрощенный код.
Теперь, после каждой тройки значений, я перезаписываю эти 3 значения в другой массив. И при выводе в монитор
уже баги... зависание и т.п.

Генерация ШИМ-сигнала при срабатывании прерывания.

Доброго времени суток. Продолжится ли генерация ШИМ-сигнала при переходе в функцию, которую вызывает прерывание?

И второй вопрос: Возможно ли как-то обойти ограничение по применению команды millis() или micros() при работе функции, вызванной прерыванием (например перейти из функции по прерыванию в иную функцю)?

Перезапуск светофора по кнопке

Всем привет. Сделал светофорчик простой. Перезапуск производится по кнопке ресет. Все нормально кроме одного - перезапускается не только ардуинка с кодом, но и релюхи (у меня лампы включаются через реле). Соответственно в момент перезапуска загораются обе лампы. Как сделать чтобы запускать программу не перезапуская ардуино, а отдельной кнопкой так и не осилил, я еще совсем сырой в этом деле. Может подскажет кто? Заранее благодарен.

Почему лагает?

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

Использую простой код:

EasyTransfer + String

Коллеги, прошу помощи. Моих отрывчатых знаний не хватает, чтобы победить С++ ))

итак, есть 2 меги, соединенных через i2c с помощью либы easytransfer

образец либы:

Мастер:

Светодиодная лента

int trans = 9; // переменная транзистора
int pir = 8; // переменная датчика
int led = 13;
boolean val=0;
void setup() {
  // put your setup code here, to run once:
pinMode (pir,INPUT); 
pinMode (trans,OUTPUT);
pinMode (led,OUTPUT);
}

void loop() {
val = digitalRead (pir);// считываем данные с датчика
if (val == true) { // если да то 
for (int i=0 ; i<=255; i++){ // плавно включаем ленту
analogWrite (trans,i);
delay (5);// задержка для плавности
}
}
else {
for (int i=255 ; i<=0; i--){ // достигли максимума