Входной сдвиговый регистр 74HC165

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
robocraft
Рядовой
Сообщения: 74
Зарегистрирован: 22.11.2016{, 09:10}
Репутация: 0
Откуда: Москва

Входной сдвиговый регистр 74HC165

#21

Сообщение robocraft » 08.12.2016{, 09:01}

поддерживаю.
☃ Loading... ██████████████] 99%

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#22

Сообщение seri0shka » 31.01.2018{, 13:39}

Возвращаясь к теме регистров, у кого-нибудь есть пользовательские блоки, позволяющие работать по 5-проводной схеме одновременно с несколькими 74HC165 на входах и 74HC595 на выходах? Упомянутые выше блоки arisov77 работают отлично, но там SPI программный, а у Слимпера SPI аппаратный, но что-то не работает. А хотелось бы попробовать именно аппаратный SPI, выше скорость работы и прочие плюсы. Как вариант, неплохо бы иметь универсальные блоки "отправка переменной в SPI" и "приём переменной из SPI", не привязанные к конкретным микросхемам или шилдам. Возможно, уже такие есть, дайте ссылку. Возможно, Boroda уже делал такие, тема должна быть востребована.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#23

Сообщение seri0shka » 06.03.2018{, 21:39}

Чтоб темы не плодить, здесь спрошу. Есть у кого ссылка на блоки для регистров 74НС165 с подключением к любым пинам ардуино? Нужен блок для цепочки из 4 микросхем (32 входа).

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#24

Сообщение Sancho » 07.03.2018{, 17:25}

seri0shka,
Попробуй, не тестил - нет железа...
На 32 бита.

Отправлено спустя 7 минут 42 секунды:
При 1 на Read - чтение.
Вложения
165_Read_v1_(CODE).ubi
(23.09 КБ) 70 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#25

Сообщение seri0shka » 07.03.2018{, 18:18}

Спасибо. А чем преобразовать unsigned long int в байты?

Отправлено спустя 2 минуты 33 секунды:
И что такое clock enable pin ?

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#26

Сообщение Sancho » 07.03.2018{, 20:13}

seri0shka писал(а):
07.03.2018{, 18:21}
А чем преобразовать unsigned long int в байты?
Чтением нужного бита. Или нужны байты?
seri0shka писал(а):
07.03.2018{, 18:21}
И что такое clock enable pin ?
Сделал по фэн-шую, завтра уберу. Вход разрешения тактовых импульсов.
Можно и без него....
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#27

Сообщение seri0shka » 07.03.2018{, 22:01}

Байты в биты мне удобней переводить блоками Бороды, поэтому мне нужны 4 байта. А какой смысл разрешения тактовых импульсов? Только пин занимает.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#28

Сообщение Sancho » 08.03.2018{, 09:06}

seri0shka,
Ок, пробуйте так.
Вложения
165_Read_v2_(CODE).ubi
(37.24 КБ) 55 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#29

Сообщение seri0shka » 08.03.2018{, 17:13}

Sancho, работает правильно только до 15 бит, дальше фигня.
Вот такой работает отлично, хотя написан не очень (делал на основе чужого, быстро не вспомню, кого именно, лишнее удалил, недостающее дописал). Почему-то не отправляется на сайт пример рабочего блока, завтра попробую отправить.
Вот так примерно:
Код внутриПоказать

Код: Выделить всё

setup......
pinMode(PL_pin,OUTPUT);
pinMode(Clock_pin,OUTPUT);
pinMode(Q7_pin,INPUT);
digitalWrite(Q7_pin, HIGH); //подключаем подтягивающий резистор

loop.......
byte Q1 = 0;
byte Q2 = 0;
byte Q3 = 0;
byte Q4 = 0;							
digitalWrite(PL_pin,HIGH);
for (int i=7; i>=0; i--) {				
digitalWrite(Clock_pin,LOW);  	
   delayMicroseconds(1);
   Q1 |= (digitalRead(Q7_pin) ? (1<<i) : 0);
   digitalWrite(Clock_pin,HIGH); 		
   delayMicroseconds(1);
} 
for (int i=7; i>=0; i--) {				
digitalWrite(Clock_pin,LOW);  	
   delayMicroseconds(1);
   Q2 |= (digitalRead(Q7_pin) ? (1<<i) : 0);
   digitalWrite(Clock_pin,HIGH); 		
   delayMicroseconds(1);
}
for (int i=7; i>=0; i--) {				
digitalWrite(Clock_pin,LOW);  	
   delayMicroseconds(1);
   Q3 |= (digitalRead(Q7_pin) ? (1<<i) : 0);
   digitalWrite(Clock_pin,HIGH); 		
   delayMicroseconds(1);
}
for (int i=7; i>=0; i--) {				 
digitalWrite(Clock_pin,LOW);  	
   delayMicroseconds(1);
   Q4 |= (digitalRead(Q7_pin) ? (1<<i) : 0);
   digitalWrite(Clock_pin,HIGH); 		
   delayMicroseconds(1);
}
digitalWrite(PL_pin,LOW); 

