Ви не увійшли.
Проверили.
Правда не совсем точно...
Скважность, конечно не ровно 2, но близко к тому. Читать надо.
Как это "не ровно"?
Если время пустого цикла loop() порядка ~0.5мкс. то при delay( 1 ) скважность будет 1 + 1.0005 - это и есть "не ровно 2"?
Olej пише:многим радиолюбителям-самоделкиным, даже подрабатывающим коммерчески на этом поприще - прийдёт край
C какого перепугу?
Когда приходит Форд со своим конвейерным производством, а за ним другие автомобильные бренды - автомобилистам-романтикам типа Козлевича с его "Антилопа Гну" остаётся только переквалифицироваться в управдомы.
Да, я просто новичек в этом, сам пока еще не разобрался.
Да какая ж вам ещё помощь нужна?
switch( state ) { // здесь вам 16 вариантов развития событий
case 0 :
// здесь вписываете то, что происходит при срабатывании A3, A2, A1, A0 (4 шт.)
break;
case 1 :
// здесь вписываете то, что происходит при срабатывании A3, A2, A1 (3 шт.)
break;
case 2 :
// здесь вписываете то, что происходит при срабатывании A3, A2, A0 (3 шт.)
break;
case 3 :
// здесь вписываете то, что происходит при срабатывании A3, A2 (2 шт.)
break;
case 4 :
// здесь вписываете то, что происходит при срабатывании A3, A1, A0 (3 шт.)
break;
case 5 :
// здесь вписываете то, что происходит при срабатывании A3, A1 (2 шт.)
// ...
// ну и так далее - до 14
case 14 :
// здесь вписываете то, что происходит при срабатывании только A0 (1 шт.)
break;
default : // а это для state == 15
// сюда вы попадёте если ничто не сработало!
}
Вы о двоичном представлении чисел знаете? имеете представление?
Вот возьмите, на листочке в клеточку, выпишете двоичные представления всех чисел от 0 до 15, и всё вам станет наглядно и понятно.
Вот так:
A3 A2 A1 A0
0 => 0 0 0 0
1 => 0 0 0 1
2 => 0 0 1 0
...
13 => 1 1 0 1
14 => 1 1 1 0
15 => 1 1 1 1
Там где стоит 0 - это ваш сработавший датчик.
сами http://www.linuxfoundation.org/ обратились за помошью ?
А это вы к чему написали? Да ещё с URL ... как большой знаток в этом деле.
NoName пише:по непоянтным мне причинам на форум аодуинщилков приперся )
Я в другой совсем теме здесь рядом написал по какой причине - Доброго дня допоможіть скнопкою:
Меня лично Arduino интересует только как инструмент быстрого и простого в использовании интерфейса стандартного компьютера под управлением Linux к внешнему миру (это одно из удачных применений, которые я называл выше).
И вот ещё что: GPIO в Linux.
Я ещё когда отвечал вам не формулировал себе отчётливо, но ... "нюх - не пропьёшь!" : уже после написания сообщений в тему ко мне обратились из очень серьёзной конторы на тему "поговорить"
о их проблемах и задачах в очень пересекающейся области.
Это сильно любопытно и ... показательно - Linux: кнопки, светодиоды и GPIO:
Начиная с версии 2.6.26 (кажется) у Linux появляется стандартный интерфейс для работы с GPIO через sysfs. В оригинале прочитать об этом можно в [LGPIO00]. Я попытаюсь пересказать своими словами содержимое этого документа.
И далее в заметке достаточно подробно описывается использование GPIO в Linux:
Главной точкой работы с GPIO является директория /sys/class/gpio. Если вы загляните в нее, то увидите два файла: export и unexport. Сразу после загрузки системы, все линии GPIO принадлежат ядру и использовать их в своих программах просто так не получится. Для этого, линию GPIO нужно экспортировать, записав её номер в файл export.
...
Почему и зачем я написал это сообщение и почему это "любопытно"?
1. Потому что это мир достаточно серьёзных технических проектов (а проекты Linux - это очень серьёзно ) заимствует идеологию Arduino и включает её (как вариант) в арсенал своих возможностей;
2. Теперь все и любые Arduino-решения можно переносить в среду Linux, для выполнения на стандартном компьютере (с аппаратным GPIO расширение, естественно) и на всех одноплатных мини- и микро- Rasbery Pi и еже с ними;
3. Некоторые из известных мировых брендов в области производства компьютерных (системных) плат уже начали производить модели для embedded (встроенных) систем, имеющие изначально на борту GPIO расширения и наборы пинов, конструктив,но совместимые с Arduino - см. по этому поводу тему Старшие модели
И, как всегда, конечно, в этой бочке мёда есть ложка дёгтя, и состоит она в том, что:
4. В технологию/идеологию/архитектуру Arduino начинают/начнут приходить профессионалы разработчики ... и многим радиолюбителям-самоделкиным, даже подрабатывающим коммерчески на этом поприще - прийдёт край .. той части этого сообщества, которые больше из самоучек, не имеющих более-менее сносного образования в требуемых технических дисциплинах.
В общем, - интересные дела начинаются!
Ищи официальное представительство в своем регионе.
Официальное "представительство в регионе" Samsung - разогнали по причине их криворукости (в Харькове, в частности).
А если вы имеете в виду представительство торговцев и менЬЕТжеров - так они вряд ли поймут формулировки технической проблемы и со страху попрячутся под лавки.
Olej пише:В-третьих, мне не хочется возиться с осциллографом.
Ну, как писал Высоцкий: "Стукнул раз - специалист - видно по нему!
Я не понимаю что вас так развеселило? Я написал же как и почему способ аппаратного определения, с помощью осциллографа, тоже порочный логически: он будет давать заниженные значения частоты, или затянутый период одного цикла loop().
Хотя сама цифра длины периода и не так важна (разве любопытства ради). Если она мала (800нс или 300нс - не важно) то:
- рассыпается миф, пересказываемый во многих обсуждениях об Arduino, что цикли с 2-мя delay( 1 ) (и любыми другими delay()) будет иметь скважность не 2 ... т.е. что loop() ещё что-то куда-то добавляет;
- можно спокойно не учитывать какие бы ни было задержки, вносимые частями исполняющей системой, прикомпилируемой IDE;
- хотя можно, понятности и точности ради, вообще исключить из исполнимого скетча функции setup() и loop(), прописав туда собственную функцию main():
int main() {
Serial.begin( 9600 );
Serial.println( "++" );
}
- IDE замечательно, без ругани компилирует такой код (загружает и выполняет) ... хотя какие-то операции инициализации в библиотеках при этом выпадают из выполнения, есть некоторые отличия в поведении.
подарите проект Aleksandr15, работы там - всего ничего ) , он не справится, не его это разработка, а "девайсина" наверное очень нужна )
Я уже показал, дальше сам справится.
А вот ещё такая штучка UDOO X86
И я именно такую штучку показал не просто чтоб куда пальцем ткнуть ... одно из крупных украинских предприятий серийно производящих средства автоматики взял совсем недавно именно такую для своих embeded изделий (я специально не стану называть фирму, но только сегодня имел с ними обстоятельное обсуждение предмета).
Processor:
CPU Intel® Pentium N3710 up to 2.56 Ghz (ULTRA version)
GPU:
Intel® HD Graphics 405 up to 700 MHz 16 execution units (ULTRA version)
RAM:
8 GB DDR3L Dual Channel (ULTRA version)
...
Но заинтересовало как-раз то, что это изделие из области универсальных компьютеров промышленного уровня попутно объединил туда технологии Arduino:
Arduino™ 101-Compatible through the standard Arduino™ Pins layout and compatible with Arduino™ shields.
UDOO X86 features a total of 36 GPIOs available on the external Pinout connectors.
16 GPIOs are available in the external Pinout columns manageable from the main Intel® Braswell processor of the UDOO X86. These Pins are 1.8V only compliant.
20 GPIOs are available in the internal Arduino Pinout columns manageable from the Intel® Curie™ processor of the Arduino 101 embedded. These Pins are 3.3V compliant and 5V tollerant.
по непоянтным мне причинам на форум аодуинщилков приперся )
Я в другой совсем теме здесь рядом написал по какой причине - Доброго дня допоможіть скнопкою:
Меня лично Arduino интересует только как инструмент быстрого и простого в использовании интерфейса стандартного компьютера под управлением Linux к внешнему миру (это одно из удачных применений, которые я называл выше).
Подсказали в другом месте, может кому пригодится:
sprintf искаропки не поддерживает форматный вывод с плавающей точкой. Используй dtostrf() или dtostre().
sprintf искаропки, как мне кажется после некоторых экспериментов с кодом, не поддерживает и формат %llu или %lld для uint64_t ... да и вообще компилятор странно себя ведёт с int64_t - но это нужно отдельно проверять.
Если честно то нет, выдает ошибку. Когда новый скетч создаешь то в "case" ошибку выдает
...switch( state ) { // здесь вам 16 вариантов развития событий case 0 IR1=0 && IR2=0 && IR3=0 && IR4=0: break; case 1 IR1=1 && IR2=0 && IR3=0 && IR4=0: break;
Я вам принцип нарисовал, который проще не бывает ... а не код, который тупо нужно вставить в свой.
Что это у вас в case за ужас?
IR1=1 && IR2=0 && IR3=0 && IR4=0:
Я вам написал это комментарием, ещё и выделил синтаксически ограничителями комментария, чтобы показать, что значение 1 в case соответствует сочетанию ваших условий: IR1=1 && IR2=0 && IR3=0 && IR4=0.
А оставить вам нужно только:
switch( state ) { // здесь вам 16 вариантов развития событий
case 0
// здесь пишете то что нужно делать при IR1=0 && IR2=0 && IR3=0 && IR4=0:
// ...
break;
...
Olej пише:Так что стоило повозиться с тестированием,
Достаточно было почитать тему по той ссылке, что я давал. Там есть этот пример с осциллограммой.
Во-первых, я всё сразу читал. Во-вторых, там пример с осциллографом - тоже с логическим дефектом. В-третьих, мне не хочется возиться с осциллографом.
Неидентичны у них бутлоадеры и информация об этом в IDE.
В IDE для UNO используется оптибут. Длиной 512байт По этому IDE вычитает из размера флеш 32768 длину бутлоадера 512 и говорит что вам для скетча доступно 32256 (32768-512).
В NANO оставлен "исторический" бутлоадер (не оптибут) длиной 2к (2048) - вот IDE вам и вычитает 32768 -2048 = 30720.
Причины различий понятны и видны по IDE.
Но в исходной заводской поставке они отличаются ... всегда ли? от всех производителей-поставщиков-продавцов?
Перешейте в NANO нормальный загрузчик (optiboot), откорректируйте в IDE файлик boards.txt и будет у вас все "идентично".
С этим то как-раз всё понятно...
Интернет завален видео, как NANO сделать идентичной UNO, даже не исправляя ничего в IDE..
Если так сильно завален, то покажите конкретную ссылку (потому что когда "завалено" по какому-то вопросу, то не все экземпляры равнозначные, адекватные и вменяемые).
Если и там и там atmega328p - то они программно и функционально идентичны
2 устройства (UNO+NANO) подключены одновременно:
[olej@dell Tools_Linux]$ lsusb -d 1a86:
Bus 002 Device 069: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 074: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
[olej@dell Tools_Linux]$ ls -l /dev/ttyU*
crw-rw---- 1 root dialout 188, 0 мар 25 14:21 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 мар 26 11:37 /dev/ttyUSB1
Компилируется один и тот же скетч (это sysinfo), изменив только тип платы в Arduino IDE:
- это UNO:
Скетч использует 7334 байт (22%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 770 байт (37%) динамической памяти, оставляя 1278 байт для локальных переменных.
Максимум: 2048 байт.
- это NANO:
Скетч использует 7334 байт (23%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 770 байт (37%) динамической памяти, оставляя 1278 байт для локальных переменных.
Максимум: 2048 байт.
Всё очень похоже, но об "идентичности" говорить как-то ... не совсем точно.
Не читайте безумные таблички, такие же форумы.
Всё, что касается Arduino - оно всё такое же "безумное".
Читайте единственный документ - Datasheet на то, на чем любая из этих плат собрана.
Datasheet - это на процессор, а меня интересует готовое собранное изделие на этом процессоре + в каком-то конкретном исполнении (китайском).
Кроме конструктива - ничем.
Сравнение плат Arduino (таблица)
SRAM -> 2/1
EEPROM -> 1/0.51
А все платы без скетча?
Все платы (которые я смотрю, не в обзоре выше) как-раз со скетчами, но одними и теми же, типа sysinfo, но без внешних элементов, без нагрузки.
И картинка:
Только не верится...
Потому что это элементарно противоречит тому, что я чувствую пальцами : большая (из соображений теплообмена) плата UNO греется ощутимо заметно, тогда как маленькая (гораздо хуже теплообмен) плата NANO, в абсолютно тех же условиях, не греется совершенно.
P.S. И то и другое - с CH340.
Почему при питании по USB, от компьютера по стандартному кабелю, UNO достаточно заметно греется:
А NANO, при питании от того же USB по подобному кабелю, будучи подключенным сутками - абсолютно холодный.
Почему так?
Касательно самого теста – измерялась сила тока (mA) в разрыве цепи до основной платы в двух вариациях: при питании через xUSB порт стабилизированными 5v (эмуляция lipo аккумулятора и платы boost конвертера напряжения 3,7v->5v) и при питании от 9v (эмуляция 6 пальчиковых батареек по 1,5v).
Потребление тока:
Плата 5v 9v (3,7v для LilyPad)
Raspberry pi B+ 80..150 mA –
MEGA 2560 (16u2) 66 mA 90 mA
UNO R3 (16u2) 43 mA 48 mA
UNO R3 (CH340) 18 mA 19 mA
NANO 3.0 (FTDI) 62 mA 57 mA
NANO 3.0 (CH340) 20 mA 24 mA
LilyPad USB 15 mA 9 mA
Pro Mini 5v 17 mA 18 mA
Beetle leonardo 21 mA –
В сыром виде таблица потребления тока мало о чем говорит – разные напряжения, поэтому привожу таблицу расчета мощности (сила тока умноженная на напряжение) – так мы подведем все платы под общий знаменатель, и можем сравнить показатели энергопотребления.
Плата 5v 9v (3,7v для LilyPad)
Raspberry pi B+ 0,750 W –
MEGA 2560 (16u2) 0,330 W 0,810 W
UNO R3 (16u2) 0,215 W 0,432 W
UNO R3 (CH340) 0,090 W 0,171 W
NANO 3.0 (FTDI) 0,310 W 0,513 W
NANO 3.0 (CH340) 0,100 W 0,216 W
LilyPad USB 0,075 W 0,033 W
Pro Mini 5v 0,085 W 0,162 W
Beetle leonardo 0,105 W –
Форматировать таблички не буду, в облом ... кому надо и так почитает
И картинка:
Почему так?
Что удивляет? ... на этом форуме, но и не только на этом по Arduino ...
Когда обсуждаются какие-то радиолюбительского уровня простейшие свистелки с перделками, типа "как включать 12-вольтовое реле" - то знатоков, подсказок и мнений - вагон.
Когда выше названо несколько вопросов, которые всем могут пригодиться, и на которые по Интернет ответ не так просто найти - то полный молчок.
И немного фоточек по приводу.
И это, по твоему, фоточки?
В чём вообще отличия (кроме конструктивов) UNO vs NANO?
Почему при питании по USB, от компьютера по стандартному кабелю, UNO достаточно заметно греется:
SysInfo for Arduino version 1.07
F_CPU = 16000000
Frequency = 16 MHzCPU_IDE = ATmega328P
Flash Memory = 32767 bytes
Free RAM memory = 1091 bytesSignature = 1E 95 0F
Fuses (Low/High/Ext/Lock) = FF DE FD CF
Processor = ATmega328P
Flash memory size = 32 kBVCC = 5209 mV
Internal Temperature = 44.0 C
Test of short circuit on GND or VCC:
Pin: 0 Low: Fail High: Ok Pull Up: Ok
Pin: 1 Low: Ok High: Fail Pull Up: Fail
Pin: 2 Low: Ok High: Ok Pull Up: Ok
Pin: 3 Low: Ok High: Ok Pull Up: Ok
Pin: 4 Low: Ok High: Ok Pull Up: Ok
Pin: 5 Low: Ok High: Ok Pull Up: Ok
Pin: 6 Low: Ok High: Ok Pull Up: Ok
Pin: 7 Low: Ok High: Ok Pull Up: Ok
Pin: 8 Low: Ok High: Ok Pull Up: Ok
Pin: 9 Low: Ok High: Ok Pull Up: Ok
Pin: 10 Low: Ok High: Ok Pull Up: Ok
Pin: 11 Low: Ok High: Ok Pull Up: Ok
Pin: 12 Low: Ok High: Ok Pull Up: Ok
Pin: 13 Low: Ok High: Ok Pull Up: Ok
Pin: 14 Low: Ok High: Ok Pull Up: Ok
Pin: 15 Low: Ok High: Ok Pull Up: Ok
Pin: 16 Low: Ok High: Ok Pull Up: Ok
Pin: 17 Low: Ok High: Ok Pull Up: Ok
Pin: 18 Low: Ok High: Ok Pull Up: Ok
Pin: 19 Low: Ok High: Ok Pull Up: Ok
(это вывод скетча sysinfo - там есть температура)
И даже на ощупь сама плата изрядно нагретая...
А NANO, при питании от того же USB по подобному кабелю, будучи подключенным сутками - абсолютно холодный.
Почему так?
На плате видно 2 кварца: 16Mhz & 12Mhz.
Arduino Nano 3.0 (ATmega328):
Здесь кварц, могу предположить, только один - тот что по диагонали, под 45°, рядом с чипом ATMEL.
Что там написано прочитать не представляется возможным, но, наверное 16Mhz.
А где 12Mhz?
В чём вообще отличия (кроме конструктивов) UNO vs NANO?