Arduino Uno или Nano? Что лучше брать: Nano или Uno? Рассчитываю не на маленькие проекты)
Что значит «не маленький»? Поконкретнее можно, чтобы что-то реальное посоветовать?
«Не маленькие» проекты разные бывают. Вообще, полностью заполнить 32Кб памяти программ двочиным кодом (при разумном программировании) можно только лишь в нескольких случаях, основным из которых является подключение LCD графического дисплея (и то не всегда). 1Кб ОЗУ — более чувствительный параметр, но опять же, при разумном программировании, даже с LCD обычно этого хватает, если не создавать каких-то безумных массивов в ОЗУ.
Уно и Нано одинаковые по своим програмны характеристикам и выводам, просто платы разного размера. Бери то, что тебе лично больше удобнее будет. Ну плата Нано в несколько раз меньше Уно, что бывает как удобнее, так и неудобнее (мелкие SMD-элементы, если что-то на самой плате паять).
Большинству новичков удобнее Уно, хотя лично мне больше нравится Нано (никогда Уно не покупал) из-за компактности.
Они сейчас такие дешёвые, возьми и то, и то — пригодятся, заодно сам и сравнишь, что тебе больше нравится.
Если проект действительно большой (опять же, напиши что ты собираешься делать), то имеет смысл взять что-то другое, типа Меги, или платы на ARM-процессорах (тогда лучше STM32, но там намного сложнее тебе будет), или вообще Raspberry Pi какой-нибудь (Raspberry Pi Zero — не намного больше Нано и меньше Уно, при том имеет 512 Мб ОЗУ (да-да, именно Мб, а не Кб), процессор 1 ГГц (в отличие от 16 МГц у Уно и Нано), слот под SD-карту до 64 Гб, имеет выходы на ТВ, HDMI, некоторое модели ещё и WiFi и т. д.
Остальные ответы
процессор одинаковый, Nano меньше. Uno в dip — корпусе лучше для новичка, контроллер менять, если спалишь, и по подключению проще.
Arduino Mega 2560
если проекты немаленькие.
Nano — можно в плату воткнуть, для законченного изделия это удобней. Uno — больше для опытов подходит.
Arduino.ru
В общих чертах: загорелся одним проектом, приобрел китайские Uno и Nano, посмотрел код, сломал себе голову (к програмированию имею очень посредственное отношение, только в общих чертах). Вроде немного разобрался, почитал литературу, загрузил на Uno — все хорошо, код хоть и кривой, но рабочий. Проблемы начались при попытке повторить проет на Uno — пин 13 никак не хочет работать нормально, дублируется столбик 1, то есть пин А4 на клавиатуре, никак не смог разобраться в причине, пытался подключить вместо пинов 13, 12 пины А6, А7 — реакция вообще никакая( В общем голову себе сломал. Подскажите пожалуйста в чем проблема и можно ли ее как то решить? Часть кода представлена ниже
#include #include //#include #include //LiquidCrystal_I2C lcd(0x38,16,2); LiquidCrystal lcd(7, 6, 5, 4, 3, 2); const byte ROWS = 4; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = < , , , >; byte rowPins[ROWS] = < A0, A1, A2, A3>; //connect to the row pinouts of the keypad byte colPins[COLS] = < A4, A5, 13, 12>; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); char codeInput[8]; byte time[4]; boolean refresh=true;//1 refresh one time. char password[8]; int key=-1; char lastKey; char var; boolean passwordEnable=false; //Buttons for lcd shield char BT_RIGHT = '4'; char BT_UP = 'a'; char BT_DOWN = 'b'; char BT_LEFT = '6'; char BT_SEL = 'd'; // Ok key char BT_CANCEL = 'c'; char BT_DEFUSER = 'x'; // not implemented //leds const int REDLED = 11; const int GREENLED = 10; //const int BLUELED = 12; //RELAYPIN boolean relayEnable = false; const int RELAYPIN = 9; //IS VERY IMPORTANT THAT YOU TEST THIS TIME. BY DEFAULT IS IN 1 SEC. THAT IS NOT TOO MUCH. SO TEST IT! const int RELAY_TIME = 5000;
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 07:42
Зарегистрирован: 10.01.2016
пин 13 подключен к светодиоду на обоих. По этому его использовать нужно «осторожно».
на сколько я помню различия у них главным образом в пределе перезаписи флеша, на UNO несколько десятков тысяч, на NANO всего несколько тысяч. в остальном вроде одно и то-же. Хотя NANO есть 2.0 и 3.0 у них вообще памяти разное количество .
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 07:48
Зарегистрирован: 06.05.2016
vde69 пишет:
пин 13 подключен к светодиоду на обоих. По этому его использовать нужно «осторожно».
Это я понял, спасибо за потдержку) Но вот почему такая разная работа, на Uno клавиатура работает нормально, а на Nano отказывается в наглую. Выход вижу пока только в том, что бы поменять местами вывод одного светодиода с пина 11 на пин 13, а на его место пин с клавиатуры, пусть мигнет при запуске светодиодом, не так страшно. Больше интересно почему она себя так ведет и почему я не могу подключить А6 и А7 на клавиатуру — в наглую отказывается.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 07:52
Зарегистрирован: 23.05.2012
вообще то цифровые пины для А0-А5 14-19
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 08:11
Зарегистрирован: 06.05.2016
vvadim пишет:
вообще то цифровые пины для А0-А5 14-19
Эм. извиняюсь, возможно я не совсем понял. Имеется ввиду что при подключении 8 контактов от клавиатуры к портам А0-А7 и исправлении кода — клавиатура вообще никак не реагирует. Вот.

- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 08:27

Зарегистрирован: 25.05.2015
Lord_elf пишет:
не могу подключить А6 и А7 на клавиатуру — в наглую отказывается.
На UNO никаких А6 и А7 нет.
На Nano они есть, но они чисто аналоговые — они не умеют быть цифровыми (не понимают pinMode, digitalRead/digitalWrite). Если Вы пытаетесь их так использовать — работать не будет. Задействуйте другие пины.
Кстати, про это на Вашей картинке написано: Analog exclusively
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 08:33
Зарегистрирован: 06.05.2016
ЕвгенийП пишет:
На UNO никаких А6 и А7 нет.
На Nano они есть, но они чисто аналоговые — они не умеют быть цифровыми (не понимают pinMode, digitalRead/digitalWrite). Если Вы пытаетесь их так использовать — работать не будет. Задействуйте другие пины.
Большое спасибо, про то что их нет на UNO я понял, просто когда я стал разбираться с Nano то был очень обрадован наличию еще двух пинов, думал подключение красивее получится. С причиной не работы пина 13 на Nano так и не разобрался. Видимо действительно придется перенести сигнализирующие диоды на 13, а освободившийся использовать как пин для клавиатуры)
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 08:35
Зарегистрирован: 10.01.2016
вообще-то покажи свой код и модель клавиатуры. что-то у меня сомнения в правильности кода.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 08:47
Зарегистрирован: 06.05.2016
vde69 пишет:
вообще-то покажи свой код и модель клавиатуры. что-то у меня сомнения в правильности кода.
Код там на несколько вкладок, видимо делалось для удобства. одним итальянским гением) Я сейчас разгребаю по немногу)
#include #include //#include #include //LiquidCrystal_I2C lcd(0x38,16,2); LiquidCrystal lcd(7, 6, 5, 4, 3, 2); const byte ROWS = 4; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = < , , , >; byte rowPins[ROWS] = < A0, A1, A2, A3>; //connect to the row pinouts of the keypad byte colPins[COLS] = < A4, A5, 13, 12>; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); char codeInput[8]; byte time[4]; boolean refresh=true;//1 refresh one time. char password[8]; int key=-1; char lastKey; char var; boolean passwordEnable=false; //Buttons for lcd shield char BT_RIGHT = '4'; char BT_UP = 'a'; char BT_DOWN = 'b'; char BT_LEFT = '6'; char BT_SEL = 'd'; // Ok key char BT_CANCEL = 'c'; char BT_DEFUSER = 'x'; // not implemented //leds const int REDLED = 11; const int GREENLED = 10; //const int BLUELED = 12; //RELAYPIN boolean relayEnable = false; const int RELAYPIN = 9; //IS VERY IMPORTANT THAT YOU TEST THIS TIME. BY DEFAULT IS IN 1 SEC. THAT IS NOT TOO MUCH. SO TEST IT! const int RELAY_TIME = 5000; boolean endGame = false; boolean sdStatus = false; boolean saStatus = false; boolean doStatus = false; boolean start = true; boolean defusing; boolean cancelando; // SOUND TONES boolean soundEnable = true; int tonepin = 8; // Pin 13 for the sound int alarmTone1 = 700; int alarmTone2 = 2600; int activeTone = 1330; int errorTone = 100; unsigned long iTime; unsigned long timeCalcVar; unsigned long redTime; unsigned long greenTime; unsigned long iZoneTime;//initial time for zone byte team=0; // 0 = neutral, 1 = green team, 2 = red team void setup()< lcd.begin(16, 2); Serial.begin(9600); lcd.setCursor(3,0); tone(tonepin,2400,30); lcd.print("ONE");// you can add your team name or someting cool lcd.setCursor(0,1); lcd.print(" AIR SYSTEM");// you can add your team name or someting cool keypad.setHoldTime(50); keypad.setDebounceTime(50); keypad.addEventListener(keypadEvent); //PinModes pinMode(GREENLED, OUTPUT); pinMode(REDLED, OUTPUT); pinMode(RELAYPIN, OUTPUT); // CONFIGURE THE BARS OF PROGRESS BAR byte bar1[8] = < B10000, B10000, B10000, B10000, B10000, B10000, B10000, B10000, >; byte bar2[8] = < B11000, B11000, B11000, B11000, B11000, B11000, B11000, B11000, >; byte bar3[8] = < B11100, B11100, B11100, B11100, B11100, B11100, B11100, B11100, >; byte bar4[8] = < B11110, B11110, B11110, B11110, B11110, B11110, B11110, B11110, >; byte bar5[8] = < B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111, >; byte up[8] = < B00000, B00100, B01110, B11111, B11111, B00000, B00000, >; byte down[8] = < B00000, B00000, B11111, B11111, B01110, B00100, B00000, >; lcd.createChar(0,bar1); lcd.createChar(1,bar2); lcd.createChar(2,bar3); lcd.createChar(3,bar4); lcd.createChar(4,bar5); lcd.createChar(5,up); lcd.createChar(6,down); > void loop() < menuPrincipal(); >void keypadEvent(KeypadEvent key) < switch (keypad.getState())< case RELEASED: switch (key)< case 'd': defusing=false; break; case 'c': cancelando=false; break; >break; case HOLD: switch (key) < case 'd': defusing= true; break; case 'c': cancelando=true; break; >break; > >
Клавиатура стандартная, мембранная 4х4

