Не работает pin10
Не работает pin10
Доброго времени суток.
Подаю сигнал в 24В на pin10 UNO, NANO (нужное подчеркнуть) через оптрон 817, выход оптрона сажает пин10 на минус. В скетче соответственно, включен подтягивающий резистор и пин выставлен нормально закрытым. Схема с оптроном работать не хочет, а вот если пин10 перемычкой посадить на минус то работает. Такое наблюдается только с пин10. Сопротивление оптрона в открытом состоянии примерно 90-100 Ом. Может есть какие либо нюансы с pin 10 кроме того что он SPI?
Схемку подключения прилагаю.
[spoiler] [/spoiler]
Подаю сигнал в 24В на pin10 UNO, NANO (нужное подчеркнуть) через оптрон 817, выход оптрона сажает пин10 на минус. В скетче соответственно, включен подтягивающий резистор и пин выставлен нормально закрытым. Схема с оптроном работать не хочет, а вот если пин10 перемычкой посадить на минус то работает. Такое наблюдается только с пин10. Сопротивление оптрона в открытом состоянии примерно 90-100 Ом. Может есть какие либо нюансы с pin 10 кроме того что он SPI?
Схемку подключения прилагаю.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
FLProg 6.3.1 - 7.3.4 - Linux
Не работает pin10
С остальными пинами нормально, только с десятым. Причем пробовал UNO и NANO, так что это больше на фичу похоже.
FLProg 6.3.1 - 7.3.4 - Linux
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
- Ivan_Kornege
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 29 апр 2017, 08:24
- Откуда: гАндурас
- Имя: Ivan
Не работает pin10
Надо не сопротивление мереть а напряжение на 10 ноге когда открыт опторон.
Лучше осциллографом с высокоомным щупом.
Не работает pin10
Да тут эффект наоборот. Если накоротко проводком посадить на минус, то отрабатывает. А у оптрона есть сопротивление.
Замерил сейчас, на всех пинах, при включенном подтягивающем резисторе, ток срабатывания составил 0,14mA, что примерно соотвествует 20кОм. На десятом пине ток срабатывания 81mA, значит подтягивающий резистор 60 Ом.
Замерил сейчас, на всех пинах, при включенном подтягивающем резисторе, ток срабатывания составил 0,14mA, что примерно соотвествует 20кОм. На десятом пине ток срабатывания 81mA, значит подтягивающий резистор 60 Ом.
FLProg 6.3.1 - 7.3.4 - Linux
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Не работает pin10
Нихфига себе! Внутри 80 ом точно быть не может. Больше похоже на ток короткого замыкания при установке выхода в 1. Нужно смотреть скетч (именно скетч, не проект).
Отправлено спустя 3 минуты 27 секунд:
Кстати, для светодиода оптрона маловато 0,8 мА, мне кажется. Хотя не в этом дело.
Не работает pin10
Нет. Это сугубо эксперимент. Две платы Уно и Нано, макетка, мультиметр, оптрон с резистором.
FLProg 6.3.1 - 7.3.4 - Linux
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Не работает pin10
Может всё-таки так попробуете подключить?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Не работает pin10
Со стягивающим резистором? Мне вот паять эти резисторы не охота если есть встроенные подтягивающие. А реально мне интересно почему пин10 такой.
FLProg 6.3.1 - 7.3.4 - Linux
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Не работает pin10
Может стоит просто прозвонить ноги от 8 до 12,
при отключенном питании и без нагрузки на этих ногах - тестером от +5 и GND
Я хочу быть добрее, но люди сами нарываются.
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Не работает pin10
Камни с Али? С одной серии?
Был у меня такой косяк с PWM пином 11.
3 нано с одной покупки и от одного продавца.
Купил у другого и всё нормально заработало:)))
Качество — это делать что-либо правильно, даже когда никто не смотрит
Не работает pin10
С утра экспериментировал и собственно вот какие результаты.
Если скетч простой, например [spoiler][/spoiler]
То пин 10 работает корректно, ток срабатывания 0,14мА как и на соседних пинах.
Если добавить в программу сдвиговый регистр, то активируется SPI
[spoiler][/spoiler]
начинаются чудеса, ток срабатывания становится 81 mA, на соседних пинах ток срабатывания остался 0,14мА
Проверялось это на двух Nano V3 от Robodyn, купленных с интервалом 1,5 месяца. Год назад у меня была такая же история с UNO от неизвестного китайца, то-же не срабатывало с включенным подтягивающим резистором на десятом пине, но тогда я разбираться не стал, т.к. все уже было смонтировано на станке и время поджимало, просто провод на соседний пин кинул.
Как-то вот так. Сегодня вечером попробую на оригинальной UNO от Амперки.
Еще добавлю. На первой Nano, после всех испытаний, 10 пин при включении подтягивающего стал вести себя иначе, как будто ему подают внешний сигнал минус и он все время включен. Может я его уже и подпалил.
Если скетч простой, например [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))))));
}
То пин 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);}
}
начинаются чудеса, ток срабатывания становится 81 mA, на соседних пинах ток срабатывания остался 0,14мА
Проверялось это на двух Nano V3 от Robodyn, купленных с интервалом 1,5 месяца. Год назад у меня была такая же история с UNO от неизвестного китайца, то-же не срабатывало с включенным подтягивающим резистором на десятом пине, но тогда я разбираться не стал, т.к. все уже было смонтировано на станке и время поджимало, просто провод на соседний пин кинул.
Как-то вот так. Сегодня вечером попробую на оригинальной UNO от Амперки.
Еще добавлю. На первой Nano, после всех испытаний, 10 пин при включении подтягивающего стал вести себя иначе, как будто ему подают внешний сигнал минус и он все время включен. Может я его уже и подпалил.

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

FLProg 6.3.1 - 7.3.4 - Linux
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Не работает pin10
[ref]Goosr[/ref], Ну Вы и даёте - только спустя 15 постов заявить об использовании SPI в проекте.........
Выражение
Выражение
никак Вас не оправдывает.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Не работает pin10
Продолжу немного старую тему.
Начиная с 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]

Начиная с 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]
FLProg 6.3.1 - 7.3.4 - Linux
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя