Tại sao một số chân có dấu `~` bên cạnh số của chúng?


32

Tôi đã nhìn vào Arduino Uno của tôi và tôi nhận thấy biểu tượng đó bằng chân kỹ thuật số 11, 10, 9, 6, 5, và 3. Chúng có nghĩa là gì? Điều này có ảnh hưởng đến cách thức hoạt động không? Tôi không thể sử dụng các chân này cho các tình huống nhất định?


19
Biểu tượng dấu ngã có nghĩa là "khoảng". Như trong, "đây là khoảng 11 pin". Trong quá trình mfg, các chân có thể thay đổi xung quanh một chút. Hiếm khi pin 11 chính xác là 11. Thông thường, nó nhiều hơn hoặc ít hơn một chút so với 11. Các chân có xu hướng thay đổi xung quanh sẽ được biểu thị bằng ký hiệu ~. :)

6
@AnnonomusPerson David là người lãnh đạm, điều này không rõ ràng ngay lập tức nếu bạn không quen với sơ đồ chân và lượt thích.
Shamtam

7
@Shamtam: Hoặc nếu bạn không quen thuộc với David :)
Chris Laplante

Câu trả lời:


31

Thư giãn. Đừng lo lắng. Các chân này được gọi PWMvà giống như các chân khác, ngoại trừ chúng có "phần thưởng thêm".


Một số sử dụng từ trang web của Arduino :

  • Làm mờ đèn LED
  • Mô phỏng một đầu ra tương tự. Đầu ra vẫn được chuyển đổi kỹ thuật số từ 0V đến 5V. Tuy nhiên, bộ lọc thông thấp (tụ điện và điện trở) để mô phỏng điện áp tương tự.
  • Tạo tín hiệu âm thanh.
  • Cung cấp điều khiển tốc độ thay đổi cho động cơ.
  • Tạo tín hiệu điều chế, ví dụ để điều khiển đèn LED hồng ngoại cho điều khiển từ xa.

Làm thế nào nó hoạt động:

Các chân PWM được điều khiển bởi bộ định thời trên chip có thể tự động chuyển đổi các chân với tốc độ khoảng 490Hz. "Điều chế độ rộng xung" (PWM) là thời gian pin bật hoặc tắt trong một chu kỳ của tần số đó. Điều này có thể làm mờ một đèn LED bằng cách tạo ảo giác ở độ sáng bằng một nửa so với trước đây, nơi nó thực sự nhấp nháy rất nhanh. Hình ảnh của các chu kỳ nhiệm vụ khác nhau.

Khi có chu kỳ thuế 25%, đó là vào một lần thời gian. Nếu bạn sử dụng cho đèn LED, nó sẽ xuất hiện khoảng 1/4 dưới dạng sáng [cho hoặc nhận]. (Lưu ý: như một số người chỉ ra rằng điều này không thực sự tỷ lệ thuận nhưng hãy để nó theo cách đơn giản. EX: 25% không phải lúc nào cũng bằng 1/4 độ sáng.)

(Nếu bạn thực sự am hiểu về điện, có lẽ bạn có thể thêm một tụ điện để biến nó thành một đầu ra tương tự.)


Làm thế nào để sử dụng các chân này để đầu ra:

Đầu tiên, bạn cần xác định pin là đầu ra. Sau đó, bạn sử dụng analogWrite(ledPin, 128); để bắt đầu nó. Đây ledPinlà chân PWM mà bạn muốn khởi động PWM và 128nên được thay thế bằng một số giữa 0255; 0: 0% duty cycle(tắt pin hoàn toàn) và 255: 100% duty cycle. (bật pin hoàn toàn)

Nguồn: http://www.arduino-tutorials.com/arduino-pwm/


Tại sao tôi không thể bật và tắt đèn thật nhanh trong mã của mình?:

Về mặt kỹ thuật, bạn có thể, tuy nhiên, có một số vấn đề:

  • Nó có thể không chính xác như sử dụng các mạch cứng với Arduino
  • Nó đơn giản hơn chỉ cần gõ hướng dẫn thay vì có nhiều câu lệnh "nếu"

Sẽ không thực sự tạo ra nhiều sự khác biệt nếu mục đích duy nhất của Arduino là tạo ra tín hiệu PWM. Tuy nhiên, nếu bạn đặt bất kỳ độ trễ nào dài hơn 50 MS trong vòng lặp chính, nó sẽ làm rối loạn thời gian. Với phương pháp phần mềm, bạn sẽ muốn loại bỏ bất kỳ chức năng "trì hoãn" nào vì Arduino chỉ chạy trên một luồng (nó chỉ có thể thực hiện một việc một lúc). Nếu bạn biết những gì bạn đang làm, nó sẽ không tạo ra sự khác biệt lớn như vậy, nhưng nếu bạn có thêm một pin với PWM, bạn sẽ lãng phí thời gian của mình với cách tiếp cận phần mềm.


Như những người khác đã chỉ ra:

Bạn vẫn cần một điện trở cho các mạch của bạn để hạn chế dòng điện và điện áp. Bạn không thể bỏ qua điều này.


1
Tôi không biết ý của bạn là gì bởi "sức mạnh xử lý" (hoặc bất cứ cụm từ nào được cho là có nghĩa). PWM hoạt động vì nó được kích hoạt bởi các bộ định thời đang chạy độc lập với mã đang chạy.
baldengineer

@ JamesC4S Ý tôi là nó làm cho mã tổng thể chậm hơn nếu bạn thêm độ trễ và nó sẽ "Bật" và "tắt". Bộ xử lý chỉ có thể làm rất nhiều thứ mỗi giây trước khi nó quá nóng để nó kiểm soát tốc độ của nó.
Chim cánh cụt ẩn danh

@AnnonomusPerson Bạn cần phải rõ ràng hơn nhiều trong các câu trả lời bạn đang đưa ra. Tôi vẫn không thấy lời giải thích của bạn có liên quan gì đến "sức mạnh xử lý". Ví dụ, bạn có thể viết các thường trình PWM không sử dụng delay (), ví dụ sử dụng millis (), điều này sẽ có tác động tối thiểu đến tốc độ thực thi cho phần còn lại của mã.
baldengineer

1
@AnnonomusPerson: Tôi sẽ nói rằng có hai cách để thực hiện mã PWM: một trong hai cách có thể để bộ xử lý thực hiện PWM trong một vòng lặp mà không có gì khác ngoại trừ có thể quyết định khi nào thoát ra, hoặc người nào khác có thể có ngắt thời gian-tick thực hiện các động cơ PWM. Trong tình huống trước đây, bộ xử lý sẽ không thể làm bất cứ điều gì khác trong khi điều khiển PWM đang xảy ra; sau này, sẽ có giới hạn về độ chính xác và độ chính xác của thời gian PWM. Các mạch PWM phần cứng cho phép một con chip tạo ra các dạng sóng PWM sạch, chính xác trong phạm vi một phần triệu giây trong khi thực hiện các việc khác.
supercat

Lưu ý rằng nhờ cách hoạt động của tầm nhìn, một đèn LED với 1/4 DC (hoặc bất kỳ tỷ lệ nào khác) sẽ không nhất thiết phải xuất hiện phần tương ứng của độ sáng đầy đủ.
Ignacio Vazquez-Abrams

7

Một quan niệm sai lầm phổ biến về các chân PWM là khi sử dụng PWM, không cần thiết phải sử dụng các điện trở giới hạn hiện tại (ví dụ với đèn LED).

Đây không phải là sự thật. Các chân PWM nên được coi là chân kỹ thuật số, được bật và tắt tự động. Điều này có nghĩa là chúng đi đến cùng điện áp CAO như bất kỳ chân nào khác.

Khi sử dụng đèn LED với PWM, bạn vẫn phải sử dụng điện trở giới hạn hiện tại. Khi sử dụng động cơ với PWM, bạn nên (hầu như luôn luôn) sử dụng bóng bán dẫn.


2
@AnnonomusPerson Không, điều đó không chính xác. Bạn vẫn sẽ cần các bộ hạn chế hiện tại cho đèn LED ngay cả khi bạn có đầu ra analog thực sự. Đèn LED cần nguồn hiện tại không đổi, không phải nguồn điện áp không đổi.
baldengineer

3
Bạn có thể nhận được đèn LED với điện trở giới hạn dòng điện tích hợp. Tôi đã rất thất vọng khi tôi yêu cầu một đèn LED ở Maplin và một điện trở phù hợp để tắt nó khi họ nói với tôi rằng họ có những cái chạy trực tiếp từ 12V. Heh, chỉ cần đợi cho đến khi họ thử đóng gói một bóng bán dẫn vào một gói để tạo ra một cổng AND hoặc một cái gì đó.
Andrew Morton
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.