Мультиплексор кодирования для 64 ИК-датчиков

Я новичок в arduino, и я надеялся, что кто-нибудь может показать мне, как закодировать мультиплексор (CD4051BE) для 64 ИК-датчиков? Действительно нужно это!

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

THX заранее

, 👍-3

Обсуждение

Я не уверен, что вы действительно знаете, о чем просите. Мультиплексор позволяет выбрать один ИК-приемник в данный момент времени. Поэтому при прослушивании одного ИК-приемника сигналы всех остальных приемников просто теряются. Чего вы пытаетесь достичь? Используете ли вы 64 различных типа приемников (разная длина волны и/или модуляция) или приемники распределены по области без прямой видимости для каждого из них? Если вы пытаетесь получить ИК-сигналы от 64 различных источников с прямой видимостью, то вам обычно нужен один, два или, может быть, три приемника., @Kwasmich

Пожалуйста, покажите нам код, который вы написали до сих пор., @VE7JRO


2 ответа


1

Что вам следует сделать, так это:

  1. Узнайте, как записать (и, возможно, прочитать) вывод (digitalWrite).
  2. Получите таблицу данных для CD4051.
  3. Создайте на бумаге простую диаграмму/схему в каком порядке вы хотите что-то делать (как установить каждый вывод в каком порядке) и проверьте, делает ли это то, что вы хотите.
  4. Кодирование того, что вы создали.

Третье действие может выглядеть следующим образом:

ДЛЯ каждого датчика (один из 64)
   Запишите биты для определения вывода (ввод A, B, C), используя `digitalWrite`)
   Прочитайте датчик (не уверен, как работает ваш датчик, возможно, с помощью `analogRead`).
   Рассчитайте значение IR.
   Обработайте/сохраните значение
конец

На самом деле я думаю, что на CD4051 возможно только 8, поэтому вам нужно их больше, в этом случае используйте второй цикл for, чтобы правильно установить второй CD4051.

,

0

Это проблема как аппаратного, так и программного обеспечения. Я сосредоточусь на аппаратной части, а также кратко расскажу о том, как выбрать один из ваших ИК-датчиков после того, как вы построите оборудование.

Предполагая, что CD4051 мультиплексирует только 8 каналов, вам потребуется построить 2-уровневый мультиплексор, чтобы иметь возможность выбрать один из 64 ИК-датчиков.

Вы бы прикрепили вывод CD4051 верхнего уровня к своему Arudino. Затем вы бы подключили каждый из входов этого первого CD4051 к выходу другого CD4051. Вам понадобится в общей сложности 9 CD4051. Вы бы использовали 3-разрядный вход для CD4051 верхнего уровня, чтобы выбрать один из 8 мультиплексоров второго уровня. Затем вы можете связать 3 линии селектора каналов каждого CD4051 2-го уровня вместе. (Вы бы связали вывод выбора канала Со всеми CD4051s 2-го уровня вместе, все контакты выбора канала Bs вместе и все каналы Cs вместе).

3 управляющих вывода CD4051 верхнего уровня и 3 управляющих вывода CD4051s 2-го уровня будут подключены к 6 цифровым выходам Arudino и будут служить в качестве 6-битного селектора каналов. который выбрал бы один из 64 входных контактов на CD4051s 2-го уровня.

Чтобы выбрать 1 из 64 входов, вы должны установить 3 бита на CD4051 верхнего уровня, который выберет один из 8 входных контактов, который, в свою очередь, подключен к одному из 8 CD4051 второго уровня. 3 управляющих бита для CD4051 2-го уровня будут выбирать один из входов для активного CD4051 2-го уровня. (Он выберет один из входов на ВСЕХ CD4051 2-го уровня, но только выбранный выход CD4051 2-го уровня будет подаваться на CD4051 верхнего уровня и перенаправляться на Arduino.)

Как только вы настроите свои 9 CD4051s таким образом, 3 бита с CD4051 верхнего уровня и 3 бита с CD4051 2-го уровня будут служить 6-битным адресом одного из 64 входов. Затем вы подключили бы свои 64 ИК-датчика ко всем 64 входам CD4051s 2-го уровня и написали программное обеспечение Arduino, чтобы использовать 6 выводов цифровых выходов для вывода 6-разрядного адреса нужных ИК-датчиков в массив мультиплексора CD4051.

,