Q1 = Q1  ^ ((B11<<8) | (B00000000)) ; 		// инвертировать побитно  байт (0 - нет инверсии, 1 - инвертировать)
Q2 = Q2  ^ ((B11<<8) | (B00000000)) ; 		
Q3 = Q3  ^ ((B11<<8) | (B00000000)) ; 		
Q4 = Q4  ^ ((B11<<8) | (B00000000)) ;

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#30

Сообщение Sancho » 08.03.2018{, 19:22}

seri0shka,
Вот причёсанный твой вариант. Почти.
Отпишись о косяках.
Вложения
165_Read_v4_(CODE).ubi
(39.21 КБ) 64 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#31

Сообщение seri0shka » 08.03.2018{, 23:48}

unsigned long int Out_long;- это рудимент от предыдущих версий блока?
После digitalWrite(clockPin, LOW); задержку пропустили или специально убрали?
Блок работает нормально.
Реально по этой схеме сделать универсальный блок с изменяемым количеством микросхем от 1 до ... , соответственно и выходов (они же байты)?
Тогда можно будет выложить для всеобщего доступа.

KulibinOrsk
Лейтенант
Сообщения: 354
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

Входной сдвиговый регистр 74HC165

#32

Сообщение KulibinOrsk » 09.03.2018{, 07:03}

Поддерживаю и для полноты картины " чтобы было для всех" :
- главное сделайте описание к блоку - будет понятно что и как подключать и проверять.
- сделать вывод байтов и битов (кому как нужно будет так и раскроют). Или в описании указать как вывести биты (о каком то блоке бороды упоминалось...)
- сделать универсальность от 1 до 4 микросхем
- укажите возможное быстродействие, надо понимать скорость опроса.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#33

Сообщение Sancho » 09.03.2018{, 07:20}

seri0shka,
Сделаем. Количество регистров будет неограниченно.
Ещё один небольшой момент - есть одна идейка, надо будет протестить - по ДШ работает до 20мгц - убрать задержки ) .
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#34

Сообщение seri0shka » 09.03.2018{, 17:46}

Sancho писал(а):
09.03.2018{, 07:20}
по ДШ работает до 20мгц
-не понял, что это значит.
Задержки полностью убирать пробовал (в исходном "моём" блоке- работает отлично с SN74HC165N и К555ИР9(!) при питании 5 вольт, но есть ещё несколько серий импортных и отечественных микросхем, кроме того и работать могут от 2 до 6 вольт (в случае с Ардуино от 3 до 5 в), так что задержки в блоке обязательно нужно оставить, но дать возможность менять по желанию от 0 до ...
Кстати, Sancho, Вы когда спите?
По поводу предложения KulibinOrsk, чтоб не увеличивать размер блока (как на схеме, так и в скетче), возможно стоит сделать два вида блока- первый с выходами в виде байтов и всё, а второй с байтовыми и битовыми выходами (то есть 9 выходов для одного регистра). Лично я стараюсь создавать проекты максимально читаемые и с минимумом незадействованных выходов.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#35

Сообщение Sancho » 09.03.2018{, 18:20}

seri0shka,
Думаю сделать так -
один блок - основной, самый первый при использовании, в нём все настройки и один регистр. два вида - выход или битами или байтом.
остальные блоки -слэйвы- каждый следующий регистр, с использованием функции основного. Может быть тоже двух видов.
Слэйвы не имеют номеров. Нумерация зависит от порядка в программе после основного.
Кол-во слэйвов не ограниченно.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#36

Сообщение seri0shka » 09.03.2018{, 18:43}

Sancho писал(а):
09.03.2018{, 18:20}
Нумерация зависит от порядка в программе после основного.
По этому поводу сомнение.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#37

Сообщение Sancho » 09.03.2018{, 18:46}

seri0shka писал(а):
09.03.2018{, 18:43}
По этому поводу сомнение.
Никаких.
Нажимаешь кнопку "порядок компиляции блоков", убеждаешься в правильности, компилишь.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

Входной сдвиговый регистр 74HC165

#38

Сообщение seri0shka » 09.03.2018{, 19:25}

Я даже кнопки такой не знаю, версия 2.1

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Входной сдвиговый регистр 74HC165

#39

Сообщение Sancho » 09.03.2018{, 20:53}

seri0shka,
Понято.
Но всё равно - боятся не стоит, всегда можно проверить код.
Можно, также, сделать в одном, но несколько, и с разной размерностью.
Ок, завтра напилю для теста разных. Но с возможностью задержек от 0 до ....
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

KulibinOrsk
Лейтенант
Сообщения: 354
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

Входной сдвиговый регистр 74HC165

#40

Сообщение KulibinOrsk » 15.03.2018{, 04:57}

Sancho,
Не сориентируете когда можно ожидать блока работающего с входами расширения с выводом байта и битов и выбором необходимого кол-ва 74HC165 ?
А если будет блок описанный в 22 посте: блок, позволяющие работать по 5-проводной схеме SPI одновременно с несколькими 74HC165 на входах и 74HC595 на выходах то будет совсем полное гармоничное решение всех вопросов.

Ответить

Вернуться в «Новые»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей