IC sẽ kéo đầu ra xuống đất, có lẽ KHÔNG cổng?


8

Tôi có một bảng với bốn rơle trên đó. Nó có một chân Vcc, Gnd và In1-In4 tiêu chuẩn. Tôi muốn điều khiển nó bằng Arduino hoặc trong trường hợp của tôi là một chiếc ESP32. Tuy nhiên, tôi nhận thấy rằng khi chân đầu ra trên bộ điều khiển của tôi được kéo CAO thì không có gì xảy ra khi nó kéo xuống THẤP, rơle sẽ tham gia.

Đây là một vấn đề khi bảng được đặt lại vì tất cả các công tắc chuyển tiếp sẽ tham gia cho đến khi và đây không phải là điều tôi muốn. Sau khi đào, tôi đã thực hiện điều này:

Biến tần đơn giản

Điều này hoạt động như mong muốn, luôn có 5V trên rơle và rơle luôn được ngắt. Khi tôi xuất tín hiệu đến cơ sở của Q1, nó sẽ kéo đầu ra xuống đất và rơle sẽ tham gia.

Ngay bây giờ tôi có bốn trong số các rơle này và sẽ sớm có thêm. Vì vậy, tôi muốn giải quyết vấn đề này bằng IC. Cụ thể, tôi đã xem IC7404 là một cổng KHÔNG, tuy nhiên, tôi không chắc điều này sẽ giải quyết vấn đề của tôi.

Vì vậy, có một IC sẽ kéo đầu ra xuống đất khi tín hiệu có mặt trên đầu vào không? 7404 sẽ hoạt động và tôi không thấy gì? :)

Chỉnh sửa: Đây là mô-đun tiếp sức tôi đang sử dụng . Tôi không thể tìm thấy bất kỳ bảng dữ liệu hữu ích nào trên đó.


1
Chào mừng đến với EE.SE. Tôi sẽ đi thẳng về phía trước và đánh thức bạn +1 cho sơ đồ của bạn. Nó có thể giải quyết được với một biến tần, nhưng để trả lời rằng chúng tôi cần bạn biết các yêu cầu về công suất đầu ra của bạn. Bạn có biết bạn có bao nhiêu tải?
winny

1
Bạn có thể muốn thêm một diode phân cực ngược từ Đầu ra đến 5 V nếu bạn đang vận hành rơle. Diode googling flyback hoặc diode tự do sẽ cung cấp thêm thông tin
Colin

1
Vui lòng cung cấp một liên kết đến bảng dữ liệu cho các rơle. Chúng ta cần biết họ yêu cầu bao nhiêu hiện tại. Một chiếc 7404 có lẽ sẽ không thể chìm đủ dòng điện.
Elliot Alderson

Bạn có ý nghĩa gì là tín hiệu có mặt? Đây có phải là điện áp cao + 5v tại nút "đầu vào" không và "tín hiệu không có" là gì, 0V hoặc không xác định / ngắt kết nối?
R.Joshi

Không rõ lý do tại sao các rơle sẽ hoạt động khi thiết lập lại, vì thông thường các chân ở trạng thái trở kháng cao trừ khi bạn không chọn chính xác các chân đóng đai chế độ hoặc các chân liên quan đến bộ tải khởi động.
Chris Stratton

Câu trả lời:


2

Thực tế là các rơle đang hoạt động khi thiết lập lại khi các chân ở chế độ trở kháng cao là đáng lo ngại, và điều gì đó bạn cần phải hiểu đầy đủ để xác nhận hệ thống của bạn và sửa chữa nó.

Chỉnh sửa: bây giờ rõ ràng đây là lỗi phần mềm trong mã của bạn, để giải quyết tình trạng ổ đĩa vô ý thấp trong khi khởi động, hãy định cấu hình bit thanh ghi dữ liệu đầu ra của pin ở mức cao trước khi bạn đặt pin thành đầu ra.

Điều đó nói rằng, một câu trả lời theo nghĩa đen cho câu hỏi ban đầu của bạn sẽ là một con chip chứa nhiều open collector inverters.

74xx05 là một ví dụ.

74xx06 tương tự nhưng cho phép áp dụng điện áp chấp nhận được cho đầu ra ngay cả khi điều này vượt quá điện áp cung cấp, ví dụ bạn có thể vận hành bộ phận trên 3.3v nhưng kéo đầu ra xuống từ 5v.

Nhưng đây không phải là giải pháp cho vấn đề thực tế của bạn .


