Làm cách nào tôi có thể sử dụng đầu vào 12 V trên chân Arduino kỹ thuật số?


38

Tôi đang tạo một bộ điều khiển cho hệ thống 12 V bằng bộ vi điều khiển Arduino Uno. Đối với các đầu ra, tôi đang sử dụng tấm chắn rơle để chuyển đổi các thành phần 12 V. Tôi có một công tắc bật tắt 12 V bật một số thành phần 12 V trong hệ thống và tôi muốn sử dụng tín hiệu kích hoạt tắt của cùng một công tắc này để gửi đến đầu vào kỹ thuật số Arduino. Tôi biết rằng Arduino chỉ có thể xử lý tối đa 5 V. Điều gì sẽ là cách tốt nhất để từ bỏ 12 V từ công tắc sang 5 V cho đầu vào?

EDIT: Hệ thống này được sử dụng trong xe hơi. Liệu cường độ của ắc quy xe có cần phải được hạ xuống bằng cách nào đó để không làm nổ các bộ phận?


3
cường độ của xe là không liên quan - các thành phần chỉ sử dụng nhiều như họ cần. Pin xe có khả năng cung cấp hàng trăm Amps, như cần thiết cho động cơ khởi động. Điều này không có nghĩa là luôn có hàng trăm ampe chảy và có thể làm hỏng mọi thứ. :)
KyranF

Câu trả lời:


44

Tin tốt! Điều này sẽ được giá rẻ! :-)

Một bộ chia điện trở đơn giản sẽ đưa 12 V xuống còn 5 V mà Arduino có thể tiêu hóa. Điện áp đầu ra có thể được tính là

VOUT=R2R1+R2VIN

Giá trị điện trở trong phạm vi 10 kΩ là một lựa chọn tốt. Nếu R2 của bạn là 10 kΩ thì R1 phải là 14 kΩ. Bây giờ 14 kΩ không phải là giá trị tiêu chuẩn, nhưng 15 kΩ là. Điện áp đầu vào của bạn sẽ là 4,8 V thay vì 5 V, nhưng Arduino sẽ thấy đó vẫn là mức cao. Bạn cũng có một chút khoảng không trong trường hợp 12 V nên hơi quá cao. Ngay cả 18 kΩ vẫn sẽ cung cấp cho bạn mức 4.3 V đủ cao, nhưng sau đó bạn phải bắt đầu nghĩ về 12 V một chút quá thấp. Điện áp vẫn sẽ được xem là cao? Tôi sẽ gắn bó với 15 kΩ.

chỉnh sửa
Bạn đề cập đến một môi trường ô tô, và sau đó bạn cần một số bảo vệ thêm. 12 V của chiếc xe không bao giờ khá 12 V, nhưng hầu hết thời gian cao hơn, với các đỉnh cao hơn vài volt so với danh nghĩa 12 V. (Trên thực tế, danh nghĩa giống như 12,9 V, ở mức 2,15 V mỗi ô.) Bạn có thể đặt zener 5 V. Diode song song với R2, và điều này sẽ cắt bất kỳ điện áp nào cao hơn 5 V. của zener. Nhưng điện áp zener thay đổi theo dòng điện, và ở dòng điện đầu vào thấp, các điện trở cung cấp cho bạn nó sẽ cắt ở điện áp thấp hơn. Một giải pháp tốt hơn là có một diode Schottky giữa đầu vào của Arduino và nguồn cung cấp 5 V. Sau đó, bất kỳ điện áp đầu vào nào cao hơn khoảng 5,2 V sẽ làm cho diode Schottky tiến hành và điện áp đầu vào sẽ bị giới hạn ở mức 5,2 V. Bạn thực sự cần một diode Schottky cho điều này, một diode PN thông thường có 0.

Bộ ghép quang tốt hơn của
Michael là một lựa chọn tốt, mặc dù đắt hơn một chút. Bạn thường sẽ sử dụng một bộ ghép quang để cách ly đầu vào với đầu ra, nhưng bạn cũng có thể sử dụng nó để bảo vệ đầu vào như bạn muốn ở đây.

nhập mô tả hình ảnh ở đây

Cách thức hoạt động: dòng điện đầu vào chiếu sáng đèn LED hồng ngoại bên trong, gây ra dòng điện đầu ra thông qua bộ phát quang. Tỷ lệ giữa hiện tại đầu vào và đầu ra được gọi là TLB , cho Tỷ lệ chuyển giao hiện tại. Các CNY17 có tối thiểu CTR 40%, có nghĩa là bạn cần 10 mA đầu vào cho 4 mA đầu ra. Hãy đi cho đầu vào 10 mA. Khi đó R1 phải là (12 V - 1,5 V) / 10 mA = 1 kΩ. Điện trở đầu ra sẽ phải giảm 5 V ở 4 mA, khi đó sẽ là 5 V / 4 mA = 1250. Tốt hơn là nên có giá trị cao hơn một chút, dù sao điện áp sẽ không giảm hơn 5 V. 4,7 kΩ sẽ giới hạn dòng điện trong khoảng 1 mA.

