Ngoài làm cái mạch thì phải chuẩn bị phần code cho Arduino nữa..
Phần code thực thi vài nhiệm vụ như sau.
- Khai báo các pinout, các thư viện có sử dụng.
- Phần xuất tín hiệu, điều khiển LCD.
- Phần nhận tín hiệu encoder & đếm.
1. Khai báo sử dụng thư viện.
Mã:
/*
Use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.
The circuit:
* LCD RS pin to digital pin 8
* LCD En pin to digital pin 9
* LCD D4 pin to digital pin 4
* LCD D5 pin to digital pin 5
* LCD D6 pin to digital pin 6
* LCD D7 pin to digital pin 7
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
// RS EN D4 D5 D6 D7
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7);
Sử dụng thư viện LCD của Arduino. Khai báo#include <LiquidCrystal.h>
Khởi tạo biến cho LCD, sử dụng các pinout tương RS EN D4 D5 D6 D7 ứng với các pin 9 8 4 5 6 7.LiquidCrystal lcd( 8, 9, 4, 5, 6, 7);
2. Khai báo pinout
Mã:
void setup()
{
// setup the LCD's number of columns and rows:
lcd.begin(16, 2);
// startup LOGO
lcd.setCursor(4,0);
lcd.print("CNCProVN");
lcd.setCursor(2,1);
lcd.print("Pham Duy Anh");
delay(1000);
lcd.clear();
// setup pin in/out
pinMode(encoderPinA, INPUT);
pinMode(encoderPinB, INPUT);
attachInterrupt(1, doEncoder, RISING); //trigger when the pin goes from low hight
}
Khởi tạo lcd 16x2 (16 ký tự, 2 dòng)lcd.begin(16, 2);
Khai báo pinout. pinMode(pin, mode)
Với pin là số pin trên Arduino, mode là chế độ làm việc: INPUT, OUTPUT hoặc INPUT_PULLUP.
* INPUT là chế độ làm việc nhận tín hiệu.
* INPUT_PULLUP là chế độ làm việc nhận tín hiệu có điện trở kéo lên.
* OUTPUT là chế độ làm việc xuất tín hiệu
Khai báo sử dụng ngắt ngoài.attachInterrupt(interrupt, function, mode)
Với interrupt là số ngắt (với arduino UNO thì có ngắt 0 & 1), function là chương trình con được gọi khi có ngắt, mode là chế độ hoạt động: LOW, CHANGE, RISING, FALLING
* LOW ngắt sẽ thực thi khi tín hiệu ở mức Low.
* CHANGE ngắt sẽ thực thi khi tín hiệu thay đổi trạng thái từ low->high hoặc hight->low
* RISING ngắt sẽ thực thi khi tín hiệu thay đổi trạng thái từ low->high
* FALLING ngắt sẽ thực thi khi tín hiệu thay đổi trạng thái từ hight->low
Xem thêm Arduino - Mỗi ngày một ví dụ, từ dễ tới khó - VD001 - LED Blink