Страница 1 из 1
Не работает pin10
Добавлено: 11 мар 2019, 14:52
Goosr
Доброго времени суток.
Подаю сигнал в 24В на pin10 UNO, NANO (нужное подчеркнуть) через оптрон 817, выход оптрона сажает пин10 на минус. В скетче соответственно, включен подтягивающий резистор и пин выставлен нормально закрытым. Схема с оптроном работать не хочет, а вот если пин10 перемычкой посадить на минус то работает. Такое наблюдается только с пин10. Сопротивление оптрона в открытом состоянии примерно 90-100 Ом. Может есть какие либо нюансы с pin 10 кроме того что он SPI?
Схемку подключения прилагаю.
[spoiler]
Снимок экрана от 2019-03-11 15-38-52.jpg
[/spoiler]
Не работает pin10
Добавлено: 11 мар 2019, 14:58
Phazz
А с другим пином нормально работает?
Не работает pin10
Добавлено: 11 мар 2019, 15:01
Goosr
С остальными пинами нормально, только с десятым. Причем пробовал UNO и NANO, так что это больше на фичу похоже.
Не работает pin10
Добавлено: 11 мар 2019, 15:05
fsergei70
А если подтягивающий резистор дополнительно поставить?
Не работает pin10
Добавлено: 11 мар 2019, 15:09
Phazz
А если плюс подать через оптрон на пин убрав внутреннюю подтяжку?
Не работает pin10
Добавлено: 11 мар 2019, 15:23
Ivan_Kornege
Goosr писал(а): 11 мар 2019, 14:52Сопротивление оптрона в открытом состоянии примерно 90-100 Ом.
Надо не сопротивление мереть а напряжение на 10 ноге когда открыт опторон.
Лучше осциллографом с высокоомным щупом.
Не работает pin10
Добавлено: 11 мар 2019, 15:32
Goosr
Да тут эффект наоборот. Если накоротко проводком посадить на минус, то отрабатывает. А у оптрона есть сопротивление.
Замерил сейчас, на всех пинах, при включенном подтягивающем резисторе, ток срабатывания составил 0,14mA, что примерно соотвествует 20кОм. На десятом пине ток срабатывания 81mA, значит подтягивающий резистор 60 Ом.
Не работает pin10
Добавлено: 11 мар 2019, 15:54
seri0shka
Goosr писал(а): 11 мар 2019, 15:32На десятом пине ток срабатывания 81mA
Нихфига себе! Внутри 80 ом точно быть не может. Больше похоже на ток короткого замыкания при установке выхода в 1. Нужно смотреть скетч (именно скетч, не проект).
Отправлено спустя 3 минуты 27 секунд:
Кстати, для светодиода оптрона маловато 0,8 мА, мне кажется. Хотя не в этом дело.
Не работает pin10
Добавлено: 11 мар 2019, 17:01
renat85
А случайно сетевая карта не используется в проекте?
Не работает pin10
Добавлено: 11 мар 2019, 17:10
Goosr
Нет. Это сугубо эксперимент. Две платы Уно и Нано, макетка, мультиметр, оптрон с резистором.
Не работает pin10
Добавлено: 11 мар 2019, 21:02
Phazz
Может всё-таки так попробуете подключить?
b540dd391816.jpg
Не работает pin10
Добавлено: 11 мар 2019, 21:10
Goosr
Со стягивающим резистором? Мне вот паять эти резисторы не охота если есть встроенные подтягивающие. А реально мне интересно почему пин10 такой.
Не работает pin10
Добавлено: 11 мар 2019, 21:15
nalnik
Goosr писал(а): 11 мар 2019, 21:10А реально мне интересно почему пин10 такой.
Может стоит просто прозвонить ноги от 8 до 12,
при отключенном питании и без нагрузки на этих ногах - тестером от +5 и GND
Не работает pin10
Добавлено: 12 мар 2019, 10:40
Grafsaxar
Goosr писал(а): 11 мар 2019, 21:10А реально мне интересно почему пин10 такой.
Камни с Али? С одной серии?
Был у меня такой косяк с PWM пином 11.
3 нано с одной покупки и от одного продавца.
Купил у другого и всё нормально заработало:)))
Не работает pin10
Добавлено: 12 мар 2019, 12:38
Goosr
С утра экспериментировал и собственно вот какие результаты.
Если скетч простой, например [spoiler]
Код: Выделить всё
bool _kPin0 = 0;
void setup()
{
pinMode(10, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(14, OUTPUT);
}
void loop()
{
//Плата:1
digitalWrite (14, (((!(digitalRead (10)))) || ((!(digitalRead (12))))));
}
[/spoiler]
То пин 10 работает корректно, ток срабатывания 0,14мА как и на соседних пинах.
Если добавить в программу сдвиговый регистр, то активируется SPI
[spoiler]
Код: Выделить всё
#include <SPI.h>
byte _74HC5951OB1 = 0;
byte _74HC5951TB = 0;
bool _74HC5951NS = 0;
bool _kPin0 = 0;
void setup()
{
pinMode(10, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(14, OUTPUT);
SPI.begin();
pinMode(10, OUTPUT);
pinMode(0, OUTPUT);
}
void loop()
{
//Плата:1
digitalWrite (14, (((!(digitalRead (10)))) || ((!(digitalRead (12))))));
_74HC5951NS = 0;
bitWrite(_74HC5951TB, 0, 0);
bitWrite(_74HC5951TB, 1, 0);
bitWrite(_74HC5951TB, 2, 0);
bitWrite(_74HC5951TB, 3, 0);
bitWrite(_74HC5951TB, 4, 0);
bitWrite(_74HC5951TB, 5, 0);
bitWrite(_74HC5951TB, 6, 0);
bitWrite(_74HC5951TB, 7, 0);
if(! (_74HC5951TB == _74HC5951OB1)){_74HC5951OB1 = _74HC5951TB; _74HC5951NS = 1;}
if (_74HC5951NS) {
digitalWrite(0, 0);
SPI.transfer(_74HC5951OB1);
digitalWrite(0, 1);}
}
[/spoiler]
начинаются чудеса, ток срабатывания становится 81 mA, на соседних пинах ток срабатывания остался 0,14мА
Проверялось это на двух Nano V3 от Robodyn, купленных с интервалом 1,5 месяца. Год назад у меня была такая же история с UNO от неизвестного китайца, то-же не срабатывало с включенным подтягивающим резистором на десятом пине, но тогда я разбираться не стал, т.к. все уже было смонтировано на станке и время поджимало, просто провод на соседний пин кинул.
Как-то вот так. Сегодня вечером попробую на оригинальной UNO от Амперки.
Еще добавлю. На первой Nano, после всех испытаний, 10 пин при включении подтягивающего стал вести себя иначе, как будто ему подают внешний сигнал минус и он все время включен. Может я его уже и подпалил.

Не работает pin10
Добавлено: 12 мар 2019, 12:52
pan
лучше его не использовать как вход вместе с спи
http://arduino.ru/Reference/Library/SPI
51-34.png
Не работает pin10
Добавлено: 12 мар 2019, 12:59
Goosr
Ну собственно к этому и пришел.

Не работает pin10
Добавлено: 12 мар 2019, 13:10
Sancho
[ref]Goosr[/ref], Ну Вы и даёте - только спустя 15 постов заявить об использовании SPI в проекте.........
Выражение
Goosr писал(а): 11 мар 2019, 14:52Может есть какие либо нюансы с pin 10 кроме того что он SPI?
никак Вас не оправдывает.
Не работает pin10
Добавлено: 12 мар 2019, 13:15
Goosr

ну эта, учимся. И еще рядовой пока.
Не работает pin10
Добавлено: 13 окт 2020, 08:54
Goosr
Продолжу немного старую тему.
Начиная с FLProg 6.3, если задействован в проекте SPI нельзя PIN10 и PIN12 использовать как вход так и на выход, программа просто их не назначает. Если глянуть скетч с SPI, то видно, что PIN10 притянут к выходу а PIN12 нет. С PIN10 понятно, о том чтоб его к выходу привязать указано в библиотеке. А вот на счет PIN12 непонятно, это так задумано или ошибка? У меня в старых проектах одновременно работали PIN12, работающий как вход, и SPI. Вроде глюков не наблюдалось.[spoiler]
#include <SPI.h>
byte _74HC5951OB1 = 0;
byte _74HC5951TB = 0;
bool _74HC5951NS = 0;
void setup()
{
SPI.begin();
pinMode(10, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
//Плата:1
_74HC5951NS = 0;
bitWrite(_74HC5951TB, 0, 0);
bitWrite(_74HC5951TB, 1, 0);
bitWrite(_74HC5951TB, 2, 0);
bitWrite(_74HC5951TB, 3, 0);
bitWrite(_74HC5951TB, 4, 0);
bitWrite(_74HC5951TB, 5, 0);
bitWrite(_74HC5951TB, 6, 0);
bitWrite(_74HC5951TB, 7, 0);
if(! (_74HC5951TB == _74HC5951OB1))
{
_74HC5951OB1 = _74HC5951TB;
_74HC5951NS = 1;
}
if (_74HC5951NS)
{
digitalWrite(4, 0);
SPI.transfer(_74HC5951OB1);
digitalWrite(4, 1);
}
}[/spoiler]