arduino uno и nano
- Войдите на сайт для отправки комментариев
Пт, 30/03/2018 - 23:12
Господа всех приветствую, помогите с проблемкой, на ардуинке UNO скетч работает, а на ардуинке NANO не работает, скетчи заливаются без проблем.
Вот простой скетч
[code] #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int LedPin = 13; // Подключаем светодиод к порту 13 int ButPin = 4; // Подключаем кнопку к выходу 4 int flag = 0; // флаг состояния void setup() { pinMode(LedPin, OUTPUT); pinMode(ButPin, OUTPUT); digitalWrite(ButPin, LOW); mySwitch.enableTransmit(5); } void loop() { if(digitalRead(ButPin) == HIGH && flag == 0) { pinMode(LedPin, INPUT); mySwitch.send(7777777, 24); flag = 1; } if(digitalRead(ButPin) == LOW && flag == 1) { pinMode(LedPin, OUTPUT); //не горит mySwitch.send(7777777, 24); flag = 0; } delay(60); } [/code]
И ещё, в NANO blink грузится и работает. NANO поддерживает флаги? Или Ардуино NANO купил г....о?
Весь мозг вынес, может есть ещё какие тест? или другой комп с кабелем?
Что такое - работает/не работает?
В оригинальных устройствах Nano и Uno МК если не эквивалентные, то из одного семейства, отличия в формфакторе и стабилизаторе питания.
Питание- USB от компа в обоих случаях. NANO с USB портом.
NANO- скетч "blink"грузится и работает, а скетч выше описанный не работает по сравнению с UNO
Симптомы описать можете?
Буду пробовать на другой ОС и кабелем, посмотрим.
Горит питание, светик 13 при команде не включается. При згрузке скетча tx и rx моргали.
Все понятно. А на Uno, говорите, этот код работает и диод на 13-м пине включается по команде? Фантастика просто.
Сам удивился, в стопоре уже. Может видео фантастики сделать на ютуб? Лежат два железа, один работет, а другой нет. Хотя оба железа рабочие.
Может подскажите скетч для теста?
Может другое условие написать без delay? Подскажите что можно изменить?
Фантастика. Ни одна строчка кода LedPin не включает, а он на Uno горит!!!
Мошт потомушто пины включаюца/выключаюца не функцией pinMode() а digitalWrite()?
А подтяжка есть у кнопки?
ButPin у вас выход.
Вы его читаете.
Вы уверены что надо читать этот выход?
LedPin у вас сначала выход.
Потом вы его переключаете на вход и на выход.
Вы уверены?
Зачем вы это делаете?
Фантастика. Ни одна строчка кода LedPin не включает, а он на Uno горит!!!
Мошт потомушто пины включаюца/выключаюца не функцией pinMode() а digitalWrite()?
ГЫ :))))
Сергей Р, заработало? Настоятельно рекомендую написать комменты для каждой строки и выложить код в топик.
ОСОБЕННО ДЛЯ СТРОК 21 И 30
ОСОБЕННО ДЛЯ СТРОК 21 И 30
Буду пробовать другие методы кода, и другие НАНО скоро из Китая придут.
Алгоритм работы такой и он меня полностью устраивает:
Пин 4 замыкаем с "+5в" светодиод не горит , передатчик передаёт радио пакет - прибор откл.
Пин 4 размыкаем от "+5в" светодиод горит , передатчик передаёт радио пакет - прибор вкл.
Если скетч без флагов , то прибор включается через раз, т.е. замкнул отпустил пин 4 от "5в" - прибор на приёмнике вкл.
Ещё замкнул отпустил - прибор на приёмнике выкл. Так не устраивает.
Гриша и DetSimen, большое Вам спасибо. Проблема решена , работает на всех ардуинках, заменив
pinMode на
digitalWrite
Всем спасибо, мелочь, а не приятно что где то работает, а где то нет.
Кнопки (
pinMode(ButPin, OUTPUT);
) нужно конфигурировать как INPUT_PULLUP или INPUT, а не как OUTPUT: https://www.arduino.cc/en/Tutorial/ButtonСпасибо sadman41, учту.
Ещё бы ТС поведал, зачем он юзает так -
вместо
Можно и так ))
Ещё бы ТС поведал, зачем он юзает так -
вместо
Как говорят военные: "чтобы ввестив заблуждение противника".