Báo Cáo Thực Hành
Lập Trình Hệ Thống
ĐỀ TÀI: MẠCH CẢNH BÁO RÒ RỈ KHÍ GAS
SVTH: TRẦN VĂN THANH - 13T4
GVHD: HUỲNH HỮU HƯNG
I. Yêu cầu
Tìm hiểu về mạch Arduino Uno.
Các thiết bị điện tử và cảm biến.
Cách nối dây và đẩy code vào Arduino Uno.
Hiểu được cơ bản về lập trình Arduino Uno.
II. Giới thiệu
Giới thiệu về Arduino uno.
Vi điều khiển
ATmega328 họ 8bit
Điện áp hoạt động
5V DC (chỉ được cấp qua
cổng USB)
Tần số hoạt động
16 MHz
Dòng tiêu thụ
khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn
6-20V DC
Số chân Digital I/O
14 (6 chân hardware PWM)
Số chân Analog
6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
30 mA
I/O
Dòng ra tối đa (5V)
500 mA
Dòng ra tối đa (3.3V)
50 mA
Bộ nhớ flash
32 KB (ATmega328) với
0.5KB dùng bởi bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
II. Giới thiệu
Giới thiệu về Arduino uno.
1.
2.
3.
4.
5.
6.
Cổng USB
JACK nguồn
Hàng Header
Hàng header thứ hai
Hàng header thứ ba
Vi điều khiển AVR
II. Giới thiệu
Giới thiệu về Arduino uno.
Các ứng dụng của Arduino uno
Robot: Arduino được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot. Đó
là nhờ vào khả năng đọc các thiết bị cảm biến, điều khiển động cơ,... của Arduino.
Game tương tác: chúng ta có thể dùng Arduino để tương tác với Joystick, màn
hình,... để chơi các trò như Tetrix, phá gach, Mario... Còn nhiều game rất sáng tạo
nữa.
Máy bay không người lái
Mô phỏng Ipod.
và nhiều nhiều ứng dụng khác nữa ...
II. Giới thiệu
Giới thiệu về Arduino uno.
Các ứng dụng của Arduino uno.
Giới thiệu đề tài và ứng dụng của đề tài.
Tên đề tài: mạch cảnh báo rò rỉ khí gas
Ứng dụng:
Sử
dụng mạch để cảnh báo sự rò rỉ khí gas trong các phòng
bếp để đảm báo an toàn tránh sự cố đáng tiếc.
III. Linh Kiện
Modul sim 900A
SIM900(A) là module GSM/GPRS
Module SIM900(A) có các tính năng
cơ bản của một chiếc điện thoại
như gọi điện thoại, nhắn tin, truy
cập GPRS,...
III. Linh Kiện
Cảm biến MQ2
- Nguồn hoạt động: 5V
- Loại dữ liệu: Analog
- Phạm vi phát hiện rộng
- Tốc độ phản hồi nhanh và độ nhạy
cao
- Mạch đơn giản
- Ổn định khi sử dụng trong thời gian
dài
III. Linh Kiện
Một số linh kiện khác
Loa bip
Bản mạch tự rap
III. Linh Kiện
STT
Tên linh kiện
Số lượng
1
Arduino Uno
1
120 k
2
Cảm biến khí MQ2
1
80 k
3
Modul sim 900A
1
220 k
4
Dây nối
20
10k
5
Ốc vít
6
5k
6
loa bip
7
Và một số linh kiện
khác…
1
Tổng Tiền
Giá/ đơn vị
20k
???k
IV. Cách kết nối thiết bị và module code.
Cảm biến MQ2 & loa bip
Hướng dẫn nối dây:
Arduino
Cảm biến
VCC
5V
GND
GND
A0
Digital
Arduino
loa
GND
Đầu -
Chân 6
Đầu +
IV. Cách kết nối thiết bị và module code.
Cảm biến MQ2 & loa bip
Code demo mẫu:
void setup() {
pinMode(A0, INPUT_PULLUP);
pinMode(6, OUTPUT);
}
void loop() {
if (digitalRead(A0) == 0)
digitalWrite(6, HIGH);
}
else
{
digitalWrite(6, LOW);
}
}
IV. Cách kết nối thiết bị và module code.
Modul sim 900A
Hướng dẫn nối dây
arduino
Modul sim 900A
5V
VCC
GND
GND
TX
RX(chân 4)
RX
TX(chân 3)
IV. Cách kết nối thiết bị và module code.
Modul sim 900A
Code demo mẫu:
#include <SoftwareSerial.h>
SoftwareSerial SIM900(4, 3);
void setup()
{
delay(5000);
SIM900.begin(57600);
SIM900.println("AT+CSCS=\"GSM\"");
delay(200);
}
void sendSMS(String mes)
{
SIM900.println("AT+CMGF=1\r");
delay(200);
SIM900.println("AT + CMGS
= \"+84xxxxxxxxx\"");
delay(200);
SIM900.println(mes);
delay(200);
SIM900.println((char)26);
delay(200);
SIM900.println();
}
void loop()
{
sendSMS(“nội dung SMS");
delay(20000);
}
V. Code Hoàn chỉnh của sản phẩm
Lắp đặt hệ thống
V. Code Hoàn chỉnh của sản phẩm
#include <Servo.h>
Servo servo_x,servo_lx,servo_tl,servo_k;
//Chân 3 cho servo xoay của cánh tay
const int servo_xPin = 3;
//Chân 10 cho servo lên xuống của cánh tay
const int servo_lxPin = 10;
// Chân 5 cho servo tới lui
const int servo_tlPin = 5;
//Chân 6 cho servo kẹp sản phẩm
const int servo_kPin = 6;
//Chân A0 chân input cảm biến
const int analogInpin = A0;
//Biến lưu giá trị cảm biến
static int sensorValue = 0;
// Chân điều khiển motor băng chuyền
const int role = 7;
// Biến đếm hàng
static int count = 0;
//Một số chân cài đặt led.
const int latchPin = 8;
const int clockPin = 12;
const int dataPin = 11;
const int Seg[10] = {
0b11000000,//0 - các thanh từ a-f sáng
0b11111001,//1 - chỉ có 2 thanh b,c sáng
0b10100100,//2
0b10110000,//3
0b10011001,//4
0b10010010,//5
0b10000010,//6
0b11111000,//7
0b10000000,//8
0b10010000,//9
};
//Hàm đọc giá trị cảm biến
void readSensor();
//Hàm hiển thị led theo số đếm count
void LED(int count);
//Hàm đieuè khiển cánh tay
void control_aim( );
//Hàm điều khiển băng chuyền
void motor(int sensorValue);
//Hàm cài đặt các giá trị ban đầu
void setup() {
//Hàm chính
}
void loop() {
readSensor();
if(sensorValue > 500){
//Nếu có hàng
motor();
control_aim(sensorValue);
}
else motor(sensorValue);
delay(50);
}
V. Code Hoàn chỉnh của sản phẩm
#include <SoftwareSerial.h>
SoftwareSerial SIM900(4, 3);
String textSMS = "RO RI KHI GAS";
void setup(){
delay(5000);
SIM900.begin(57600);
SIM900.println("AT+CSCS=\"GSM\"");
delay(200);
pinMode(A0, INPUT_PULLUP);
pinMode(6, OUTPUT);
}
void sendSMS(String mes)
{
SIM900.println("AT+CMGF=1\r");
delay(200);
SIM900.println("AT+CMGS=\"+841679911638\"
");
delay(200);
SIM900.println(mes);
delay(200);
SIM900.println((char)26);
delay(200);
SIM900.println();
}
void loop() {
if (digitalRead(A0) == 0)
{
digitalWrite(6, HIGH);
sendSMS(textSMS);
delay(20000); }
else
{
digitalWrite(6, LOW);
}
}
VI. Hình ảnh sản phẩm
VI. Hình ảnh sản phẩm
VI. Video chạy demo sản phẩm