Ардуино нано некорректная работа
- Войдите на сайт для отправки комментариев
Втр, 29/08/2017 - 15:54
/* таймер кнопка 1 ->2 (btn1_pin) 0- нажата /1 нет GND->GND светодиод 1->3 (Led1_pin) 1- горит8 /0 нет Ucc->Ucc */ const int btn1_pin = 3; // нога кнопки 1 uint8_t btn1 = 0xFF; const int Led1_pin = 8; // нога реле uint8_t Led1; const int Led2_pin = 2; // нога светодиода 2 uint8_t Led2; void setup() { pinMode(btn1_pin, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(Led1_pin, OUTPUT); digitalWrite(Led1_pin, Led1 = 0); pinMode(Led2_pin, OUTPUT); digitalWrite(Led2_pin, Led2 = 0); } void loop() { static uint32_t MILLIS ; MILLIS = millis() ; //200 миллисекунд вычислит. поток 1 static uint32_t future1 = 0 ; static uint32_t fut1 = 0 ; if (Led1 & MILLIS >= fut1) // если прошло время и светодиод еще горит { digitalWrite(Led1_pin, Led1 = 0); // то выключим его digitalWrite(Led2_pin, Led2 = 0); future1 = 0 ; fut1 = 0 ; } if (MILLIS >= future1) { future1 = MILLIS + 200 ; btn1 = btn1 << 1 | digitalRead(btn1_pin); if ((btn1 & 3) == 2) { // если нажата клавиша (переход с 1 в 0) if (!Led1) { // и светодиод не горит if (digitalRead(5) == 0) { fut1 = MILLIS + 600000 ; // то выставим время на 600 000 = 10 минутам } else // а иначе if (digitalRead(6) == 0) { fut1 = MILLIS + 1200000 ; // то выставим время на 1 200 000 = 20 минутам } else // а иначе if (digitalRead(7) == 0) { fut1 = MILLIS + 1800000 ; // то выставим время на 1 800 000 = 30 минутам } { digitalWrite(Led1_pin, Led1 = 1) ; //и зажжем digitalWrite(Led2_pin, Led2 = 1) ;} } else // а иначе { digitalWrite(Led1_pin, Led1 = 0) ; //погасим digitalWrite(Led2_pin, Led2 = 0) ; } } } }
Откатал скейтч на ардуино уно всё работает. Загружаю этот же скейтч в ардуино нано он работает вообще не понятно как и близко нет к скейтчу. Таймер по кругу идёт .Питание что от блока питания что от юсб всёравно одно и тоже. Нано проверял, простые свечения светодиодом и кнопки на этих контактах отрабатывае нормально.В чём может быть проблема такого поведения нано в отличии от уно.Уно и нано китайские.
взяли чужой скетч и "слегка подправили"? = налепили ошибок.
Вы разницу между операторами "&" и "&&", равно как между "|" и "||" улавливаете? - вот теперь пройдитесь по коду и посмотрите, где какой должен стоять. У вас с ними полная каша. В частности в строке 34 - явная ошибка.
Ну и код работы с временными интервалами - строки 42, 47, 51 и 55 - неверный. Классическая ошибка новичка. Хотя конкретно к тем проблемам, которые вы описали - отношения не имеет
И слово Sketch ни при каком раскладе не пишется с буквой "й" . Кто это вообще придумал первый? На кол посадить за это..
Это конечно основная проблема в слове Sketch попробую убрать ошибки, но почему уно работает с таким скетчем
почему уно работает с таким скетчем
А хрен его знает!
Вы ведь не потрудились объяснить нам:
1. Что этот "скетч" должен делать;
2. Что он в действительности делает на Uno;
3. Что он в действительности делает на Nano.
Или Вы думаете, кто-то станет догадываться или пользоваться хрустальным шаром?
Кроме того, Вы не привели схемы (и картинок) подключения.
Сам по себе скетч содержит явные ошибки, но разбираться как именно он должен с ними сработать .... если Вам лень написать что он должен делать, то с какого перепугу кому-то будет не лень разбираться?
При правильном соединении, разницы между УНО и Нано нет никакой (обратное неверно).
Думаю это глюки самой НАНы.
Так же бился с одним скетчем, он даже строки нормально отказывался обрабатывать.
При переходе на другую плату, все вдруг заработало.