Do thời gian làm đồ án có hạn nên đồ án của nhóm em không thể tránh khỏi những thiếu sót. Còn rất nhiều vấn đề mà đồ án cần cải thiện thêm trong tương lai.
• Nghiên cứu và cải tiến hệ thống điều khiển máy trên app điện thoại để người dùng có trải nghiệm máy tốt nhất.
• Cần cải tiến thêm về tốc độ , thời gian xử lí.
• Chế tạo lại mô hình, đi dây hợp lý, tăng độ thẩm mỹ cho máy. •Nâng cấp thêm nhiều chức năng khác cho máy.
TÀI LIỆU THAM KHẢO
[1]TrịnhCất - LêVănTuyển (2014), Tính toán thiết kế hệ dẫn động cơ khí, NXB giáo dục, Hà Nội.
[2]PGS.NguyễnThanhNam (2011), Phương Pháp Thiết Kế Kỹ Thuật, Đại học Bách Khoa TP Hồ CHí Minh.
[3]TS.NguyễnHữuLộc (2015), Cơ sở thiết kế máy, Đại học quốc gia TPHCM, HCM.
[4]GS.TS.TrầnVănĐịch, Thiết kế đồ án công nghệ chế tạo máy.
[5]BùiHảiTriều, Hệ thống điều khiển khí nén và thủy lực, NXB Giáo dục, Hà Nội.
[6]HoàngMinhCông (2011), Giáo trình cảm biến công nghiệp, NXB xây dựng.
PHỤ LỤC
Hình 0.1: Bản vẽ mô hình tổng thể
Hình 0.3: Bản vẽ cơ khí cơ cấu khuấy
Các phần mềm sử dụng trong đồ án
• Phầm mềm thiết kế 2d Autocad
• Phần mềm thiết kế mô hình cơ khí 3d Solidwords • Phần mềm mô phỏng mạch điện fritzing
Code hệ thống
#include <SoftwareSerial.h> //Thư viện sử dụng bất kỳ 2 chân digital nào để làm chân TX RX
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper1 = Stepper(stepsPerRevolution, 24, 26, 25, 27); Stepper myStepper2 = Stepper(stepsPerRevolution, 28, 30, 29, 31); Stepper myStepper3 = Stepper(stepsPerRevolution, 32, 34, 33, 35); Stepper myStepper4 = Stepper(stepsPerRevolution, 36, 38, 37, 39); int Relay_N1 = 5;
int Relay_N2 = 6; int Relay_N3 = 7; int Relay_Khuay = 8;
int cambien = 4; //Chân cảm biến nối chân số 4Arduino int giatri;
char docgiatri; //Biến docgiatri kiểu char void setup() { Serial.begin(9600); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); myStepper4.setSpeed(15); pinMode(Relay_N1, OUTPUT); digitalWrite(Relay_N1, HIGH);
pinMode(Relay_N2, OUTPUT); digitalWrite(Relay_N2, HIGH); pinMode(Relay_N3, OUTPUT); digitalWrite(Relay_N3, HIGH); pinMode(Relay_Khuay, OUTPUT); digitalWrite(Relay_Khuay, HIGH); pinMode(cambien, INPUT); } void loop() { char docgiatri = '0';
if(Serial.available() > 0) //Nếu tín hiệu của bluetooth lớn hơn 0, tức là đã kết nối OK
{
docgiatri = Serial.read(); //Đọc các giá trị trên app được kết nối qua bluetooth và gán vào docgiatri
Serial.println(docgiatri); //in giá trị lên cổng Serial Serial.println(""); } switch (docgiatri) { case '1': { myStepper1.step(stepsPerRevolution); //capcoc delay(1000);
Serial.println("da cap coc");
myStepper2.step(stepsPerRevolution/4); //quay den vi tri cap nguyen lieu
Serial.println("da den vi tri cap nguyen lieu");
giatri = digitalRead(cambien); //Đọc giá trị digital từ cảm biến và gán vào biến giatri
if (giatri == 1) break; else
{
myStepper3.step(-stepsPerRevolution/6); //cap nguyen lieu ran delay(2000);
myStepper3.step(stepsPerRevolution/6); delay(1000);
Serial.println("da cap nguyen lieu ran"); digitalWrite(Relay_N1, LOW);
digitalWrite(Relay_N2, LOW); digitalWrite(Relay_N3, LOW); delay(2000);
digitalWrite(Relay_N1, HIGH);
Serial.println("cap xong nguyen lieu long 1"); delay(500);
digitalWrite(Relay_N2, HIGH);
Serial.println("cap xong nguyen lieu long 2"); delay(500);
digitalWrite(Relay_N3, HIGH);
Serial.println("cap xong nguyen lieu long 3"); delay(1000);
myStepper2.step(stepsPerRevolution/4); //quay den vi tri khuay delay(1000);
Serial.println("da den vi tri khuay"); myStepper4.step(-stepsPerRevolution/2);
delay(500);
Serial.println("motor khuay di da di xuong"); digitalWrite(Relay_Khuay, LOW);
Serial.println("bat motor khuay"); delay(15000);
digitalWrite(Relay_Khuay, HIGH); Serial.println("da khuay xong");
myStepper4.step(stepsPerRevolution/2); delay(500);
Serial.println("motor khuay di len sau khi khuay xong");
myStepper2.step(stepsPerRevolution/4); //quay den vi tri lay do uong delay(1500);
Serial.println("da pha che xong"); } break; } case '2': { myStepper1.step(stepsPerRevolution); //capcoc delay(1000);
Serial.println("da cap coc");
myStepper2.step(stepsPerRevolution/4); //quay den vi tri cap nguyen lieu
delay(1000);
Serial.println("da den vi tri cap nguyen lieu");
giatri = digitalRead(cambien); //Đọc giá trị digital từ cảm biến và gán vào biến gia tri
if (giatri == 1) break;
else {
myStepper3.step(-stepsPerRevolution/6); //cap nguyen lieu ran delay(2000);
myStepper3.step(stepsPerRevolution/6); delay(1000);
Serial.println("da cap nguyen lieu ran"); digitalWrite(Relay_N1, LOW);
digitalWrite(Relay_N2, LOW); digitalWrite(Relay_N3, LOW); delay(2000);
digitalWrite(Relay_N1, HIGH);
Serial.println("cap xong nguyen lieu long 1"); delay(500);
digitalWrite(Relay_N2, HIGH);
Serial.println("cap xong nguyen lieu long 2"); delay(500);
digitalWrite(Relay_N3, HIGH);
Serial.println("cap xong nguyen lieu long 3"); delay(1000);
myStepper2.step(stepsPerRevolution/4); //quay den vi tri khuay delay(1000);
Serial.println("da den vi tri khuay"); myStepper4.step(-stepsPerRevolution/2); delay(500);
Serial.println("motor khuay di da di xuong"); digitalWrite(Relay_Khuay, LOW);
Serial.println("bat motor khuay"); delay(15000);
digitalWrite(Relay_Khuay, HIGH); Serial.println("da khuay xong");
myStepper4.step(stepsPerRevolution/2); delay(500);
Serial.println("motor khuay di len sau khi khuay xong");
myStepper2.step(stepsPerRevolution/4); //quay den vi tri lay do uong delay(1500);
Serial.println("da pha che xong"); } break; case '3': { myStepper1.step(stepsPerRevolution); //capcoc delay(1000);
Serial.println("da cap coc");
myStepper2.step(stepsPerRevolution/4); //quay den vi tri cap nguyen lieu
delay(1000);
Serial.println("da den vi tri cap nguyen lieu");
giatri = digitalRead(cambien); //Đọc giá trị digital từ cảm biến và gán vào biến giatri
if (giatri == 1) break; else
{
myStepper3.step(-stepsPerRevolution/6); //cap nguyen lieu ran delay(2000);
myStepper3.step(stepsPerRevolution/6); delay(1000);
Serial.println("da cap nguyen lieu ran"); digitalWrite(Relay_N1, LOW); digitalWrite(Relay_N2, LOW); digitalWrite(Relay_N3, LOW); delay(2000); digitalWrite(Relay_N1, HIGH);
Serial.println("cap xong nguyen lieu long 1"); delay(500);
digitalWrite(Relay_N2, HIGH);
Serial.println("cap xong nguyen lieu long 2"); delay(500);
digitalWrite(Relay_N3, HIGH);
Serial.println("cap xong nguyen lieu long 3"); delay(1000);
myStepper2.step(stepsPerRevolution/4); //quay den vi tri khuay delay(1000);
Serial.println("da den vi tri khuay"); myStepper4.step(-stepsPerRevolution/2); delay(500);
Serial.println("motor khuay di da di xuong"); digitalWrite(Relay_Khuay, LOW);
Serial.println("bat motor khuay"); delay(15000);
digitalWrite(Relay_Khuay, HIGH); Serial.println("da khuay xong");
myStepper4.step(stepsPerRevolution/2); delay(500);
Serial.println("motor khuay di len sau khi khuay xong");
delay(1500);
Serial.println("da pha che xong"); } break; } default: break; } }