Mục lục:

Cách đọc nhiều công tắc với một pin MCU: 4 bước
Cách đọc nhiều công tắc với một pin MCU: 4 bước

Video: Cách đọc nhiều công tắc với một pin MCU: 4 bước

Video: Cách đọc nhiều công tắc với một pin MCU: 4 bước
Video: Thông số cơ bản của pin 18650.Cách đóng pin thành khối cho người mới bắt đầu 2024, Tháng mười một
Anonim
Cách đọc nhiều công tắc với một pin MCU
Cách đọc nhiều công tắc với một pin MCU

Bạn đã bao giờ lo lắng về (các) dự án và dự án tiếp tục phát triển và phát triển, trong khi bạn thêm nhiều thứ vào đó (chúng tôi gọi đó là Chủ nghĩa sáng tạo Feaping)? Trong một dự án gần đây, tôi đang xây dựng một máy đo tần số và thêm một bộ tạo tín hiệu / tổng hợp tần số năm chức năng. Tôi sớm gặp phải nhiều công tắc hơn số lượng chân cắm sẵn có, vậy một người đàn ông phải làm gì?

Tuy nhiên, tôi đã sớm có thêm bảy công tắc nữa trên Funbox của mình (vâng, đó là những gì tôi gọi là trình tạo chức năng của mình… Tôi biết, tôi không có óc sáng tạo) và đây là một hướng dẫn ngắn cho bạn cách bạn có thể làm như vậy. Nó không yêu cầu bất kỳ thanh ghi dịch chuyển hoặc vi mạch cụ thể. Trên thực tế, nó cũng không yêu cầu vi điều khiển, nếu các chất bán dẫn rời rạc là cách bạn cuộn. Đây là một cách bạn có thể đọc / quản lý nhiều bộ chuyển mạch bằng cách sử dụng một chân duy nhất trên AVR của mình (hoặc bộ vi điều khiển khác… Tôi đã nghe nói có những bộ vi điều khiển khác ngoài AVR, nhưng tôi không thể tưởng tượng được…).:)

Bước 1: Những điều cần thiết (không thực sự)

Để thực hiện được điều này, bạn sẽ cần một vài thành phần. Nó giúp có vô số công tắc mà bạn phải quản lý. Bạn cũng sẽ cần một số điện trở và một bộ vi điều khiển có ADC (Chuyển đổi tương tự sang kỹ thuật số) hoặc một số cách khác mà bạn muốn cho biết rằng đã có một công tắc được kích hoạt và công tắc đó là công tắc nào.

Nếu bạn muốn, bạn có thể sử dụng bộ dao động điều khiển bằng điện áp để chỉ ra điều này, có thể bằng một số đèn nhấp nháy hoặc cách khác, bằng âm thanh. Trong khả năng này, tôi sẽ giả vờ rằng chúng tôi đang sử dụng AVR, nhưng trong thế giới của bạn, bạn có thể giả vờ bất cứ điều gì khiến bạn hạnh phúc. Tôi nhớ Bob Ross.

Bước 2: Bộ chia điện áp

Bộ chia điện áp
Bộ chia điện áp
Bộ phân áp
Bộ phân áp

Về cơ bản, cách chúng ta sẽ làm điều này là sử dụng một kỹ thuật và mạch được gọi là bộ chia điện áp. Bộ chia điện áp, như bạn có thể đã đoán, chia điện áp V, in, cho một số giá trị mà bạn xác định. Bạn có thể phân chia điện áp với một số thành phần, bao gồm tụ điện và cuộn cảm, nhưng ở đây tôi sẽ làm điều đó với điện trở tốt. Ý tưởng Những gì chúng tôi đang làm là đặt hai thành phần mắc nối tiếp sẽ gây ra sự sụt giảm điện áp trên từng thành phần. Nhìn vào bức tranh đầu tiên nếu tôi không có ý nghĩa. Có một sự khác biệt tiềm năng là 9V từ đường sắt đến đường sắt. Trong khoảng từ 9V đến 0V có hai điện trở mắc nối tiếp. Mỗi cái trong số này sẽ trải qua một sự sụt giảm điện áp trên chính nó, tùy thuộc vào điện trở, như bạn có thể nhớ lại từ V = IR. Nếu bạn thực hiện phép đo điện áp giữa hai điện trở, bạn sẽ nhận được một số giá trị trong khoảng từ 9V đến 0V, tùy thuộc vào mức điện áp đã giảm trên điện trở thứ nhất và còn lại bao nhiêu để giảm trên điện trở thứ hai, trước 0V. Có một công thức đơn giản để tính toán điện áp rơi trên một điện trở trong trường hợp này và nó trông giống như thế này. Gọi điện áp trên điện trở 1 (R1) là V1 và điện áp trên điện trở hai (R2) là V2. Vì tôi không thể sử dụng định dạng nữa, hãy xem hình 2 bên dưới để biết công thức… Vì vậy, trong bộ chia điện trở của chúng tôi, điện áp Vout có thể được xác định bằng công thức của chúng tôi cho V2 (vì chúng tôi sẽ tham chiếu GND thành 0V). Điều này có liên quan gì đến việc có một loạt các công tắc được phát hiện từ một chân? Vâng, lật trang và tôi sẽ chỉ cho bạn!

