You are on page 1of 10

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH


KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
--------------------------------

BÁO CÁO
MÔN HỌC

THỰC TẬP HỆ THỐNG NHÚNG TRONG


CÔNG NGHIỆP

GVHD: ThS. NGÔ BÁ VIỆT


SVTH: MSSV:
HUỲNH NHÂN TRÍ 21161417
HOÀNG MINH CHƯƠNG 21161109
NGUYỄN PHÚC HOÀI NAM 21161407
PHẠM NGUYỄN MINH ĐỨC 15141138

TPHCM 3/2024
A

1) Giới thiệu phần cứng

- Trong bài tập này nhóm đã sử dụng 3 thành phần phần cứng bao gồm:
+ Một Vi điều khiển Arduino

+ Một module đèn giao thông :


-Kích thước: 56 * 21 * 11mm
-Màu sắc: đỏ vàng xanh
-LED: 5mm * 3
-Độ sáng: độ sáng bình thường -Điện áp: 5V
-Giao diện: chung cathode đỏ vàng xanh điều khiển riêng biệt

+ Một cảm biến hồng ngoại vật cản :


A

+ Sơ đồ kết nối

2) Chương trình

a) Sơ đồ khối chương trình


A
A

b) Chương trình
A

#include <Servo.h> //Chương trình sử dụng thư viện Servo.h để điều khiển servo
#define IN1 4
#define IN2 3
#define IN3 6
#define IN4 5 //Sử dụng chân số 5 của Arduino để điều khiển động cơ băng tải
#define CB 2 // Sử dụng chân số 2 của Arduino để đọc tín hiệu từ cảm biến hồng
//ngoại
#define led_do 8 //Sử dụng chân số 8 của Arduino để điều khiển led đỏ
#define led_vang 12 //Sử dụng chân số 12 của Arduino để điều khiển led vàng
#define led_xanh 7 //Sử dụng chân số 7 của Arduino để điều khiển led xanh
Servo s1; //Thông qua thư viện Servo.h đặt tên cho servo 1 và 2 lần lượt là
Servo s2; //s1 và s2
int i=0;
int cnt = 0;
int tam = 0;
void test_dc_run() //Chương trình để điều khiển động cơ chạy
{
digitalWrite(IN3, LOW);
analogWrite(IN4, 200);
}
void test_dc_stop() //Chương trình để tắt động cơ
{
digitalWrite(IN3, LOW);
analogWrite(IN4, 0);
}
void setup()
{
// put your setup code here, to run once:
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(CB,INPUT);
pinMode(led_do, OUTPUT);
pinMode(led_vang, OUTPUT);
pinMode(led_xanh, OUTPUT);
s1.attach(9); //Sử dụng chân số 9 của Arduino để điều khiển servo 1
s2.attach(10); //Sử dụng chân số 10 của Arduino để điều khiển servo 2
cnt = 0;
}

void loop()
{
int cbState = digitalRead(CB);
if (cbState==1)
{
test_dc_run();
digitalWrite(led_xanh, HIGH);
A

digitalWrite(led_do, LOW);
digitalWrite(led_vang, LOW);

}
else
{
test_dc_stop();
cnt++;
tam=1;
if (cnt==3)
{
cnt = 1;
}
s1.write(0);
s2.write(180);
}
if(tam==1)
{
if (cnt==1)
{
test_dc_stop();
digitalWrite(led_do, HIGH);
digitalWrite(led_vang, LOW);
digitalWrite(led_xanh,LOW);

delay(3000);
test_dc_run();
digitalWrite(led_do, LOW);
digitalWrite(led_vang, HIGH);
digitalWrite(led_xanh,LOW);
s1.write(45);
s2.write(180);
delay(3000);
digitalWrite(led_do, LOW);
digitalWrite(led_vang, LOW);
digitalWrite(led_xanh,HIGH);
s1.write(0);
s2.write(180);
tam=0;
}
else if (cnt==2)
{
test_dc_stop();
digitalWrite(led_do, HIGH);
digitalWrite(led_vang, LOW);
digitalWrite(led_xanh,LOW);
delay(3000);
digitalWrite(led_do, LOW);
digitalWrite(led_vang, HIGH);
A

digitalWrite(led_xanh,LOW);
test_dc_run();
s1.write(0);
s2.write(135);
delay(3000);
digitalWrite(led_do, LOW);
digitalWrite(led_vang, LOW);
digitalWrite(led_xanh,HIGH);
s1.write(0);
s2.write(180);
tam=0;
}
}
}

3) Kết quả

+ Khi ta không che cảm biến đồng nghĩa với nút bấm có mức logic = 0 thì băng tải vẫn hoạt
động nhưng 2 động cơ servo vẫn nằm ở vị trí cũ
A

+ Khi ta che cảm biến lần đầu thì đèn báo hiệu sẽ chuyển sang màu đỏ báo hiệu có vật cản ,băng
tải sẽ dừng hoạt động và servo 1 sẽ di chuyển một góc 45 độ .đồng thời đèn tín hiệu cũng chuyển
sang màu vàng để hiển thị rằng servo 1 đang ở chế độ chờ

+ Sau khi servo 1 mở một góc 45 độ thì băng tải tiếp tục hoạt động và sau một khoảng thời gian
thì servo sẽ hoạt động và gạt vật xuống , lúc này đèn báo hiệu sẽ chuyển sang màu xanh
A

+Sau đó nếu có thêm 1 vật nữa đi ngang qua cảm biến thì đèn lại tiếp tục chuyển sang màu đỏ
báo hiệu có vật đi qua ,servo 2 sẽ mở một góc 45 độ và đèn sáng lên màu vàng để báo servo
đang ở chế độ chờ.

+Và cũng tương tự như servo 1 thì sau khi mở một góc 45 độ thì băng tải tiếp tục hoạt động và
servo sẽ chờ một khoảng thời gian để đẩy vật xuống đồng thời đèn báo cx sẽ chuyển sang màu
xanh.

You might also like