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

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

loop и время жизни переменной в ней

Хочу уточнить правильно ли я понимаю основы. :-)

После выполнения  функции setup() вызывается функция loop()

Когда выполнение кода в loop заканчивается, происходит выход из нее и повторный вызов loop.

Меня мучает вопрос. Если я объявил переменную и при выполнении кода (не при объявлении переменой) функции loop присвоил ей заначение то получается при следующем вызове loop  память для этой переменной выделяется заново и присвоенное значение теряется? 

Лента WS2812B мигает вместо того, чтобы беспрерывно светиться с EEPROM

Здравствуйте. Буду благодарен за помощь новичку в ардуино, чтобы исправить проблему.
Я использую Arduino Nano V3.0 AVR ATmega328P и диодную ленту с ШИМ WS2812B.
Задача в том, чтобы в EEPROM памяти сохранялось сколько диодов горело перед выключением питания, и за тем после возобновления питания на ленте загорались столько же диодов, как и до выключения питания.
Столкнулся с проблемой, что лента раз в пол секунды загорается и тухнет (какой делей поставил так и работает) и я не понимаю почему.
Буду благодарен за исправления и разъяснения почему оно так работает.
Заранее благодарен:)

ультразвуковой датчик HC-SR04 не работает

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

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

Ассемблернаая вставка

есть массив

uint8_t d[] = "________";

нужно прочитать из регистра B   элемент массива d[7], и поменять местами нибблы, делаю это на ассемблере так
(http://microsin.net/programming/avr/avr-gcc-inline-assembler.html)

  asm volatile("in %0 , %1"  : "=r"(d[7]) : "I"(_SFR_IO_ADDR(PORTB)) );
  asm volatile("swap %0" : "=r" (d[7]) : "0" (d[7]) );

компиляция проходит , но нужного результата нет ,d[7] равен 0...

энкодер и лсд1602

добрый день. есть у меня энкодер, и хочу я данные с него выводить на дисплей ( в серийный порт скетч все пишет исправно). только вот  когда дописываю lcd.print (nc) в функцию encoderTurn - контроллер виснет, успевая в серийник отправить только Tu

Влияние Т0 на delay()

Статей про delay() как грязи.... Но  опять не пойму:

В цикле есть delay(3000). Он устраивает меня на все 100%. Пусть все зависнет. Но есть еще Таймер 0, с прерыванием. Так вот вопрос: почему в определенных случаях (разная уставка сравнения Т0) у меня дилей не работает? Код просто "проскакивает его"(((( Пробовал перед делеем ставить запрет прервания, а после снова разрешал - не помогает...

Прошу совета решения. 

Эмуляция нажатия клавиш

Добрый день. Хочу сделать пульт управления локомотива на платформе Arduino, подключённому к ПК. К счастью, в симуляторе, для которого всё это делается, практически все действия привязаны к клавишам на клавиатуре. То есть я хочу на своём "пульте" отслеживать нажатие кнопок, тумблеров и пр. и симулировать нажатие клавиш на клавиатуре. Надеюсь, понятно описал суть. 

Вопрос по float

Пытаюсь записать в ЕПРОМ значения типа float 
Есть функция, которую я нашел у вас на форуме
Однако мне надо ограничть float до 3 символов после запятой 

float aaa = 123.5457678;
Write_EEPROM(0, aaa,3)

Но! компилятор ругается
Тогда попыталсязаключить aaa,3 в скобки, то вместо float появляеться int то есть 123

 

Brown of Detection Mega2560

Подскажите, пожалуйста, как включить BOD для Mega. По умолчанию он выключен и появляются проблемы с EEPROM при перебоях с питанием

не понимаю как зажечь светодиоды в матрице

взял элементарную 2х2 

подаем на А - HiGH на С -  LOW засветиться левый верхний, все ок, потом подаю на В - HIGH а на D - LOW зажигаються все и это правильно, ну так вот я не понимаю как зажечь только левый верхний и правый нижний без двох других