Странности в коде.

AVS
Offline
Зарегистрирован: 11.12.2017

есть вот такой участок кода

//Serial.println(millis());
    PORTD = 0b00010000;
    delay(300);
    PORTD = 0b00000000;
    delay(300);

если все оставить так, то диод загарается совсем на мгновение, вне зависимости от установленного времени delay

а если раскомментировать строчку, то все загарается как надо, как думаете, в чем быть модет проблема?

inspiritus
Offline
Зарегистрирован: 17.12.2012

А весь код запостить не судьба?

Morroc
Offline
Зарегистрирован: 24.10.2016

И куда диод подключен - к общему или к + ?

AVS
Offline
Зарегистрирован: 11.12.2017

диод подключен просто к пину. Проблема вроде как решилась. Во время выполенния кода отключил прерывания. По каким-то причинам оно срабатывало, хотя не должно было

SLKH
Offline
Зарегистрирован: 17.08.2015

В "Нарочно не придумаешь" ?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

AVS пишет:

диод подключен просто к пину.

Так работать не будет.

Есть, минимум, три варианта подключения:

- к пину и к земле,

- к пину и к питанию,

- к двум пинам.

Во всех случаях последовательно со светодиодом нужен токоограничительный резистор.

AVS
Offline
Зарегистрирован: 11.12.2017

оу...видимо мым тут друг друга не допоняли. Само собой диод подключен к пину и земле

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

AVS пишет:

оу...видимо мым тут друг друга не допоняли. Само собой диод подключен к пину и земле

1. Говорим за себя. Ответ "просто к пину" был дан на вопрос "к земле или +". Если можете истолковать иначе чем "не подключен ни к тому, ни к другому" - просветите, как.

2. Само собой - это к пину и +, а к пину и земле - далеко не само собой.

AVS
Offline
Зарегистрирован: 11.12.2017

ну не знаю, мне кажется есть стандартное подключение (как практически везде) диода к плюсу и пину. А уж подключить светодиод только с одной стороны...надо постараться

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

AVS пишет:

ну не знаю, мне кажется есть стандартное подключение (как практически везде) диода к плюсу и пину.

Вам кажется

Вспомните, например, (если когда-то знали), как подключается светодиод в дисководе. Дисковод - лишь пример общего правила. А общее правило: активный уровень - низкий.

Цитата:

А уж подключить светодиод только с одной стороны...надо постараться

Перечитайте посты №2 и №3. Вывод очевиден.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

AVS пишет:

подключить светодиод только с одной стороны...надо постараться

Конечно, это нелегко сделать, но судя, по нашему форуму, специалисты имеются - и не так подключали. Потому и спрашиваем.

nik182
Offline
Зарегистрирован: 04.05.2015

Простите, а с каких пор низкий уровень активный общее правило? В системах, где отсутствие питания в части схемы может привести к ложным срабатываниям пусковых установок активный уровень всегда высокий.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:
Простите, а с каких пор низкий уровень активный общее правило?

Примерно с середины 60-х годов прошлого века.

Цитата:

В системах, где отсутствие питания в части схемы может привести к ложным срабатываниям пусковых установок активный уровень всегда высокий.

Никакого официального стандарта на этот счет нет. И вполне естественно, что в тех случаях, когда это существенно, применяется именно необходимое схемное решение. Другое дело - "вариант по умолчанию" - когда нет каких-либо серьезных поводов отдать предпочтение тому или иному варианту. В этих случаях принято считать, что активный - низкий. В свое время это являлось следствием особенностей работы ТТЛ логики, но с той поры осталось как традиция, как "привычное" поведение схем.

PS. Кстати, отсутствие питания, вопрос не такой простой, каким кажется на первый взгляд, т.к. в большинстве случаев логические микросхемы - инвертирующие, поэтому низкий и высокий уровень обычно чередуются через каскад, и "граница", по которой проходит разводка питания, не всегда совпадает с "границей" логического блока. 

