на входах ардуины не нужны ни диоды, ни резисторы - достаточно INPUT_PULLUP.
С INPUT_PULLUP согласен. А резистор на 1к между ардуиной и устройством нужен обязательно! Если напряжение на входе от внешнего устройства превысит напряжение питания ардуины, то без резистора сгорят внутренние защитные диоды и волшебный дым уйдет в воздух. Резистор нужен для защиты. Особенно если напряжение на внешнем устройстве выше питания ардуины.
на входах ардуины не нужны ни диоды, ни резисторы - достаточно INPUT_PULLUP.
С INPUT_PULLUP согласен. А резистор на 1к между ардуиной и устройством нужен обязательно! Если напряжение на входе от внешнего устройства превысит напряжение питания ардуины, то без резистора сгорят внутренние защитные диоды и волшебный дым уйдет в воздух. Резистор нужен для защиты. Особенно если напряжение на внешнем устройстве выше питания ардуины.
Если ОК то питание идёт с подсоединяемого устройства. Если подсоединить просто с INPUT_PULLUP без подключаемого устройства то для старых русских устройств может просто не хватить сил дать единичку. Транзисторы тогда имели слишком большие токи утечки. В любом случае после подключения нужно убедиться что единичка получилась больше 2 вольт. И если подключить вместе с внешним устройством то защита нужна.
Это чем же таким формировался логический 0 в ДВА вольта !? Что за старые русские микросхемы-транзисторы ? Даже у старого русского pn-перехода было падение 0.7 вольт. :)
Только из уважения к старожилу :-) Открытый коллектор (ОК) в старой аппаратуре часто делали на транзисторах типа МП. 40кОм - среднее значение PULLUP резистора для таких транзисторов может оказаться слишком много, что бы обеспечить логическую единицу при подключении ардуины. Обычно в тех схемах стояли 3.3к или 4.7к на нагрузке ОК. Поэтому не плохо бы проверить, что получается при прямом, без принтера, подключении ардуины к ОК. 2.2 вольта пороговое напряжение ардуины при 5 вольтовом питании переключения входного компаратора в единицу. Если утечка МП транзистора окажется большой ( это может оказаться один из всех на интерфейсе) то при нагрузке на 40кОм напряжение при закрытом транзисторе (= логической единице) может оказаться меньше 2 вольт и ардуина не почувствует единицу. Я не говорю что будет так. Я предлагаю только проверить. Или сразу воткнуть 3.3к от питания к входам ардуины, что бы не заморачиваться на проверки. У меня в мастерской работает токарный станок, который изначально управлялся перфолентой. в какой то момент пришлось переделывать его на LPT порт. Именно тогда и и поимел печальный опыт борьбы с транзисторными интерфейсами.
А что у мп40 не pn переход ? :) Да, он не кремниевый, но это не имеет большого значения. Другой вопрос, что кто то криворукий нарисовал и собрал такй схему где транзистор открывается не полностью, но это не означает, что виноват транзистор :) Значит так было задумано.
Я вполне допускаю, что это вполне возможно и утверждаю, то проверять нужно в любом случае. Но согласиться с тем что причина такого косяка транзистор , какой бы он не был, я не могу. С этим и спорю. Так что ваша причинно следственная цепочка рваная.
А что у мп40 не pn переход ? :) Да, он не кремниевый, но это не имеет большого значения. Другой вопрос, что кто то криворукий нарисовал и собрал такй схему где транзистор открывается не полностью, но это не означает, что виноват транзистор :) Значит так было задумано.
Брокли, НИК182 пишет не о "неполном открытии", а, наоборот, о большом токе утечки германиевых транзисторов, что при высоком сопротивлении нагрузки можно расценивать как "неполное закрытие".
Это как это? Если он ведет речь о нуле в 2 вольта. При ОК ноль формируется полным открытием транзистора.
Я веду речь о единице в 2 вольта и меньше из за большой утечки транзистора, нагруженного на большое сопротивление. Ардуина эту единицу может не увидеть - получим неправильный результат.
Да. Схема только для защиты входов ардуины от возможного превышения напряжения в устройстве над 5 вольтами, по тому, что в таких реликтах всякое бывает. Если осциллографом убедишься, что там при обмене всегда не выше чем +5 вольт, можешь соединять на прямую, без этих висюлек. Главное, что бы напряжение на входе ардуины не превышало питающее напряжение ардуины.
Если бы проблема была в многократном повторном чтении, то повторялись бы не только нули. Обработка идет всего синхроимпульса. В 16 строке идет ожидание 0 а в 22 ожидание возвращение из 0 в 1. Использование прерывания могло бы что-либо изменить если бы у нас выполнялся еще какой-нибудь код, а так без разницы. И судя по эпюрам, фиксация значения происходит именно по спаду. А вот работа сигналов "ПЧТ" и "ЗПС" вызывает сомнения. Посмотри, в какой момент они появляются.
Проверь правильно ли сделано подключение, потом посмотри осциллографом импульсы "ИНФ-Б" соответствуют ли они эпюрам, нет ли помех. Попробуй переключить синхронизацию (5 пин ардуино) на "ЗПР", посмотри что будет.
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
Да. Схема родная. Провода полностью выведены из шлейфа, т.е. Мпу к СЦВМ подключена постоянно.
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
кнопки на морде печатки служат только для внутреннего теста механики, к входам они вообще не подключены.
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
"идут правильно" или "надеюсь" ?
Сигналы с вундервафли идут правильные, так как печаталка печатает, а вот на правильность подключения ардуино я именно надеюсь.
Проверь правильность подключения "ИНФ-Б" и посмотри осциллографом на форму сигнала. Судя по приведенным логам, сигнал не нормальный. Он либо подключен не туда, либо форма сигнала сильно искажена (например используются механические контакты для его формирования).
Выставь частоту развертки 5-10 герц (тут все сигналы медленные) а чувствительность на 1 вольт. И смотри что передается во время печати. Должно быть примерно как на эпюрах. Размахом 4-5 вольта.
Разверни так, что бы отдельный импульс был хорошо виден. И еще, посмотри состояние "ИНФ-Б" при отсутствии печати. Судя по эпюрам, там должна быть логическая "1" убедись в этом, возможно на этом контакте импульсы инвертированы. Надо проверить.
Разверни так, что бы отдельный импульс был хорошо виден. И еще, посмотри состояние "ИНФ-Б" при отсутствии печати. Судя по эпюрам, там должна быть логическая "1" убедись в этом, возможно на этом контакте импульсы инвертированы. Надо проверить.
там вся логика инверсная: наличие сигнала - около 0 вольт (это и есть лог. "1"), отсутствие - около 4.
Как же около 3 вольт - 3 клетки - 1 вольт на клетку. 6 мкс импульс, 100 мс между пачками. Вот ещё бы пачку развернуть на развёртке около 500 мкс на клетку. Кроме того надо на всех ногах - цифровых и управляющих при выводе одного и того же. Тогда однозначно можно будет писать программу.
Очень хочется увидеть осцилограмму с развёрткой 1 мс. В этой программе только вывод слова code: занимает 5 мс. Сколько при этом теряется символов непонятно.
на входах ардуины не нужны ни диоды, ни резисторы - достаточно INPUT_PULLUP.
С INPUT_PULLUP согласен. А резистор на 1к между ардуиной и устройством нужен обязательно! Если напряжение на входе от внешнего устройства превысит напряжение питания ардуины, то без резистора сгорят внутренние защитные диоды и волшебный дым уйдет в воздух. Резистор нужен для защиты. Особенно если напряжение на внешнем устройстве выше питания ардуины.
на входах ардуины не нужны ни диоды, ни резисторы - достаточно INPUT_PULLUP.
С INPUT_PULLUP согласен. А резистор на 1к между ардуиной и устройством нужен обязательно! Если напряжение на входе от внешнего устройства превысит напряжение питания ардуины, то без резистора сгорят внутренние защитные диоды и волшебный дым уйдет в воздух. Резистор нужен для защиты. Особенно если напряжение на внешнем устройстве выше питания ардуины.
Если ОК то питание идёт с подсоединяемого устройства. Если подсоединить просто с INPUT_PULLUP без подключаемого устройства то для старых русских устройств может просто не хватить сил дать единичку. Транзисторы тогда имели слишком большие токи утечки. В любом случае после подключения нужно убедиться что единичка получилась больше 2 вольт. И если подключить вместе с внешним устройством то защита нужна.
Это чем же таким формировался логический 0 в ДВА вольта !? Что за старые русские микросхемы-транзисторы ? Даже у старого русского pn-перехода было падение 0.7 вольт. :)
Только из уважения к старожилу :-) Открытый коллектор (ОК) в старой аппаратуре часто делали на транзисторах типа МП. 40кОм - среднее значение PULLUP резистора для таких транзисторов может оказаться слишком много, что бы обеспечить логическую единицу при подключении ардуины. Обычно в тех схемах стояли 3.3к или 4.7к на нагрузке ОК. Поэтому не плохо бы проверить, что получается при прямом, без принтера, подключении ардуины к ОК. 2.2 вольта пороговое напряжение ардуины при 5 вольтовом питании переключения входного компаратора в единицу. Если утечка МП транзистора окажется большой ( это может оказаться один из всех на интерфейсе) то при нагрузке на 40кОм напряжение при закрытом транзисторе (= логической единице) может оказаться меньше 2 вольт и ардуина не почувствует единицу. Я не говорю что будет так. Я предлагаю только проверить. Или сразу воткнуть 3.3к от питания к входам ардуины, что бы не заморачиваться на проверки. У меня в мастерской работает токарный станок, который изначально управлялся перфолентой. в какой то момент пришлось переделывать его на LPT порт. Именно тогда и и поимел печальный опыт борьбы с транзисторными интерфейсами.
А что у мп40 не pn переход ? :) Да, он не кремниевый, но это не имеет большого значения. Другой вопрос, что кто то криворукий нарисовал и собрал такй схему где транзистор открывается не полностью, но это не означает, что виноват транзистор :) Значит так было задумано.
Я вполне допускаю, что это вполне возможно и утверждаю, то проверять нужно в любом случае. Но согласиться с тем что причина такого косяка транзистор , какой бы он не был, я не могу. С этим и спорю. Так что ваша причинно следственная цепочка рваная.
А что у мп40 не pn переход ? :) Да, он не кремниевый, но это не имеет большого значения. Другой вопрос, что кто то криворукий нарисовал и собрал такй схему где транзистор открывается не полностью, но это не означает, что виноват транзистор :) Значит так было задумано.
Это как это? Если он ведет речь о нуле в 2 вольта. При ОК ноль формируется полным открытием транзистора.
имел опыт восстановления станка в котором сожгли 400 (Четыреста) корпусов 155 серии, там и нули были больше 1.2 вольта, и единицы в 1.6 вольта )))
Это как это? Если он ведет речь о нуле в 2 вольта. При ОК ноль формируется полным открытием транзистора.
Это как это? Если он ведет речь о нуле в 2 вольта. При ОК ноль формируется полным открытием транзистора.
Я веду речь о единице в 2 вольта и меньше из за большой утечки транзистора, нагруженного на большое сопротивление. Ардуина эту единицу может не увидеть - получим неправильный результат.
А ну тогда это я со слепу не разобрался.
Не нужен там светодиод. Простой диод и вот так подключать.
5 вольт с ардуино брать.
Для Uno подключение:
Код для Uno будет примерно такой:
На подключенном мониторе UART должны выводится коды печатаемых символов.
Это чек проверки
Это на мониторе UART
Здесь что-то не так получилось!!!
Здесь что-то не так получилось!!!
читать надо по переднему фронту на 5 пине, через прерывание , а так ты просто читаешь многажды одно и тоже
и строку 7 поправь, на 9600
Седьмую строку я поправил это опечатка, а вот остальное пока не понимаю!!!
вместо пина 5 задействовать пин 2 или 3, это будет 0 или первое прерывание, отрабатывать по переднему фронту
в сетапе - (тебе только по фрону, поменяй)
// Привязываем к Pin2 прерывание по фронту и спаду сигнала
attachInterrupt(0, Rc1, CHANGE);
процедура Rc1 должна у тебя считывать байт и выводить на печать, хотя выводить можно в лупе
/******Обработчик прерывания по возрастанию и спаду сигнала с приёмника RC******/
void Rc1() {
тут читаем байт
и выставляем флаг, что прочитали, в лупе флаг после вывода, сбрасываем, чтобы второй раз не выводить
}
и вообще - существует 99 способов организации чтения, а профессор говорит, что сто
Если бы проблема была в многократном повторном чтении, то повторялись бы не только нули. Обработка идет всего синхроимпульса. В 16 строке идет ожидание 0 а в 22 ожидание возвращение из 0 в 1. Использование прерывания могло бы что-либо изменить если бы у нас выполнялся еще какой-нибудь код, а так без разницы. И судя по эпюрам, фиксация значения происходит именно по спаду. А вот работа сигналов "ПЧТ" и "ЗПС" вызывает сомнения. Посмотри, в какой момент они появляются.
Проверь правильно ли сделано подключение, потом посмотри осциллографом импульсы "ИНФ-Б" соответствуют ли они эпюрам, нет ли помех. Попробуй переключить синхронизацию (5 пин ардуино) на "ЗПР", посмотри что будет.
слона то я и не приметил )))
сигналы (реальные) с вундервафли кто-нибудь видит? все уверены, что вундерфафля что-то выдает без сигналов готовности и запроса?
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
Да. Схема родная. Провода полностью выведены из шлейфа, т.е. Мпу к СЦВМ подключена постоянно.
Как сейчас подключена адуина? Можно рисунок? Со всеми элементами. И, если возможно, напряжение на входах ардуины когда нет печати.
Схема представленная в сообщении #56 точно от этого прибора? Спрашиваю потому, что на схеме имеется всего 4 разряда данных, а на фотографии прибора в панели имитатора видно пять переключателей.
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
Там тесовое подключение внутрь принтера который при этом печатает, так что туда-сюда все сигналы идут правильными. Если вопрос в правильности подключения ардуинки, то это вопрос к ТС. (Надеюсь он все проконтролировал осциллографом)
Всем привет. Прошу прощения пришлось на время приостановить затеянное. Чертовый ковид. Находился под ИВЛ.
Схема подключения та которую указал imp
Для Uno подключение:
1
Данные:
2
"2^0"
---
"8"
3
"2^1"
---
"9"
4
"2^2"
---
"10"
5
"2^3"
---
"11"
6
Синхронизация:
7
"ИНФ-Б"
---
"5"
8
Земля:
9
"Общий"
---
"GND"
Вольтаж менее 4 вольтов на каждом проводе. Подключение производил на прямую.
Проверь правильность подключения "ИНФ-Б" и посмотри осциллографом на форму сигнала. Судя по приведенным логам, сигнал не нормальный. Он либо подключен не туда, либо форма сигнала сильно искажена (например используются механические контакты для его формирования).
"ИНФ-Б" подключил в соответствии со схемой. Сигнал понять не могу. Может что-то не правильно делаю?
"ИНФ-Б" подключил в соответствии со схемой.
Измерять 5 вольтовый сигнал на пределе 10 мV на клетку - это круто. Надо хотя бы 1 вольт на клетку выставить и смотреть на скорости 1 мс на деление.
Выставь частоту развертки 5-10 герц (тут все сигналы медленные) а чувствительность на 1 вольт. И смотри что передается во время печати. Должно быть примерно как на эпюрах. Размахом 4-5 вольта.
"ИНФ-Б"
Не та частота развертки нужно 5-10герц (0.2s - 0.1s)
Разверни так, что бы отдельный импульс был хорошо виден. И еще, посмотри состояние "ИНФ-Б" при отсутствии печати. Судя по эпюрам, там должна быть логическая "1" убедись в этом, возможно на этом контакте импульсы инвертированы. Надо проверить.
При отсутствии печати сигнала нет.
Измерять 5 вольтовый сигнал на пределе 10 мV на клетку - это круто. Надо хотя бы 1 вольт на клетку выставить и смотреть на скорости 1 мс на деление.
Измерять 5 вольтовый сигнал на пределе 10 мV на клетку - это круто. Надо хотя бы 1 вольт на клетку выставить и смотреть на скорости 1 мс на деление.
Как же около 3 вольт - 3 клетки - 1 вольт на клетку. 6 мкс импульс, 100 мс между пачками. Вот ещё бы пачку развернуть на развёртке около 500 мкс на клетку. Кроме того надо на всех ногах - цифровых и управляющих при выводе одного и того же. Тогда однозначно можно будет писать программу.
Как же около 3 вольт - 3 клетки - 1 вольт на клетку.
Непонятно, почему 3 вольта, а не 4.
Импульсы здорово отличаются от эпюр, возможно (очень возможно) на входе стоит инвертор.
Попробуй изменить скетч вот таким образом:
Он ожидает в качестве действующего значения синхроимпульса "1" вместо нуля.
Вот что получилось.
Очень хочется увидеть осцилограмму с развёрткой 1 мс. В этой программе только вывод слова code: занимает 5 мс. Сколько при этом теряется символов непонятно.