Официальный сайт компании Arduino по адресу arduino.cc
Странности в коде.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 10/05/2018 - 00:34
есть вот такой участок кода
//Serial.println(millis()); PORTD = 0b00010000; delay(300); PORTD = 0b00000000; delay(300);
если все оставить так, то диод загарается совсем на мгновение, вне зависимости от установленного времени delay
а если раскомментировать строчку, то все загарается как надо, как думаете, в чем быть модет проблема?
А весь код запостить не судьба?
И куда диод подключен - к общему или к + ?
диод подключен просто к пину. Проблема вроде как решилась. Во время выполенния кода отключил прерывания. По каким-то причинам оно срабатывало, хотя не должно было
В "Нарочно не придумаешь" ?
диод подключен просто к пину.
Так работать не будет.
Есть, минимум, три варианта подключения:
- к пину и к земле,
- к пину и к питанию,
- к двум пинам.
Во всех случаях последовательно со светодиодом нужен токоограничительный резистор.
оу...видимо мым тут друг друга не допоняли. Само собой диод подключен к пину и земле
оу...видимо мым тут друг друга не допоняли. Само собой диод подключен к пину и земле
1. Говорим за себя. Ответ "просто к пину" был дан на вопрос "к земле или +". Если можете истолковать иначе чем "не подключен ни к тому, ни к другому" - просветите, как.
2. Само собой - это к пину и +, а к пину и земле - далеко не само собой.
ну не знаю, мне кажется есть стандартное подключение (как практически везде) диода к плюсу и пину. А уж подключить светодиод только с одной стороны...надо постараться
ну не знаю, мне кажется есть стандартное подключение (как практически везде) диода к плюсу и пину.
Вам кажется.
Вспомните, например, (если когда-то знали), как подключается светодиод в дисководе. Дисковод - лишь пример общего правила. А общее правило: активный уровень - низкий.
А уж подключить светодиод только с одной стороны...надо постараться
Перечитайте посты №2 и №3. Вывод очевиден.
подключить светодиод только с одной стороны...надо постараться
Конечно, это нелегко сделать, но судя, по нашему форуму, специалисты имеются - и не так подключали. Потому и спрашиваем.
Простите, а с каких пор низкий уровень активный общее правило? В системах, где отсутствие питания в части схемы может привести к ложным срабатываниям пусковых установок активный уровень всегда высокий.
Примерно с середины 60-х годов прошлого века.
В системах, где отсутствие питания в части схемы может привести к ложным срабатываниям пусковых установок активный уровень всегда высокий.
Никакого официального стандарта на этот счет нет. И вполне естественно, что в тех случаях, когда это существенно, применяется именно необходимое схемное решение. Другое дело - "вариант по умолчанию" - когда нет каких-либо серьезных поводов отдать предпочтение тому или иному варианту. В этих случаях принято считать, что активный - низкий. В свое время это являлось следствием особенностей работы ТТЛ логики, но с той поры осталось как традиция, как "привычное" поведение схем.
PS. Кстати, отсутствие питания, вопрос не такой простой, каким кажется на первый взгляд, т.к. в большинстве случаев логические микросхемы - инвертирующие, поэтому низкий и высокий уровень обычно чередуются через каскад, и "граница", по которой проходит разводка питания, не всегда совпадает с "границей" логического блока.
PPS. Ложным срабатываниям в системах с допущением "активный - низкий" может также препятствовать особенность схемотехники, когда отсутствие питания приводит к запиранию выходных элементов и, таким образом, сигналу "высокий" при отсутствии питания.
PPPS. Кстати, идеология "активный - низкий" воплощена и в эхотажных контроллерах AVR: подтяжка входа осуществляется только к питанию, что и соответствует замыканию контакта на землю, т.е. принципу "активный - низкий".
Ну да. Инженеры AVR сэкономили на ключе подтяжки к земле и неожиданно стали стандартом.
Чтобы стать стандартом инженерам AVR надо было родиться на 30 лет раньше. А теперь уже приходится соблюдать имеющиеся стандарты. Они ведь не просто так "сэкономили" именно на притяжке к земле, а не к 5В.
Вообще-то, тут был такой автор - Фаэтон, кажется. И в одной из тем он вполне грамотно всем разъяснял почему в системах передачи данных активный уровень - низкий. В т.ч., помнится и по причине лучшей надежности и большей помехоустойчивости канала передачи данных. Поэтому оно и есть "стандарт" лет как 60 .. в общем, кому интересно - покопайтесь в недрах форума, тут есть грамотное разъяснение. Народ тогда конечно ничего не понял, как обычно и автора обосрали и он ушел.
P.S. Прикольно .. посмотрел свои решения .. и у меня активный уровень получился .. высокий. По крайней мере на всех 28-и светодиодах для "Ардуино как лего" (7 "цветов" х 4шт) светодиод подключен к земле. Вот жеж .. :)
И меня в институтах учили, что активный уровень - низкий. Обьясняли и почему, наерна, только я, видимо, проспал. Я просто с тех пор привык, что EN, CS, RST и прочие управляющие ноги управляются именно нулем.
мне до ваших светлых голов еще далеко, конечно, но все равно не понимаю, какая разница, как подключен этот диод, если он работает на одном скетче и срабатывает неверно в другом
но это уже лирика, в любой сфекре куча ньюансов
Вообще-то, тут был такой автор - Фаэтон, кажется. И в одной из тем он вполне грамотно всем разъяснял почему в системах передачи данных активный уровень - низкий. ..... покопайтесь в недрах форума, тут есть грамотное разъяснение.
Забавный ты мужик, Архат! Помнишь анекдот, в котором у мужика спросили правда ли, что он «Волгу» в лотерею выиграл, а он ответил: «В целом – правда, только не «Волгу», а «Запорожец», не в лотерею, а в карты, и не выиграл, а проиграл».
Так вот, faeton тогда как раз доказывал, что низкий активный уровень – безграмотно, управлять надо питанием, а не землёй и, да, приводил пространное объяснение почему так.
P.S. Прикольно .. посмотрел свои решения .. и у меня активный уровень получился .. высокий.
Так, всё правильно, ты тогда активно поддержал faeton'а, посоветовав ему «не учить недоумков», имея в виду, очевидно, меня. Похоже, ты тогда считал также, как и он, потому и делал всё с активным высоким уровнем. А сейчас, видимо, немного прокачал свои знания, и поменял мнение. Вот и всё объяснение.
Так в итоге-то что учёные сказали: куда вход тянуть надо - на землю или на питание (все холивары не перечитаешь)?
А хрен их - учёных знает. Я вот неуч, и потому пользую и так и эдак - как удобнее в конкретном проекте, ибо сказано: "Все истинно верующие да разбивают яйца с того конца, с какого удобнее". А всем, кто пытается мне впарить, что одно - грамотно, а другое - полный трэш, задаю простой вопрос: "А что делать, если вдруг попался семисегментник с общим катодом (или анодом, смотря что в данный момент мне впаривают).
Ворота, пилять .. и ведь правду пишешь .. вот жеж склероз ужо видимо.. пасибки что нашел, а то так бы и думал что он тоже за низкий уровень писал. Перечитал, объяснение там вполне разумное, только вопрос похоже не так поставлен .. поразбираться надобно..
Ну вот нашел такой вот пассаж у "ученых":
"В микропроцессорной технике применяются прямые и инверсные логические сигналы. В случае прямых сигналов логическому нулю соответствует низкий уровень сигнала, логической единице - высокий. В случае инверсных сигналов все наоборот. Инверсию сигналов обозначают разными способами: перед названием сигнала ставят знак "минус", над именем проводят черту, после имени ставят обратную косую черту или решетку. В данной статье используется последний способ. Управляющие сигналы обычно инверсные. Это так называемые L (Low)-активные сигналы, у которых активный уровень сигнала - низкий. Это нужно, чтобы: повысить помехозащищенность, которая у ТТЛ несимметричная. Входные токи стремятся подтянуть уровень к высокому, и в случае прямых H (High)-активных сигналов это действует согласно с помехой, чреватой ложными срабатываниями. При L-активных сигналах входной ток противодействует помехе. Особенно важно использовать L-активность для сигналов, передаваемых по кабелям. Кроме того, L(Low)-активные сигналы обеспечивают возможность нескольким источникам управлять одной и той же линией. L-активная линия "подтягивается" к высокому уровню резистором, а активный сигнал может вводить любой подключенный к ней вентиль с открытым коллектором (можно с тристабильным выходом). В компьютерах типа IBM PC принцип L-активности управляющих сигналов интерфейса был нарушен дважды: Н-активность имеют сигналы запросов аппаратных прерываний IRQx и каналов прямого доступа DRQx. Это привело к невозможности совместного использования линий прерываний и каналов DMA."
Это ближе к текущему вопросу - управления контроллером. Собственно поэтому выходы изнутри подтянуты вверх, а не вниз.
То, что писал faeton - несколько про иной вопрос, а именно про прием управляющего сигнала с длинной линии .. и там точно также он рекомендует подтяжку вверх, то есть замыкать кнопку на питание, а не на землю и ровно по той же самой причине: входной фильтр помех правильнее гасить об землю, а не на питание.
P.S. перечитал то и это .. и запутался окончательно. :)
всегда приятно почитать спор вокруг какого-нибудь интересного (хотя вроде такого элементарного, а какая на самом деле глубина) вопроса, когда все четко, с какими-то выдержками, логическими заключениями, аж душа радуется)
вопрос на самом деле не такой уж и праздный. Примерно такой же как правильная разводка земли по шелезякам.. мало кто понимает почему оно потом или глючит или замеряет косо..
Ну вот нашел такой вот пассаж у "ученых":
"В микропроцессорной технике применяются прямые и инверсные логические сигналы. В случае прямых сигналов логическому нулю соответствует низкий уровень сигнала, логической единице - высокий. В случае инверсных сигналов все наоборот. Инверсию сигналов обозначают разными способами: перед названием сигнала ставят знак "минус", над именем проводят черту, после имени ставят обратную косую черту или решетку. В данной статье используется последний способ. Управляющие сигналы обычно инверсные. Это так называемые L (Low)-активные сигналы, у которых активный уровень сигнала - низкий. Это нужно, чтобы: повысить помехозащищенность, которая у ТТЛ несимметричная. Входные токи стремятся подтянуть уровень к высокому, и в случае прямых H (High)-активных сигналов это действует согласно с помехой, чреватой ложными срабатываниями. При L-активных сигналах входной ток противодействует помехе. Особенно важно использовать L-активность для сигналов, передаваемых по кабелям. В компьютерах типа IBM PC принцип L-активности управляющих сигналов интерфейса был нарушен дважды: Н-активность имеют сигналы запросов аппаратных прерываний IRQx и каналов прямого доступа DRQx. Это привело к невозможности совместного использования линий прерываний и каналов DMA."
Это ближе к текущему вопросу - управления контроллером. Собственно поэтому выходы изнутри подтянуты вверх, а не вниз.
Так в итоге-то что учёные сказали: куда вход тянуть надо - на землю или на питание (все холивары не перечитаешь)?
Так что "диод подключен просто к пину" !
В таком разе остается только это: "При L-активных сигналах входной ток противодействует помехе" :)
Так что "диод подключен просто к пину" !
И за это надо накатить!
В таком разе остается только это: "При L-активных сигналах входной ток противодействует помехе" :)
При симметричных входах/выходах (ардуина) это утверждение неверно. Хотя бы из-за отсутствия входного тока...
и ученые разные.
Эти-то да... как начнут дискутировать, так только и смотришь - чтобы стаканы казенные не побили, да спать не остались в заведении, не отметившись в журнале сдачи ключей.
То есть для нас, ардуинофилов, монописсуально куда тянуть - и там и здесь накосячим с равными шансами?
и ученые разные.
Эти-то да... как начнут дискутировать, так только и смотришь - чтобы стаканы казенные не побили, да спать не остались в заведении, не отметившись в журнале сдачи ключей.
То есть для нас, ардуинофилов, монописсуально куда тянуть - и там и здесь накосячим с равными шансами?
Я всегда уважал программистов. А если бы они ещё и иголки сами бы ловили...
Я всегда уважал программистов...
Ох, вспомнилось тут...
В общем, показал одному коллеге вот это видео: http://arduino.ru/forum/proekty/floppy-hdd-music
Он загорелся: кушать, говорит, не могу - с детства мечтаю переделать установку на микропроцессорное управление (он 1941 г.р. если что). Ну ладно, что мне трудно что ли... Спрашиваю, какой активный уровень, отвечает - высокий. Сделал индикацию на светодиодах - и для отладки, и чтобы в процессе работы можно было контролировать. 29 каналов. В общем, выяснилось, что активный - низкий, только после того, как спаянная плата была подключена к установке.
Ну, (см. цитату) программу я переделал, а светодиоды так и работают в противофазе - обычно горят, а когда установка отрабатывает программу испытаний, - гаснут.