Vcc là nguồn cung cấp 5 V của Arduino, Vout đi đến đầu vào của Arduino. Lưu ý rằng đầu vào sẽ bị đảo ngược: nó sẽ ở mức thấp nếu có 12 V, cao khi không có. Nếu bạn không muốn điều đó, bạn có thể trao đổi vị trí của đầu ra của bộ ghép quang và điện trở kéo lên.

chỉnh sửa 2
Làm thế nào không giải pháp opt optpler giải quyết vấn đề quá điện áp? Bộ chia điện trở là phép đo tỷ lệ: điện áp đầu ra là một tỷ lệ cố định của đầu vào. Nếu bạn đã tính cho 5 V out ở 12 V in, thì 24 V in sẽ cho ra 10 V out. Không ổn, do đó các diode bảo vệ.

Trong mạch opt optpler bạn có thể thấy rằng phía bên phải, kết nối với chân đầu vào của Arduino không có điện áp nào cao hơn 5 V cả. Nếu bộ ghép quang được bật thì bóng bán dẫn sẽ vẽ dòng điện, tôi đã sử dụng 4 mA trong ví dụ trên. Một 1,2 kΩ sẽ gây ra sụt áp 4,8 V, do Định luật Ohm (điện trở thời gian hiện tại = điện áp). Khi đó điện áp đầu ra sẽ là 5 V (Vcc) - 4,8 V trên điện trở = 0,2 V, đó là mức thấp. Nếu dòng điện sẽ thấp hơn thì điện áp rơi cũng sẽ nhỏ hơn và điện áp đầu ra sẽ tăng. Chẳng hạn, dòng điện 1 mA sẽ làm giảm 1,2 V và đầu ra sẽ là 5 V - 1,2 V = 3,8 V. Dòng tối thiểu bằng không. Sau đó, bạn không có điện áp trên điện trở và đầu ra sẽ là 5 V. Đó là mức tối đa, có '

Điều gì nếu điện áp đầu vào sẽ trở nên quá cao? Bạn vô tình kết nối pin 24 V thay vì 12 V. Sau đó, dòng LED sẽ tăng gấp đôi, từ 10 mA đến 20 mA. TLB 40% sẽ gây ra dòng điện đầu ra 8 mA thay vì 4 mA được tính toán. 8 mA qua điện trở 1,2 kΩ sẽ giảm 9,6 V. Nhưng từ nguồn cung cấp 5 V sẽ âm và điều đó là không thể; bạn không thể xuống thấp hơn 0 V ở đây. Vì vậy, trong khi bộ ghép quang rất muốn vẽ 8 mA, điện trở sẽ hạn chế điều đó. Dòng điện tối đa xuyên qua nó là khi toàn bộ 5 V nằm ngang qua nó. Đầu ra sau đó sẽ thực sự là 0 V và 5 V / 1,2 kΩ = 4.2 mA hiện tại. Vì vậy, bất cứ nguồn điện nào bạn gắn vào dòng điện đầu ra sẽ không tăng cao hơn mức đó và điện áp sẽ nằm trong khoảng từ 0 V đến 5 V. Không cần bảo vệ thêm nữa.

Nếu bạn mong đợi quá điện áp, bạn sẽ phải kiểm tra xem đèn LED của bộ quang điện có thể xử lý dòng điện tăng hay không, nhưng 20 mA sẽ không phải là vấn đề đối với hầu hết các bộ ghép quang (chúng thường được đánh giá ở mức tối đa 50 mA), và bên cạnh đó, đó là gấp đôi điện áp đầu vào, có lẽ sẽ không xảy ra IRL.


Hệ thống này được sử dụng trong xe hơi. Liệu cường độ của ắc quy xe có cần phải được hạ xuống bằng cách nào đó để không làm nổ các bộ phận? Tôi là người mới tại đây. Cảm ơn
DW