Bước 3: Thang phân chia điện áp

Thang phân chia điện áp
Thang phân chia điện áp

Bây giờ, giả sử chúng ta có tất cả các công tắc của mình, có thể là sáu hoặc tám hoặc mười sáu, tất cả đều được kết nối qua các điện trở mà mỗi công tắc hoạt động như một bộ chia điện áp sao cho khi trạng thái của chân công tắc thay đổi, điện áp được đọc và dựa trên mức điện áp, chúng ta có thể biết công tắc nào vừa được kích hoạt. Nhìn bên dưới. Trong hình bên dưới, tôi đã kết nối hai khối công tắc. Khối trên cùng có hai công tắc và khối dưới cùng có năm công tắc. Bạn có thể kết nối các công tắc bật tắt, tạm thời, xúc giác, v.v. riêng biệt của mình theo cách tương tự. Điều quan trọng cần chú ý là điện trở mà công tắc của bạn được kết nối. Trong ví dụ của tôi, tôi đã gần như tăng gấp đôi điện trở của điện trở tiếp theo để tạo ra khoảng cách điện áp dễ đo và không nhầm với công tắc trước hoặc sau. Nếu bạn chưa để ý trước đây, hãy nhìn lại và nhận ra rằng chúng ta đang quay lại với người bạn cũ của chúng ta là bộ chia điện trở. Điện trở đầu tiên, 10k ohm, được kết nối với 5V và điện trở thứ 2 - điện trở sẽ xác định Vngoài đối với chân SWITCH_ADC, được kết nối với mỗi công tắc và do đó, mỗi công tắc được liên kết với một điện áp Vout cụ thể có thể được đọc từ chân ADC được kết nối tại SWITCH_ADC. Tiếp theo, xác định Vout dự kiến từ mỗi công tắc như vậy

Vout = Vin * (R2 / (R1 + R2))

cho công tắc một:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0,048 = 0,24V hoặc 240 mV

cho công tắc hai:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9V hoặc ~ 900mV

vân vân.. Hãy tự do thay thế các giá trị của riêng bạn cho R2 nếu bạn chỉ có sẵn một số điện trở nhất định… Điều quan trọng ở đây là giữ khoảng cách điện áp đủ rộng giữa các công tắc để mọi sai số trên ADC đều thắng ' t đặt bạn vào điện áp dự kiến từ một công tắc lân cận. Tôi đã tìm thấy điều dễ dàng nhất để làm là xây dựng thang chia và đặt một đồng hồ vạn năng / vôn kế vào chân ADC và nhấn từng chân và xem bạn nhận được những giá trị nào. Họ sẽ khá đúng với những gì bạn tính toán. Khi bạn có tất cả các giá trị điện áp dự kiến từ mỗi công tắc sử dụng một điện trở cụ thể, thì bạn có thể yêu cầu MCU đọc chân ADC và so sánh với giá trị đã biết của bạn để xác định công tắc nào đã được nhấn. Ví dụ: giả sử bạn đã đăng ký một quy trình dịch vụ ngắt sẽ được gọi bất cứ khi nào có thay đổi được phát hiện trên chân ADC. Bên trong ISR đó, bạn có thể đọc ADC và so sánh giá trị đó với bảng chuyển đổi của mình. Nếu bạn đang sử dụng giá trị ADC 8 bit, điện áp của bạn sẽ được chuyển đổi thành một số từ 0 đến 255 tương ứng với điện áp từ 0V đến 5V. Điều này giả sử bạn đã cấu hình ADC của mình theo cách này.

Bước 4: Tóm tắt

Vì vậy, bây giờ bạn nên biết cách tiết kiệm khi sử dụng các chân GPIO cho các thiết bị chuyển mạch. Bất cứ khi nào bạn sắp hết các chân GPIO, hoặc hầu như không có bất kỳ chân nào để bắt đầu, hoặc nếu bạn nhận ra mình đang sử dụng một dãy công tắc, bộ chia điện trở là cách để lưu các chân GPIO của bạn trong khi vẫn cung cấp cơ chế mạnh mẽ để phát hiện truy cập chuyển đổi.

Đề xuất: