// зажигаем светодиоды от кнопок
for (byte i = 0; i < NUM_SHOTS; i++)
{
DEBUG(i); // смотрим число которое в переменной i
if (!digitalRead(SW_pins[i]))
{
strip.setLED(i, mCOLOR(GREEN));
DEBUG(SW_pins[i]); //выводим пин с числом которое хранится в переменной I
}
else
{
strip.setLED(i, mCOLOR(BLACK));
}
strip.show();
}
}
// наливайка, опрос кнопок
void flowTick() {
if (FLOWdebounce.isReady()) {
for (byte i = 0; i < NUM_SHOTS; i++) {
if (!digitalRead(SW_pins[i]) && shotStates[i] == NO_GLASS) { // поставили пустую рюмку
timeoutReset(); // сброс таймаута
shotStates[i] = EMPTY; // флаг на заправку
strip.setLED(i, mCOLOR(RED)); // подсветили
LEDchanged = true;
DEBUG("set glass");
DEBUG(i);
DEBUG(SW_pins[i]); // добавил вывод дебага
}
так в них не чего не подключено.18 это какой то из аналоговых пинов
Взял все это дело и подключил к ардуино нано. и вот такая же беда как у данного товарища.Здравствуйте. Залита версия Алекса 1.5При входе в сервис индикация только на левом индикаторе, при вращении энкодера ничего не светится. в рабочем режиме только "А" и "Р".Остальные символы проявляются, но когда ничего не нажимаешь и не крутишь.На чего грешить?
В общем проблема какая то с пином A0 не знаю я что с ним , отказался от него все равно собираю на 4 стопки а коде прописал.Друзья помогите, изломал уже всю голову:
суть вот в чем. Дисплей, Энкодер, Кнопка(переключения режимов А - Р) все отрабатывает норм. Включаю все это дело, система думает что стоит стопка на контакте А0 (горит красным) нажимаем в ручном режиме наливать, загорается желтый светодиод далее по истечении времени в зависимости от того сколько грамм выставлено загорается зеленый светодиод, на концевики не как не реагирует, отпаивал проводки концевиков от ардуинки и все равно думает что стоит стопка на А0. Отпаял от Ардуинки все кроме кнопки (переключения режимов А - Р) Контакт D7 и провода D6 - который идет на DIN на светодиод. и вся эта хрень один фиг думает что стопка на А0 стоит
(Ардуино Леонардо)
что за фигня, помогите люди добрые.
и получаем вот такой результатC++:// зажигаем светодиоды от кнопок for (byte i = 0; i < NUM_SHOTS; i++) { DEBUG(i); // смотрим число которое в переменной i if (!digitalRead(SW_pins[i])) { strip.setLED(i, mCOLOR(GREEN)); DEBUG(SW_pins[i]); //выводим пин с числом которое хранится в переменной I } else { strip.setLED(i, mCOLOR(BLACK)); } strip.show(); } }
0
1
2
3
18 ---- откуда это число взялось ?
получаем результат:C++:// наливайка, опрос кнопок void flowTick() { if (FLOWdebounce.isReady()) { for (byte i = 0; i < NUM_SHOTS; i++) { if (!digitalRead(SW_pins[i]) && shotStates[i] == NO_GLASS) { // поставили пустую рюмку timeoutReset(); // сброс таймаута shotStates[i] = EMPTY; // флаг на заправку strip.setLED(i, mCOLOR(RED)); // подсветили LEDchanged = true; DEBUG("set glass"); DEBUG(i); DEBUG(SW_pins[i]); // добавил вывод дебага }
set glass
0
18 - откуда это число взялось ?
timeout
const byte SW_pins[] = {A1, A2, A3, A4};
@9k33 Бред какой то т.к. на Leonardo все норм даже от USB ПК@Excellion, Раз 100500 уже сталкивался с этой проблемой и каждый раз находил косяк по питанию,
Проверьте всю цепь еще раз, и замените источник. минимум 2 ампера нужно и минимум 5.3 вольта.
// настройка серво
servoON();
servo.attach(SERVO_PIN);
servo.write(0);
void timeoutTick() {
if (systemState == SEARCH && timeoutState && TIMEOUTtimer.isReady()) {
DEBUG("timeout");
timeoutState = false;
disp.brightness(1);
POWEROFFtimer.reset();
jerkServo();
if (volumeChanged) {
volumeChanged = false;
EEPROM.put(0, thisVolume);
}
}
void timeoutTick()