@DW Uh-oh, xe hơi! :-(. Tôi sẽ cập nhật câu trả lời của tôi.
stevenvh

@DW - Không, dung lượng ắc quy của xe không thành vấn đề. Dòng điện sẽ được xác định bởi điện áp (12 V) và điện trở (tổng cộng 25 kohm). Sau đó, theo định luật Ohm, hiện tại sẽ là 12 V / 25 kohm = 0,5 mA. Không có vấn đề gì nếu pin là loại 40 Ah hoặc loại 400 Ah; các điện trở sẽ không cho phép nhiều hơn.
stevenvh

Thật tuyệt. Cảm ơn bạn đã giúp đỡ. Chỉ tò mò nhưng sẽ làm một cái gì đó như công việc này? robotshop.com/ca/productinfo.aspx?pc=RB-Spa-750&lang=en-US
DW

2
@stevenvh Cảm ơn Steve. Tôi mong muốn được trở lại để ưu ái cho một người mới biết về điện tử một khi tôi tự tin với nó. Cảm ơn
DW

15

Một cách tốt để cách ly tín hiệu chuyển đổi 12V sẽ là truyền tín hiệu qua bộ ghép opto. Các mạch sẽ được cấu hình tương tự như sau.

nhập mô tả hình ảnh ở đây

Vi trong sơ đồ đại diện cho điện áp 12V trong mạch của bạn được chuyển đổi bằng công tắc (S1). Chọn R1 để giới hạn dòng điện qua phần D1 của bộ ghép opto ở mức nằm trong xếp hạng của thành phần mà bạn chọn.

Bộ ghép Opto không phải là bộ phận nhanh nhất trên thế giới, đặc biệt là bộ rẻ nhất, nhưng trong trường hợp hoạt động chậm như công tắc điều khiển của con người, tốc độ của bộ ghép rất ít đáng quan tâm.


15

Bạn cũng có thể sử dụng một diode và một điện trở, như sau:

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

Tôi sẽ làm cho điện trở một cái gì đó khá cứng, nếu không bạn sẽ bị mất rất nhiều năng lượng từ mạch này. Cái hay của mạch này (so với bộ chia điện áp) là nó không quan tâm đến việc điện áp ban đầu của bạn là 12V, 14V hay 15V: nó sẽ là 5V (thực sự là 5.2-5.3V tùy thuộc vào diode) bất kể điện áp đầu vào.


Điều đó khá thông minh, +1 cho sự độc lập điện áp!
Florian Castellane

5
Cẩn thận với quá điện áp trên pin đánh giá tối đa tuyệt đối. Ví dụ: biểu dữ liệu ATmega32u4: Điện áp trên bất kỳ Ghim nào đối với Mặt đất (8): -0,5V đến VCC + 0,5V. Nếu sử dụng một diode thông thường, điện áp sẽ lớn hơn VCC + 0,5V nếu sử dụng bất cứ thứ gì nhỏ hơn điện trở 170kOhm. Tôi nghĩ rằng điốt Schottky là an toàn nhất cho việc này.
cyberponk

13

Để độc lập điện áp, sử dụng điện trở để điều chỉnh dòng điện và Zener để điều chỉnh điện áp, như sau:

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

Với điện trở 30k, điều này sẽ tạo ra 4,99V và chỉ sử dụng khoảng 234uA @ 12Vin.
Trong trường hợp này:
R1 đang tiêu thụ 234uA x (12V - 4.99V) = 1.64mW
D1 đang tiêu thụ 234uA x 4.99V = 1.17mW

Tổng công suất tiêu thụ: 2,81mW (khi đầu vào cao)


Đối với bất cứ điều gì có thể nhìn thấy, tôi sẽ sử dụng bộ chia điện trở LED + nối tiếp để đưa ra tín hiệu 5V ở mức 12 V và đặt diode zener song song với nửa dưới của bộ chia và đèn LED để bảo vệ chống quá áp. Bằng cách đó, đèn LED sáng lên khi bạn có tín hiệu đầu vào và đưa ra phản hồi trực quan.
Goswin von Brederlow

@GoswinvonBrederlow bạn có thể vui lòng rút mạch led / diode / mạch điện trở ra không?
bỏng

Trong sơ đồ trên, thiết lập R1 đến 770 Ohm và thêm 330Ohm và đèn LED màu đỏ song song với diode Zener. Sau đó, ở đầu vào 12V ~ 9mA sẽ chảy qua đèn LED và bạn nhận được tín hiệu đầu ra 5V. Nếu điện áp đầu vào tăng lên mặc dù diode zener sẽ giới hạn tín hiệu đầu ra ở mức 5.1V và bảo vệ cả arduino và LED.
Goswin von Brederlow

-2

Hơi muộn một chút nhưng trong xe tôi dùng LM7805. Công trình tuyệt vời và giá rẻ.


1
Không rẻ bằng 2 điện trở hoặc một điện trở và một diode.
Dave Tweed

7
@TonNies Bạn đã trả lời sai câu hỏi. OP không tìm kiếm điện áp cung cấp cho bộ điều khiển của mình. Đó là nhiều hơn về điều hòa tín hiệu.
Ariser

1
Không có gì sai khi sử dụng LM7805 cho tín hiệu chuyển đổi mức 12 v.
chugadie

1
@chugadie: Nhưng một cách tiếp cận quá mức rất không phổ biến và tương đối "tốn kém" nếu tất cả những gì bạn muốn là hạ thấp 12V xuống cho một pin IO.
Rev1.0
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.