PPS. Ложным срабатываниям в системах с допущением "активный - низкий" может также препятствовать особенность схемотехники, когда отсутствие питания приводит к запиранию выходных элементов и, таким образом, сигналу "высокий" при отсутствии питания.

PPPS. Кстати, идеология "активный - низкий" воплощена и в эхотажных контроллерах AVR: подтяжка входа осуществляется только к питанию, что и соответствует замыканию контакта на землю, т.е. принципу "активный - низкий".

nik182
Offline
Зарегистрирован: 04.05.2015

Ну да. Инженеры AVR сэкономили на ключе подтяжки к земле и неожиданно стали стандартом.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Чтобы стать стандартом инженерам AVR надо было родиться на 30 лет раньше. А теперь уже приходится соблюдать имеющиеся стандарты. Они ведь не просто так "сэкономили" именно на притяжке к земле, а не к 5В.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вообще-то, тут был такой автор - Фаэтон, кажется. И в одной из тем он вполне грамотно всем разъяснял почему в системах передачи данных активный уровень - низкий. В т.ч., помнится и по причине лучшей надежности и большей помехоустойчивости канала передачи данных. Поэтому оно и есть "стандарт" лет как 60 .. в общем, кому интересно - покопайтесь в недрах форума, тут есть грамотное разъяснение. Народ тогда конечно ничего не понял, как обычно и автора обосрали и он ушел.

P.S. Прикольно .. посмотрел свои решения .. и у меня активный уровень получился .. высокий. По крайней мере на всех 28-и светодиодах для "Ардуино как лего" (7 "цветов" х 4шт) светодиод подключен к земле. Вот жеж .. :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

И меня в институтах учили, что активный уровень - низкий.  Обьясняли и почему, наерна, только я, видимо, проспал.  Я просто с тех пор  привык, что EN, CS, RST и прочие управляющие ноги управляются именно нулем.  

AVS
Offline
Зарегистрирован: 11.12.2017

мне до ваших светлых голов еще далеко, конечно, но все равно не понимаю, какая разница, как подключен этот диод, если он работает на одном скетче и срабатывает неверно в другом

но это уже лирика, в любой сфекре куча ньюансов

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Arhat109-2 пишет:

Вообще-то, тут был такой автор - Фаэтон, кажется. И в одной из тем он вполне грамотно всем разъяснял почему в системах передачи данных активный уровень - низкий.  ..... покопайтесь в недрах форума, тут есть грамотное разъяснение.

Забавный ты мужик, Архат! Помнишь анекдот, в котором у мужика спросили правда ли, что он «Волгу» в лотерею выиграл, а он ответил: «В целом – правда, только не «Волгу», а «Запорожец», не в лотерею, а в карты, и не выиграл, а проиграл».

Так вот, faeton тогда как раз доказывал, что низкий активный уровень – безграмотно, управлять надо питанием, а не землёй и, да, приводил пространное объяснение почему так.

Arhat109-2 пишет:

P.S. Прикольно .. посмотрел свои решения .. и у меня активный уровень получился .. высокий. 

Так, всё правильно, ты тогда активно поддержал faeton'а, посоветовав ему «не учить недоумков», имея в виду, очевидно, меня. Похоже, ты тогда считал также, как и он, потому и делал всё с активным высоким уровнем. А сейчас, видимо, немного прокачал свои знания, и поменял мнение. Вот и всё объяснение.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Так в итоге-то что учёные сказали: куда вход тянуть надо - на землю или на питание (все холивары не перечитаешь)? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А хрен их - учёных знает. Я вот неуч, и потому пользую и так и эдак - как удобнее в конкретном проекте, ибо сказано: "Все истинно верующие да разбивают яйца с того конца, с какого удобнее". А всем, кто пытается мне впарить, что одно - грамотно, а другое - полный трэш, задаю простой вопрос: "А что делать, если вдруг попался семисегментник с общим катодом (или анодом, смотря что в данный момент мне впаривают).

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ворота, пилять .. и ведь правду пишешь .. вот жеж склероз ужо видимо.. пасибки что нашел, а то так бы и думал что он тоже за низкий уровень писал. Перечитал, объяснение там вполне разумное, только вопрос похоже не так поставлен .. поразбираться надобно..

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну вот нашел такой вот пассаж у "ученых":

