Giỏ hàng hiện tại chưa có sản phẩm nào!
Giỏ hàng hiện tại chưa có sản phẩm nào!
Tín hiệu analog trong lập trình Arduino sẽ được định nghĩa và cài đặt với nhiều mức khác nhau. Tùy vào nhu cầu sử dụng mà chúng ta có thể cài đặt mức điện áp phù hợp. Chẳng hạn, khi cần điều khiển những thiết bị ngoại vi 3.3V thì chúng ta cài đặt cho điện áp ngõ ra tương ứng. Với cách cài đặt như vậy bạn có thể đưa ra mức điện áp thích hợp. Ngoài ra, cũng có thể điều khiển tốc độ động cơ bằng tín hiệu analog. Như vây, để hiểu được các cài đặt và sử dụng như thế nào, chúng ta xem kỹ bài viết cụ thể như bên dưới.
NỘI DUNG CỦA BÀI VIẾT
|
1. TÍN HIỆU ANALOG TRONG ARDUINO ĐƯỢC HIỂU NHƯ THẾ NÀO
Trong bài học số 2 chúng ta đã hiểu được cách điều khiển tín hiệu số (tín hiệu digital). Với tín hiệu số chúng ta sẽ điều khiển bằng mức cao (HIGH) hoặc mức thấp (LOW). Nghĩa là chỉ có 2 mức giá trị rõ ràng là 0V hoặc 5V. Tuy nhiên, trong một số ứng dụng phải cần có những tín hiệu tương tự mới có thể tạo được điện áp điều khiển ở mức giữa như là 2.3V. Việc tạo ra được điện áp 2.3 Volt hoặc những điện áp khác đồng nghĩa với việc tạo ra một dạng tín hiệu tương tự tại ngõ ra. Cách tạo ra những tín hiệu như vậy, cũng có nghĩa là chúng ta đang điều chế tín hiệu analog trong lập trình Arduino,
Trong lập trình arduino thì điện áp tương tự được đưa vào hoặc lấy ra từ các chân có ký hiệu là A. Ví dụ như A0, A1, A2… Cụ thể trên bo arduino uno sẽ là các chân số 3, 5, 6, 9, 10, 11.
Về nguyên tắc của điện áp tương tự ( điện áp analog) thì giá trị có thể từ 0 đến 5V các bạn được phép đặt ra tùy ý. Tuy nhiên đối với arduino, để đặt được mức điện áp đó thì cần phải chuyển đổi từ một giá trị định danh của thanh ghi 8 bit. Nghĩa là muốn lấy ra giá trị điện áp 0V bạn phải khai báo giá trị 0, còn muốn điện áp là 5V thì bạn phải khai báo 255, còn muốn giá trị điện áp là 2.5V thì khai báo giá trị là 127. Như vậy, chúng ta sẽ có một bảng chuyển đổi giá trị từ 0 đến 5V tương ứng với giá trị của thanh ghi 8bit là từ 0 đến 255.
Các bạn có thể xem đồ thị như bên dưới để hiểu được cách định danh.
Hoặc bạn vẫn có thể thực hiện quy tắc tam suất để có thể đưa ra phép toán tính được giá trị định danh cho điện áp bạn mong muốn.
Ví dụ như bên dưới:
5V – – > 255
2V – – > ?
Bạn chỉ việc thực hiện công thức: ? = 2 * 255 : 5 = 102
Hay nói cách khác, muốn tính giá trị định danh của một mức điện áp nào đó, chỉ cần lấy giá trị điện áp mong muốn nhân với 51. (Vì 255 : 5 = 51).
Có một điều cần lưu ý là mức 5V tương ứng với giá trị định danh là 255. Đây chính là giá trị lớn nhất của thanh ghi 8bit. Ngoài ra vẫn có một lệnh để thay đổi mức 5V này. Để thay đổi mức điện áp này bạn sẽ thực hiện lệnh analogReference. Với việc thay đổi mức điện áp <5V bạn sẽ làm cho giá trị điện áp chính xác hơn.
Trong ví dụ trên, với mức điện áp 2V thì chúng ta có giá trị định danh là 102. Như vậy giá trị định danh được sử dụng ở đâu?
Giá trị định danh các bạn sẽ được sử dụng trong lệnh analogWrite. Do đó, muốn xuất mức điện áp tương tự 2V ra chân số 3 thì bạn thực hiện lệnh analogWrite(3, 102);
Trong đó: chân số 3 là tên chân analog, 102 là giá trị định danh của 2V.
2. CÁCH ĐỊNH NGHĨA MỨC ĐIỆN ÁP CHÂN ANALOG
Cú pháp: analogReference(<Kiểu định nghĩa>);
Chức năng: đặt lại mức điện áp tối đa khi đọc dữ liệu từ chân analog.
Ý nghĩa: Mặc định mức điện áp tối đa cho arduino là 5V. Tuy nhiên trong một số trường hợp bạn đọc giá trị từ ngõ vào thấp hơn (ví dụ từ 0- 3V) thì cần thay đổi mức điện áp tối đa xuống còn 3V để có khoảng giá trị ngắn hơn, chính xác hơn
+ Kiểu định nghĩa:
Ví dụ:
analogReference(INTERNAL2V56); // Đặt lại điện áp tối đa cho 2.56V cho Arduino Mega
3. HÀM XUẤT NHẬP DỮ LIỆU ANALOG
3.1 Hàm đọc dữ liệu tương tự analogRead()
Cú pháp: < Tên biến nhận giá trị > = analogRead (< Chân đọc điện áp >);
Chức năng: đọc giá trị điện áp từ một chân ADC để lưu vào biến chương trình. Chân ADC là những chân có ký hiệu chữ A ở đầu. Ví dụ A5, A0.
Ví dụ:
Gia_tri = analogRead (A0) // Đọc giá trị điện áp từ chân A0 và lưu giá trị vào biến Gia_tri
3.2 Hàm xuất dữ liệu tương tự ra chân arduino – analogWrite()
Cú pháp: analogWrite(<Tên chân xuất dữ liệu>,< Giá trị định danh của mức điện áp cần xuất >);
Chức năng: hàm analogWrite được sử dụng để xuất ra ngoài xung PWM. Thường được dùng để điều khiển sáng tối led hoặc chiều quay động cơ.
Kết quả: Dữ liệu xuất ra xung PWM nằm trong khoảng từ 0 – 255, tương ứng với mức duty cycle từ 0% đến 100%.
Ví dụ:
analogWrite (11, 64); //Xuất điện áp 1.277V ra chân số 11
4. ỨNG DỤNG SỬ DỤNG TÍN HIỆU ANALOG ĐIỀU KHIỂN BÓNG ĐÈN
Viết chương trình điều khiển 1 bóng đèn led sáng tắt bằng tín hiệu analog?
Đoạn chương trình cho mạch điều khiển trên
int LED=A0; setup(){ } void loop() { analogWrite(LED,102); //xuất điện áp 2V ra chân LED để cho sáng delay(500); analogWrite(LED,0); //xuất điện áp 0V ra chân LED để cho tắt delay(500); }
Để lại một bình luận