Thay vì lắp đặt hệ thống trục bánh răng động cơ chúng ta sẽ vận dụng mạch giả lập Arduino để thiết kế mơ hình. Mạch arduino sẽ được giả lập như sau:
#include <TimerOne.h> // sử dụng thư viện TimerOne của Arduino
int xungvuong = 9; // Khai báo chân số 9 của Arduino làm chân tín hiệu xuất xung int i=0,a=0; // biến con
int val =A0; // Khai báo chân A0 là chân đọc tín hiệu biến trở. void setup() { pinMode(9, OUTPUT); // Cấu hình chân 9 là đầu ra OUTPUT pinMode(val, INPUT); // Cấu hình chân A0 là đầu vào
Timer1.attachInterrupt(CKP); // Khởi tạo Timer chạy chương trình CKP }
void CKP() // chương trình xung CKP {
if(a<=34) // Nếu đủ 34 xung vuơng {
if(i<=2) // nếu đủ 2 xung khuyết {
digitalWrite(xungvuong, HIGH); // thì lên Mức Cao }
else {
digitalWrite(xungvuong, LOW); // ngược lại nếu chưa đủ 2 xung khuyết thì vẫn là mức Thấp
i=i+1; // cộng thêm 1 xung khuyết nếu chưa đủ 2 xung. a=a+1; // cộng giá trị a tới 34
if(a==36) // nếu trong 1 chu kỳ đủ tổng 36 xung ( bao gồm 34 xung vuơng và 2 xung khuyết)
{
a=0; // thì cho a = 0 và bắt đầu lặp lại vịng trên }
} }
void loop() {
val = analogRead(A0); // bắt đầu đọc giá trị biến trở ở chân A0
int thoigian = map(val,1024,0,65,770) ; // chuyển đổi giá trị biến trở về thời gian từ 65 - 770 microseconds và thay đổi theo biến trở khi vặn.
Timer1.initialize(bienthien); // bắt đầu chạy Timer với thoigian Microseconds }
Chương 5. Chuẩn đoán và xử lí các lỗi thường gặp