"В микропроцессорной технике применяются прямые и инверсные логические сигналы. В случае прямых сигналов логическому нулю соответствует низкий уровень сигнала, логической единице - высокий. В случае инверсных сигналов все наоборот. Инверсию сигналов обозначают разными способами: перед названием сигнала ставят знак "минус", над именем проводят черту, после имени ставят обратную косую черту или решетку. В данной статье используется последний способ. Управляющие сигналы обычно инверсные. Это так называемые L (Low)-активные сигналы, у которых активный уровень сигнала - низкий. Это нужно, чтобы: повысить помехозащищенность, которая у ТТЛ несимметричная. Входные токи стремятся подтянуть уровень к высокому, и в случае прямых H (High)-активных сигналов это действует согласно с помехой, чреватой ложными срабатываниями. При L-активных сигналах входной ток противодействует помехе. Особенно важно использовать L-активность для сигналов, передаваемых по кабелям. Кроме того, L(Low)-активные сигналы обеспечивают возможность нескольким источникам управлять одной и той же линией. L-активная линия "подтягивается" к высокому уровню резистором, а активный сигнал может вводить любой подключенный к ней вентиль с открытым коллектором (можно с тристабильным выходом). В компьютерах типа IBM PC принцип L-активности управляющих сигналов интерфейса был нарушен дважды: Н-активность имеют сигналы запросов аппаратных прерываний IRQx и каналов прямого доступа DRQx. Это привело к невозможности совместного использования линий прерываний и каналов DMA."

Это ближе к текущему вопросу - управления контроллером. Собственно поэтому выходы изнутри подтянуты вверх, а не вниз.

То, что писал faeton - несколько про иной вопрос, а именно про прием управляющего сигнала с длинной линии .. и там точно также он рекомендует подтяжку вверх, то есть замыкать кнопку на питание, а не на землю и ровно по той же самой причине: входной фильтр помех правильнее гасить об землю, а не на питание.

P.S. перечитал то и это .. и запутался окончательно. :)

AVS
Offline
Зарегистрирован: 11.12.2017

всегда приятно почитать спор вокруг какого-нибудь интересного (хотя вроде такого элементарного, а какая на самом деле глубина) вопроса, когда все четко, с какими-то выдержками, логическими заключениями, аж душа радуется)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

вопрос на самом деле не такой уж и праздный. Примерно такой же как правильная разводка земли по шелезякам.. мало кто понимает почему оно потом или глючит или замеряет косо..

SLKH
Offline
Зарегистрирован: 17.08.2015

Arhat109-2 пишет:

Ну вот нашел такой вот пассаж у "ученых":

"В микропроцессорной технике применяются прямые и инверсные логические сигналы. В случае прямых сигналов логическому нулю соответствует низкий уровень сигнала, логической единице - высокий. В случае инверсных сигналов все наоборот. Инверсию сигналов обозначают разными способами: перед названием сигнала ставят знак "минус", над именем проводят черту, после имени ставят обратную косую черту или решетку. В данной статье используется последний способ. Управляющие сигналы обычно инверсные. Это так называемые L (Low)-активные сигналы, у которых активный уровень сигнала - низкий. Это нужно, чтобы: повысить помехозащищенность, которая у ТТЛ несимметричная. Входные токи стремятся подтянуть уровень к высокому, и в случае прямых H (High)-активных сигналов это действует согласно с помехой, чреватой ложными срабатываниями. При L-активных сигналах входной ток противодействует помехе. Особенно важно использовать L-активность для сигналов, передаваемых по кабелям.  В компьютерах типа IBM PC принцип L-активности управляющих сигналов интерфейса был нарушен дважды: Н-активность имеют сигналы запросов аппаратных прерываний IRQx и каналов прямого доступа DRQx. Это привело к невозможности совместного использования линий прерываний и каналов DMA."