Самое что интересное что на Uno то все прекрасно работает.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 09:16

Зарегистрирован: 06.07.2014
vde69 пишет:
на сколько я помню различия у них главным образом в пределе перезаписи флеша, на UNO несколько десятков тысяч, на NANO всего несколько тысяч.
Глупость. Там стоят одинаковые микроконтроллеры, только в разных корпусах. По даташиту 10000 циклов перезаписи флеш (с гарантией сохранности информации 20 лет при температуре 85 градусов или 100 лет при 25 градусах). На практике циклов перезаписи больше.
И насколько помню, такая цифра абсолютно у всех микроконтроллеров AVR.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 09:29
Зарегистрирован: 10.01.2016
надо смотреть чего внутри keypad.getState() скорее всего дело вот в чем:
Примечание: Затруднительно использовать вывод микросхемы 13 в качестве порта ввода из-за подключенных к нему светодиода и резистора. При подключении подтягивающего к питанию резистора 20 кОм на вводе будет 1.7 В вместо 5 В, т.к. происходит падение напряжения на светодиоде и включенном последовательно резисторе. При необходимости использовать вывод микросхемы 13 как цифровой порт ввода требуется подключить между выводом и землей внешний подтягивающий резистор.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 09:41
Зарегистрирован: 06.05.2016
vde69 пишет:
надо смотреть чего внутри keypad.getState() скорее всего дело вот в чем:
Спасибо) Почитал. Теперь понятно почему не работает. однако удивляет разница тогда почему в Уно работает. может там подтяжка есть. или просто какая то конструкторская особенность.
Сейчас посидел, подумал, наверное поступлю так, перенесу индикаторные диоды (не особо важно если пару раз лишних мигнут) на пины 12 и 13, на аналоговые А0-А5 посажу дисплей, а на его место перенесу клавиатуру, так получится компактнее на плате.
Еще хотелось бы спросить немножко не по теме, так как я достаточно трудновато разбираюсь в программе (только методом научного тыка и на уровне основ) то хотелось бы узнать, дорого ли будет попросить кого то помочь мне разобрать этот код? Там много закоментено и есть лишние (видимо последствия проб и ошибок автора).
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 09:45
Зарегистрирован: 10.01.2016
вполне могут и бесплатно оптимизировать. а вообще у большенства это хобби а не заработок, профи сидят на других форумах 🙂
лично мне это будет не интересно, а финансово заинтересовать меня будет очень дорого, я человек не бедный и с высоким уровнем зп по основному месту работы.
- Войдите на сайт для отправки комментариев
Пт, 06/05/2016 — 09:50
Зарегистрирован: 06.05.2016
vde69 пишет:
вполне могут и бесплатно оптимизировать. а вообще у большенства это хобби а не заработок, профи сидят на других форумах 🙂
Просто объяснять все новичку — дело той еще нудности)
vde69 пишет:
лично мне это будет не интересно, а финансово заинтересовать меня будет очень дорого, я человек не бедный и с высоким уровнем зп по основному месту работы.
Ситуация аналогична, и специальность никак не связана с программированием. Поэтому и заинтересовался)
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 — 22:31
Pappvich07
Зарегистрирован: 24.01.2017
Приветствую, тоже собираю данный проект и никак клавиатура не хочет работать с ардуино нано, как вы вышли из положения? Уно не вариант слишком большая
И еще вопрос нано почему то переводческих перезагружается, не могу понять в чем дело, прошивали про мини такого не замечал, но клавиатура что на мини что на нано ни бум бум
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 — 22:37
Зарегистрирован: 06.05.2016
Pappvich07 пишет:
Приветствую, тоже собираю данный проект и никак клавиатура не хочет работать с ардуино нано, как вы вышли из положения? Уно не вариант слишком большая И еще вопрос нано почему то переводческих перезагружается, не могу понять в чем дело, прошивали про мини такого не замечал, но клавиатура что на мини что на нано ни бум бум
Приветствую. Хм, не наблюдал таких проблем. Я уже наладил производство таких устройств, размел плату и заказал на заводе, чтобы по максимому компактно было, бетерброд с экраном и ардуиной нано. По клавиатуре были проблемы только по моей невнимательности — перепутал порядок следования строк и строчек, поэтому она никак не хотела работать.
Про ресет — скрорее всего где то коротит, у меня нет таких проблем, запускается нормально)
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 — 23:14
Pappvich07
Зарегистрирован: 24.01.2017
Вообще не знаю что делать, я пробовал и строки с рядами менять, и подтягиваются резисторы 10ком ставить на массу или плюс, сейчас переправил код перекинул дисплейные пины на а0-а5 а клавиатуру наоборот, так дисплей вообще ничего не показывает.
Клавиатура заведомо рабочая, ардуино тоже, есть еще несколько, все одно и тоже
Еще заметил что когда прошивали нано но в настройках платы выбрал про мини после многочисленных нажатий на клавиатуре она сработывает по всем кнопкам нормально но через 15 секунд перезагрузка и опять не работает, не знаю что и делать. Буду признателен если бы вы могли скинуть скетч главный и пины как подключали, уже неделю мучаюсь
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 00:25
Pappvich07
Зарегистрирован: 24.01.2017
Pappvich07 пишет:
Вообще не знаю что делать, я пробовал и строки с рядами менять, и подтягиваются резисторы 10ком ставить на массу или плюс, сейчас переправил код перекинул дисплейные пины на а0-а5 а клавиатуру наоборот, так дисплей вообще ничего не показывает.
Клавиатура заведомо рабочая, ардуино тоже, есть еще несколько, все одно и тоже
Еще заметил что когда прошивали нано но в настройках платы выбрал про мини после многочисленных нажатий на клавиатуре она сработывает по всем кнопкам нормально но через 15 секунд перезагрузка и опять не работает, не знаю что и делать. Буду признателен если бы вы могли скинуть скетч главный и пины как подключали, уже неделю мучаюсь
Вообще получилось добиться внятного срабатывания буквенного ряда и цифр 369, но при нажатии на 258 срабатывает 147 звездочка решетка и 0 не работают, видимо с пинами напутал, а заработала клавиатура посте того как перепрошили порт 13 на 11
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 08:55
Зарегистрирован: 06.05.2016
Pappvich07 пишет:
Вообще не знаю что делать, я пробовал и строки с рядами менять, и подтягиваются резисторы 10ком ставить на массу или плюс, сейчас переправил код перекинул дисплейные пины на а0-а5 а клавиатуру наоборот, так дисплей вообще ничего не показывает.
Никаких резисторов не надо, все и так заработает) У меня дисплей какраз на а0-а5 живет, клавиатура на цифровых 3-10 вроде, точно не вспомню. Вечером могу посмотреть.
Pappvich07 пишет:
Вообще получилось добиться внятного срабатывания буквенного ряда и цифр 369, но при нажатии на 258 срабатывает 147 звездочка решетка и 0 не работают, видимо с пинами напутал, а заработала клавиатура посте того как перепрошили порт 13 на 11
На 13 порт нельзя вешать клавиатуру в нано, сам на это напоролся, хотя на Уно работала. При вашей ошибке какраз перепутаны строки, это все можно поправить в коде.
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 09:29
Pappvich07
Зарегистрирован: 24.01.2017
Кстати когда в коде перекидывать пины дисплея на а0-а5 дисплей просто квадраты показывал поэтому вернул все обратно а 13 пин на 11 перевел.
Сегодня вечером еще раз попробую строки и столбцы попеременять,
Посмотрите у себя пожалуйста.
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 10:06
Зарегистрирован: 06.05.2016
Подключение дисплея у меня идет так:
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); //подключение дисплея на пины
По клавиатуре я ошибся, подключается на пигы 5-12. Подключение клавиатуры:
const byte ROWS = 4; //количество строк const byte COLS = 4; //количество столбцов char keys[ROWS][COLS] = < , , , >; byte rowPins[ROWS] = ; //подключение строк на клавиатуре byte colPins[COLS] = ; //подключение столбцов на клавиатуре Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
При такой расположении шлейф от клавиатуры можно воткнуть сразу в разьем на ардуино в пины 5-12, если не заработает — переверните шлейф на 180 градусов)
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 10:09
Зарегистрирован: 06.05.2016
На 13 порт можете повесить светодиод, он там спокойно приживется) Клавиатуру и экран на него нежелательно. Так же как и реле)
- Войдите на сайт для отправки комментариев
Ср, 25/01/2017 — 11:00
Pappvich07
Зарегистрирован: 24.01.2017
Спасибо большое за информацию, сегодня вечером после работы попробую
- Войдите на сайт для отправки комментариев
Чт, 26/01/2017 — 00:26
Pappvich07
Зарегистрирован: 24.01.2017
Ничего не понимаю, фигня какая то, переназначить как у вас все пины, зуммер на d2 поставил, реле на 3 , светодиоды на 4 и 13
Дисплей заработал, на а0-а5 , а вот клавиатура вообще признаков жизни не подает, переворачивать не переворачивается, пофиг, что делать.
И контроллер снова начинает переодчески перезагружатся, есть подозрение что то в коде связано с изначально заданными контактами, но что не могу разобраться, попробую другой контроллер еще подкинуть
Походу у меня сдох микроконтроллер нано который, 100500 раз все перепаивал, вообще у меня посетила мысль, а почему бы не отрезать дорожку идущую к светодиоды на плате 13 Пина? Мы получим правильное значение напряжения на 13 пинетки, значит все должно будет заработать со стандартным кодом!?
Завтра попробую реализовать
- Войдите на сайт для отправки комментариев
Чт, 26/01/2017 — 07:47
Зарегистрирован: 06.05.2016
Pappvich07 пишет:
Ничего не понимаю, фигня какая то, переназначить как у вас все пины, зуммер на d2 поставил, реле на 3 , светодиоды на 4 и 13 Дисплей заработал, на а0-а5 , а вот клавиатура вообще признаков жизни не подает, переворачивать не переворачивается, пофиг, что делать.
Попробуйте загрузить библиотеку клавиатуры другую, хотя странно. у меня никаких проблем с клавиатурой не было, возможно в коде вы на пины клавиатуры что то еще посадили — отсюда и глюки)
Pappvich07 пишет:
И контроллер снова начинает переодчески перезагружатся, есть подозрение что то в коде связано с изначально заданными контактами, но что не могу разобраться, попробую другой контроллер еще подкинуть
Отключите зуммер и светодиоды и попробуйте запустить без них, возможно гдето коротить, проверьте пайку около пина ресет. Часто из-за бракованного зуммера может коротить)
Pappvich07 пишет:
Походу у меня сдох микроконтроллер нано который, 100500 раз все перепаивал, вообще у меня посетила мысль, а почему бы не отрезать дорожку идущую к светодиоды на плате 13 Пина? Мы получим правильное значение напряжения на 13 пинетки, значит все должно будет заработать со стандартным кодом!?
Тоже так думал, но не стал заморачиваться. На Уно работает с таким расположением пинов?
- Войдите на сайт для отправки комментариев
Чт, 26/01/2017 — 09:45
Pappvich07
Зарегистрирован: 24.01.2017
Библиотеки уже пробовал менять, не помогает, клавиатуры две и точно работают обе так как залил скетч с вводом таймера с клавиатуры 4х3 т все работает а в этом проекте какая то фигня.
На пины для клавиатуры точно ничего не вешал все вкладки в коде проверял, да и задаются пины там на главной вкладке .
Уно у меня нету, я всегда все поделки собирал либо на нано, либо на микро про, до сих пор проблем не было. А тут треш,сегодня вечером возьму новый контроллер, отрежут диод от 13 Пина и попробую
- Войдите на сайт для отправки комментариев
Чт, 26/01/2017 — 16:07
Зарегистрирован: 06.05.2016
Покажите вашу первую страницу. Может и угляжу что то) С 13 пина точно убирайте, хоть отрезай хоть нет. Повесьте на него светодиод. Надежнее будет в любом случае.
- Войдите на сайт для отправки комментариев
Чт, 26/01/2017 — 19:55
Pappvich07
Зарегистрирован: 24.01.2017
#include
#include
//#include
#include
/*
Arduino Bomb Pro
The circuit:
* More info at : http://yin.mainstreamds.com/
If you need some help mail me to [email protected]
created 4,Sep, 2010
Modified 24 May 2014
by Ignacio Lillo
//LiquidCrystal_I2C lcd(0x38,16,2);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = ‘1’,’2′,’3′,’a’ >
,
‘4’,’5′,’6′,’b’ >
,
‘7’,’8′,’9′,’c’ >
,
‘*’,’0′,’#’,’d’ >
>;
byte rowPins[ROWS] = A4, A5, 13, 12>; //connect to the row pinouts of the keypad
byte colPins[COLS] = A0, A1, A2, A3
>; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
char enteredText[8];
byte time[4];
byte refresh=0;//1 if is refreshed once time.
char password[8];
int key=-1;
char lastKey;
char var;
boolean passwordEnable=false;
//Buttons for lcd shield
char BT_RIGHT = ‘4’;
char BT_UP = ‘a’;
char BT_DOWN = ‘b’;
char BT_LEFT = ‘6’;
char BT_SEL = ‘d’; // Ok key
char BT_CANCEL = ‘c’;
char BT_DEFUSER = ‘x’; // not implemented
const int REDLED = 11;
const int GREENLED = 10;
//const int BLUELED = 12;
//mosfet
boolean mosfetEnable = false;
const int mosfet = 9;
//IS VERY IMPORTANT THAT YOU TEST THIS TIME. BY DEFAULT IS IN 1 SEC. THAT IS NOT TOO MUCH. SO TEST IT!
const int MOSFET_TIME = 5000;
//TIME INTS
int GAMEHOURS = 0;
int GAMEMINUTES = 45;
int BOMBMINUTES = 4;
int ACTIVATESECONDS = 5;
boolean endGame = false;
boolean sdStatus = false; //search and destroy game enable used in config
boolean saStatus = false; //same but SAbotaghe
boolean doStatus = false; //for DEmolition
boolean start = true;
boolean defuseando;
boolean cancelando;
// SOUND TONES
boolean soundEnable = true;
int tonepin = 8; // Pin 13 for the sound
int tonoPitido = 3000;
int tonoAlarma1 = 700;
int tonoAlarma2 = 2600;
int tonoActivada = 1330;
int errorTone = 100;
unsigned long iTime;
unsigned long timeCalcVar;
unsigned long redTime;
unsigned long greenTime;
unsigned long iZoneTime;//initial time for zone
byte team=0; // 0 = neutral, 1 = green team, 2 = red team
void setup() lcd.begin(16, 2);
Serial.begin(9600);
// lcd.init(); // initialize the lcd
// lcd.backlight();
lcd.setCursor(3,0);
tone(tonepin,2400,30);
lcd.print(«IGNIS ONE»);// you can add your team name or someting cool
lcd.setCursor(0,1);
lcd.print(» AIRSOFT SYSTEM»);// you can add your team name or someting cool
keypad.setHoldTime(50);
keypad.setDebounceTime(50);
keypad.addEventListener(keypadEvent);
delay(2000);
pinMode(GREENLED, OUTPUT);
// pinMode(8, OUTPUT);
// digitalWrite(8,HIGH);
pinMode(REDLED, OUTPUT);
pinMode(mosfet, OUTPUT);
// CONFIGURE THE BARS OF PROGRESS BAR
byte bar1[8] = B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
>;
byte bar2[8] = B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
>;
byte bar3[8] = B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
>;
byte bar4[8] = B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
>;
byte bar5[8] = B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
>;
byte up[8] = B00000,
B00100,
B01110,
B11111,
B11111,
B00000,
B00000,
>;
byte down[8] = B00000,
B00000,
B11111,
B11111,
B01110,
B00100,
B00000,
>;
lcd.createChar(0,bar1);
lcd.createChar(1,bar2);
lcd.createChar(2,bar3);
lcd.createChar(3,bar4);
lcd.createChar(4,bar5);
lcd.createChar(5,up);
lcd.createChar(6,down);
>
void loop() menuPrincipal();
>
void keypadEvent(KeypadEvent key) switch (keypad.getState()) case PRESSED:
switch (key)
>
break;
case RELEASED:
switch (key) case ‘d’: defuseando= false;
//Serial.println(«d Releases»);
break;
case ‘c’: cancelando=false;
//Serial.println(«c Releases»);
break;
>
break;
case HOLD:
switch (key) case ‘d’: defuseando= true;
//Serial.println(«d hold»);
break;
case ‘c’: cancelando=true;
//Serial.println(«c hold»);
break;
>
break;
>
>
void disarmedSplash() endGame = false;
digitalWrite(REDLED, LOW);
digitalWrite(GREENLED, LOW);
if(sdStatus || saStatus) lcd.clear();
lcd.setCursor(2,0);
lcd.print(«BOMB DISARMED»);
lcd.setCursor(3,1);
lcd.print(«GOODS WIN»);
digitalWrite(GREENLED, HIGH);
delay(5000);
digitalWrite(GREENLED, LOW);
>
//end code
lcd.clear();
lcd.print(«Play Again?»);
lcd.setCursor(0,1);
lcd.print(«A : Yes B : No»);
digitalWrite(REDLED, LOW);
digitalWrite(GREENLED, LOW);
while(1)
var = keypad.waitForKey();
if(var == ‘a’ ) tone(tonepin,2400,30);
//We have two options, search & destroy and sabotaje play again options so!
if(sdStatus) startGameCount();
search();
>
if(saStatus) saStatus=true;
startGameCount();
start=true; //to set iTime to actual millis() 😀
sabotage();
>
>
if(var == ‘b’ ) tone(tonepin,2400,30);
menuPrincipal();
break;
>
>
>
void explodeSplash() digitalWrite(REDLED, LOW);
digitalWrite(GREENLED, LOW);
cls();
delay(100);
endGame = false;
lcd.setCursor(1,0);
lcd.print(«TERRORISTS WIN»);
lcd.setCursor(4,1);
lcd.print(«GAME OVER»);
for(int i = 200; i>0; i—)// this is the ultra hi definition explosion sound xD
tone(tonepin,i);
delay(20);
>
noTone(tonepin);
if(mosfetEnable) activateMosfet();
>
delay(5000);
cls();
//end code
lcd.print(«Play Again?»);
lcd.setCursor(0,1);
lcd.print(«A : Yes B : No»);
while(1)
var = keypad.waitForKey();
if(var == ‘a’ ) tone(tonepin,2400,30);
//We have two options, search & destroy and sabotaje play again options so!
if(sdStatus) startGameCount();
search();
>
if(saStatus) saStatus=true;
startGameCount();
start=true; //to set iTime to actual millis() 😀
sabotage();
>
>
if(var == ‘b’ ) tone(tonepin,2400,30);
menuPrincipal();
- Войдите на сайт для отправки комментариев
Arduino Nano или Arduino Uno? Что лучше для новичка?
для новичка лучше, то что дешевле. Так как взяв сразу дорогой модуль, рискуешь напрасно вложить деньги — его можно спалить, или переключится на другие дела а он останется не использован. В обоих версиях применена ATMEGA328, по функциям и количеству портов они равноценны. однако Нано стоит в три раза дешевле — на Алиэксперссе продавец «Wawgat» продаёт их за 110 рублёв (без USB уменьшенную версию «мини») и за 130 обычную «нано». УNO уже стоит под 250 рублёв минимум и плюс принудительно 50 рублей за доставку.
Есть версии послабее мозгами, на АТMEAG168 — меньше памяти, но стоит ещё дешевле. Можно меньше 90 рублей «мини» найти
Если деньги жмут карман, тогда лучше взять UNO, так как она крупнее и поэтому с ней удобнее эксперименты делать.
Вопщем, выбор за тобой
AlexSПрофи (612) 5 лет назад
такой вопрос
микрокотроллер и прогамматор это разные вещи правильно?
к примеру
микрокотроллер=Atmega8
прогамматор=USP ASP
Lord Iron aka CyberDemon Мыслитель (6435) ..»такой вопрос». смотря с какой стороны посмотреть, вобщем то это функционально разные вещи разные вещи, не не мешает одному быть в качестве другого. Тот же программатор USP ASP построен на микроконтроллере ATMEGA8. И ардуина может работать в качестве программатора и шить другие микроконтроллеры поверь, для тебя это не шибко важно. Ардуины имеют в своём составе переходинк USB — COM, поэтому для программирования Ардуины программатор не нужен (кроме «мини» версии). Достаточно кабель USB воткнуть в арудину, и можно прошивать. Но USP ASP вещь в хозяйстве необходимая, особенно если имеешь дело c програмированием микроконтроллеров AVR/
AlexSПрофи (612) 4 года назад
для начинающего какой набор для ардуинщика купить
этот
ru.aliexpress.com/item/Free-shipping-Microcontroller-learning-kit-starter-and-proficient-24-interactive-lessons-for-arduino/2044891395.html
или этот
https://ru.aliexpress.com/item/Elego-UNO-Project-The-Most-Complete-Starter-Kit-for-Arduino-Mega2560-UNO-Nano-with-Tutorial-Power/32638892215.html
Lord Iron aka CyberDemon Мыслитель (6435) разницы никакой. Оба набора содержат почти одинаковый набор запчастей, и одна и та же мозга Uno R3. У черно-жёлтого набора, просто немного больше шилдов. Я не стал бы покупать ни один — за их цену можно набрать 20 ардуин «нано», или 30 «мини» ))). Можно покупать и подключать именно те шилды, которые нужны, которые опять же — можно спаять самостоятельно. Если с электроникой туго, но многа денех, бери чёрно-жёлтый
Остальные ответы
Да без разницы, язык один, только железяки чуть отличаются количеством портов и таймеров
AlexSПрофи (612) 5 лет назад
такой вопрос
микрокотроллер и прогамматор это разные вещи правильно?
к примеру
микрокотроллер=Atmega8
прогамматор=USP ASP
Alex Мыслитель (6599) Конечно разные. Программатор дает инструкции контроллер исполняет. Это по примитивному)
AlexSПрофи (612) 4 года назад
для начинающего какой набор для ардуинщика купить
этот
ru.aliexpress.com/item/Free-shipping-Microcontroller-learning-kit-starter-and-proficient-24-interactive-lessons-for-arduino/2044891395.html
или этот
https://ru.aliexpress.com/item/Elego-UNO-Project-The-Most-Complete-Starter-Kit-for-Arduino-Mega2560-UNO-Nano-with-Tutorial-Power/32638892215.html
Alex Мыслитель (6599) Я бы посоветовал не начинать с ардуино, скетчи и библиотеки это хорошо, но когда нужно что то серьезное, первое с чем сталкивается ардуино — это тупо нехватка ОЗУ. Поробуй изучить ATMEGA 8 если получиться, то ардуино осилишь за минуты.
Бери Arduino UNO R3 она отличается тем, что в ней микросхема стоит в панельке.
А это значит, что ты сможешь делать свои гениальные конструкции, записывать в свою микросхему, а Arduino использовать для дальнейших разработок.
AlexSПрофи (612) 4 года назад
для начинающего какой набор для ардуинщика купить
этот
ru.aliexpress.com/item/Free-shipping-Microcontroller-learning-kit-starter-and-proficient-24-interactive-lessons-for-arduino/2044891395.html
или этот
https://ru.aliexpress.com/item/Elego-UNO-Project-The-Most-Complete-Starter-Kit-for-Arduino-Mega2560-UNO-Nano-with-Tutorial-Power/32638892215.html
Нано и шилд под неё.
Получается что-то похожее на уно, с дешёвой ардуиной, которую не так накладно сжечь.
Когда разобрался — можно докупить нано и делать на их основе домашнюю автоматизацию и т. д., куда уно ни к чему.
UNO. Она позволяет без шилдов собирать на столе различные проекты. Много примеров а Интернете как раз на ней строятся. А так платы по характеристикам одинаковые, разница лишь форм-фактор.
Arduino Uno, Nano и простой Arduino, в чем отличия?
1) Детали универсальные? Или для каждой ардуины нужны свои?
2) На какие мощности они рассчитаны?
3) Что может 1 модель ардуино, то чего не может другой?
- Вопрос задан более трёх лет назад
- 26934 просмотра
Комментировать
Решения вопроса 3

Что жи никто не дал ссылку на офсайт? Разве может кто-то рассказать лучше разработчиков?
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

быдлокодер со стажем
вообще самое большое отличие это разводка платы.
нано еще маленькая к тому же (логично)
а вот вопрос «простой ардуины» более обширен) сюда входят все возможные модификации и клоны.
вообще отличий почти нет (если это ардуино, а не плата формфактора ардуино с каким нить arm cortex на борту. да такие тож бывают). отличия могут быть лишь в модели avr контроллера впаяного. а значит в доступной памяти. частота у них у всех 16 мегагерц (бывают 8).
детали (шилды) универсальные. настолько универсальные что подходят к платам, которые всего лишь копируют распиновку ардуины (такие как на arm)
и вот еще. у нано нет стабилизатора питания, так что она питаецо только готовым 5 вольтами, либо из усб. а вот платки побольше, могут брать в себя и 9 вольт из адаптера какого нить или батарейки.
ну и да. нано не совместим с шилдами ибо предназначен быть втыкаемым в макетную плату (он туда идеально входит и выходит)
Ответ написан более трёх лет назад
Нравится 2 5 комментариев