将更多输入从pc817连接到micro

问题描述 投票:0回答:2

如何将更多输入连接到微控制器? 我有 14 个 optocupler pc817 (1,2,3......,14):

connect all pins 4 together from 1st set of 7th pc817 to mc(E1)
connect pin 3 from  pc817 no.1 to mc(A0)
connect pin 3 from  pc817 no.2 to mc(A1)
connect pin 3 from  pc817 no.3 to mc(A2)
connect pin 3 from  pc817 no.4 to mc(A3)
connect pin 3 from  pc817 no.5 to mc(A4)
connect pin 3 from  pc817 no.6 to mc(A5)
connect pin 3 from  pc817 no.7 to mc(E0)
connect all pins 4 together from 2nd set of 7 pc817 to mc(E2)
connect pin 3 from  pc817 no.8  to mc(A0)
connect pin 3 from  pc817 no.9  to mc(A1)
connect pin 3 from  pc817 no.10 to mc(A2)
connect pin 3 from  pc817 no.11 to mc(A3)
connect pin 3 from  pc817 no.12 to mc(A4)
connect pin 3 from  pc817 no.13 to mc(A5)
connect pin 3 from  pc817 no.14 to mc(E0)

参见此示意图:

enter image description here

该电路如何工作以及如何编写其代码?

microcontroller mplab
2个回答
0
投票

您可以将其视为一个 2D 矩阵 n 乘以 m,n 组 m 光耦合器,在您的情况下 n=2 且 m=7。

一次只能读取一组 7 个光耦合器。要阅读这两篇文章,原则上您需要以下顺序:

  1. 将 E1 设置为“高”,将 E2 设置为“低”。
  2. 读取第一组A0至A5和E0。
  3. 将 E1 设置为“低”,将 E2 设置为“高”。
  4. 读取第二组A0至A5和E0。

现在你有了 14 位值,你可以处理它们了。

这称为时分复用,您有 2 个时间步长,每步有 7 个数据位。

电路的工作原理如下:

只有那些集电极处于“高”电平的晶体管才能导通,前提是它们通过各自的 LED 处于“开启”状态。我将它们称为“启用”。如果它们处于“打开”状态,则分别在 A0 至 A5 和 E0 上可读“高”电平。

任何集电极处于“低”电平的晶体管都无法提供“高”电平。我将其称为“禁用”。

为了避免干扰反馈(或反向)电流到“禁用”晶体管,二极管将它们分开。


0
投票

分享知识。尽管我一直被世界上最糟糕的假警察包围,但我还是给你们写了这些狗屎。他们中的大多数都是愚蠢的黑鬼,无法真正将任何东西放在一起。

© www.soinside.com 2019 - 2024. All rights reserved.