Это ближе к текущему вопросу - управления контроллером. Собственно поэтому выходы изнутри подтянуты вверх, а не вниз.

это всё справедливо для схемотехники входных и выходных каскадов микросхем TTL. Кто-нибудь сравнительно недавно что-нибудь паял на 155 серии? В большинстве современных логических микросхем входные и выходные каскады симметричные.

Цитата:
Кроме того, L(Low)-активные сигналы обеспечивают возможность нескольким источникам управлять одной и той же линией. L-активная линия "подтягивается" к высокому уровню резистором, а активный сигнал может вводить любой подключенный к ней вентиль с открытым коллектором (можно с тристабильным выходом).
да, в помянутой серии 155 (в девичестве SN74) были элементы с открытым коллекторным выходом, можно их лепить в параллель на сигнальную линию.

 

SLKH
Offline
Зарегистрирован: 17.08.2015

sadman41 пишет:

Так в итоге-то что учёные сказали: куда вход тянуть надо - на землю или на питание (все холивары не перечитаешь)? 

нет никакого "по умолчанию". входы у микросхем разные, и ученые разные.

Так что "диод подключен просто к пину" !

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

В таком разе остается только это: "При L-активных сигналах входной ток противодействует помехе" :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

SLKH пишет:

Так что "диод подключен просто к пину" !

И за это надо накатить!

SLKH
Offline
Зарегистрирован: 17.08.2015

Arhat109-2 пишет:

В таком разе остается только это: "При L-активных сигналах входной ток противодействует помехе" :)

для 155 серии - возможно, в какой-то степени. См. https://studfiles.net/html/2706/35/html_hwIk3HxcDm.5zdQ/img-EuV7H5.png

 

При симметричных входах/выходах (ардуина) это утверждение неверно. Хотя бы из-за отсутствия входного тока...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

SLKH пишет:

и ученые разные.

Эти-то да... как начнут дискутировать, так только и смотришь - чтобы стаканы казенные не побили, да спать не остались в заведении, не отметившись в журнале сдачи ключей.

То есть для нас, ардуинофилов, монописсуально куда тянуть - и там и здесь накосячим с равными шансами?

SLKH
Offline
Зарегистрирован: 17.08.2015

sadman41 пишет:

SLKH пишет:

и ученые разные.

Эти-то да... как начнут дискутировать, так только и смотришь - чтобы стаканы казенные не побили, да спать не остались в заведении, не отметившись в журнале сдачи ключей.

То есть для нас, ардуинофилов, монописсуально куда тянуть - и там и здесь накосячим с равными шансами?

Примерно так.

Я всегда уважал программистов. А если бы они ещё и иголки сами бы ловили...   

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

SLKH пишет:

Я всегда уважал программистов...

Ох, вспомнилось тут...

В общем, показал одному коллеге вот это видео: http://arduino.ru/forum/proekty/floppy-hdd-music

Он загорелся: кушать, говорит, не могу - с детства мечтаю переделать установку на микропроцессорное управление (он 1941 г.р. если что). Ну ладно, что мне трудно что ли... Спрашиваю, какой активный уровень, отвечает - высокий. Сделал индикацию на светодиодах - и для отладки, и чтобы в процессе работы можно было контролировать. 29 каналов. В общем, выяснилось, что активный - низкий, только после того, как спаянная плата была подключена к установке.

Ну, (см. цитату) программу я переделал, а светодиоды так и работают в противофазе - обычно горят, а когда установка отрабатывает программу испытаний, - гаснут.