Bạn đã đúng, tôi đã phải kiểm tra các thủ tục khởi nghiệp của tôi. Tôi thường đặt tất cả các tham số I / O và khởi tạo mọi thứ sau đó tôi quan tâm đến trạng thái mặc định của các chân. Khi đặt pin làm chân đầu ra, nó sẽ tự động ở trạng thái THẤP. Dường như có đủ thời gian giữa pinMode () và digitalWrite () đầu tiên đặt chân ở trạng thái CAO, ngăn không cho rơle tham gia. Vì vậy, giải pháp của tôi bây giờ là gọi pinMode () và sau đó ngay lập tức đặt pin thành CAO.
BigWhale

Đặt nó ở mức cao trước khi bạn đặt nó thành đầu ra, không phải sau đó.
Chris Stratton

Bạn có một trình điều khiển cho cuộn dây rơle, có? Thêm điện trở pullup vào đầu vào của chúng, được thực hiện với nó.
CrossRoads

1
@CrossRoads điện trở kéo lên sẽ không giải quyết được vấn đề cũng như không cải thiện chút nào mọi thứ. Vấn đề là phần mềm của người hỏi đang làm sai thứ tự, khiến pin thấp trước khi nó tăng cao. Lái xe thấp nhầm sẽ vượt qua điện trở kéo lên của bạn. Và bên cạnh đó, đây có lẽ là cực âm của đèn LED quang điện tử - một thiết bị kéo lên thực sự sẽ không làm gì ở đó cả, điều cần thiết là không hoàn thành sai đường dẫn xuống đất.
Chris Stratton

Các pullups sẽ giữ cho các chân cao trong khi thiết bị đi qua quá trình thiết lập lại / khởi động và các chân đang nổi.
CrossRoads

0

Giải pháp đơn giản nhất là hoán đổi các kết nối của chân NO và NC của rơle.

Tùy chọn tiếp theo là đảo ngược logic lập trình cho pin đó. Bạn có thể thêm một vài hằng số

#define RELAY_ON LOW
#define RELAY_OFF HIGH

Để thiên vị các rơle thành một trạng thái nhất định trong khi đặt lại (trong khi chân đầu ra có trở kháng cao), bạn có thể thêm một điện trở kéo lên hoặc kéo xuống nếu cần. Chân IO sẽ dễ dàng chế ngự dòng điện bị rò rỉ qua điện trở và vẫn chuyển đổi rơle đúng cách.

Sử dụng 2 kỹ thuật này, bạn có thể chọn trạng thái mặc định của rơle là trạng thái không được cấp nguồn. Hoặc là vì nó được sử dụng hầu hết thời gian hoặc vì đó là tùy chọn không an toàn.


Tôi nghĩ rằng bạn bị mất điểm. OP không muốn rơle được kích hoạt khi thiết lập lại .
Elliot Alderson

0

Đây là một "Hướng dẫn sử dụng" cho rơle của bạn. Bạn thực sự không bao giờ nên thiết kế một hệ thống mà không có tất cả các bảng dữ liệu trước.

Từ sơ đồ được cung cấp ở đó có thể thấy rõ bạn chỉ cần kết nối trực tiếp bộ điều khiển của mình với các chân InX. Đó là, không có sơ đồ nào bạn nghĩ ra là cần thiết.

Vì đầu vào của bộ ghép quang có thể hoạt động ở chế độ bộ thu mở, tôi khuyên bạn chỉ nên giữ các chân tương ứng của uC của mình làm đầu vào / High-Z khi bạn muốn giữ rơle ở NC.

Vì tôi không quen thuộc với bộ điều khiển của bạn, đây là một số mã giả để giúp bạn:

Khởi tạo, cho mỗi chân điều khiển rơle:

Set direction to input
Set level to "0" (do NOT change direction to output)

Chuyển tiếp lệnh tới NO:

Set direction to output

Lệnh chuyển tiếp trở lại NC:

Set direction to input

Thông thường, một uC sẽ thức dậy với các chân của nó đã là đầu vào, vì vậy dòng đầu tiên của việc khởi tạo là dự phòng, nhưng sẽ luôn an toàn hơn khi thực hiện nó để đảm bảo hệ thống ở trạng thái đã biết. Hãy chắc chắn rằng bạn không có một số mã nào khởi tạo chung tất cả các chân cho một số giá trị như một phần của một số mã nồi hơi, người mới bắt đầu đã biết mắc lỗi này.

PS Trong thời gian mà bạn thực sự sẽ cần một số trình điều khiển hiện tại đảo ngược, chỉ cần sử dụng một cái gì đó như một ULN2003A !


3
"Một ULN" không phải là một phần. Hiển thị số phần thực tế, không ẩn nó trong liên kết
Chris Stratton

Đây là phần duy nhất của bộ truyện mà tôi từng sử dụng, vì vậy nó luôn là "chỉ là một ULN" đối với tôi.
Equilibrius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.