Professional Documents
Culture Documents
Là một công nghệ nhận dạng qua tần số vô tuyến, dùng kết nối sóng vô tuyến để tự
động xác định và theo dõi các thẻ nhận dạng gắn vào vật thể. Trong đề tài thì đối tượng
cần theo dõi là các thẻ từ chứa thông tin được lưu trữ bằng chip điện tử. Các thẻ từ này sẽ
nhận năng lượng phát ra từ thiết bị đọc RFID (reader) và dùng năng lượng này để gửi ra
lại mã thông tin của thẻ qua sóng mang. Từ đó thiết bị RFID reader sẽ nhận biết được mã
thông tin của thẻ từ đó. Mỗi loại thiết bị RFID reader sẽ chỉ phát ra một sóng điện từ với
tần số nhất định để kiểm tra được thẻ nào phù hợp với dải tần số hoạt động. Quá trình
phát ra năng lượng và thu lại tín hiệu sóng điện từ được diễn ra nhờ các antenna. Mỗi thẻ
từ chứa một mã thẻ nhất định và không trùng lặp nhau, hay còn được nhắc đến với tên
gọi là UID (Unique Identifier). Với module RFID RC522 được sử dụng trong hệ thống
thì tầm hoạt động cỡ vài centimet. Ngoài ra ở ngoài thị trường có những loại thẻ từ mà
module đọc thẻ từ với tần số khác nhau có thể truyền nhận lên đến vài trăm mét. Ưu điểm
của công nghệ này là không sử dụng tia sáng như công nghệ mã vạch và có thể đọc và
nhận dạng thông tin được truyền qua những khoảng cách nhỏ mà không cần tiếp xúc vật
lý. Hơn nữa, các bộ phận đọc thẻ từ RFID có thể đọc được thông tin từ các thẻ thậm chí
xuyên qua các môi trường, vật liệu như: bê tông, tuyết, sương mù, sơn và các môi trường
thách thức khác mà công nghệ mã vạch và các công nghệ khác không thể phát huy hiệu
quả.
Là một thư viện mà trong đề tài này nhóm em dùng để kết nối phần mềm lập trình
Visual Studio với PLC thông qua cổng Ethernet. Thư viện này tương thích với đa số các
dòng PLC Siemen và được viết hoàn toàn bằng C#. Trước khi thao tác thì ta phải mở kết
nối và sau đó là ngắt kết nối nó đi, ta có thể sử dụng hàm Open() và hàm Close() cho hai
thao tác này. Nhóm em thường thao tác với việc Set hoặc Reset 1 biến trong PLC và đọc
trạng thái tín hiệu biến nào đó trong PLC về lại Visual Studio.
d) Thư viện xử lý ảnh Emgu CV.
Emgu CV là một thư viện xử lý hình ảnh, thị giác máy tính dành riêng cho ngôn
ngữ C#. Cho phép gọi các hàm chức năng của thư viện xử lý ảnh OpenCV. Nó tương
thích với các ngôn ngữ như C#, VB, VC++ và Python.
Có thể được Visual Studio, Xamarin Studio và Unity biên dịch, nó có thể chạy
trên Windows, Linux, Mac OS X, iOS, Điện thoại Android và Windows.
Là một chuẩn truyền thông đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công
toàn phần (full-duplex), nghĩa là trong cùng một thời điểm có thể xảy ra đồng thời quá
trình truyền và nhận, nhằm đảm bảo sự liên hợp giữa các vi điều khiển và thiết bị ngoại vi
một cách đơn giản. Giao thức truyền thông này theo kiểu Master – Slave. Trong luận văn
này thì chuẩn giao tiếp SPI được thể hiện qua kết nối giữa module RFID RC522 với vi
điều khiển Arduino, trong đó Arduino đóng vai trò là master và module RFID RC522
đóng vai trò là Slave. SPI đôi khi được gọi là truyền thông “4 dây” vì có 4 đường giao
tiếp trong chuẩn này, đó là SCK (Serial Clock), MISO (Master Input Slave Output),
MOSI (Master Output Slave input) và SS (Slave Select). Trong đó:
- SCK hay SCLK: Xung đồng hồ có tác dụng giữ nhịp cho giao tiếp SPI. Xung này
được tạo ra từ Arduino. Vai trò của nó là rất quan trọng vì nó giúp cho quá trình
truyền ít bị lỗi và tốc độ truyền có thể đạt rất cao.
- MOSI hay SI: Cổng ra của bên Master, cổng vào của bên Slave. Chân này có tác
dụng truyền dữ liệu từ Master đến Slave.
- MISO hay SO: Cổng vào của bên Master, cổng ra của bên Slave. Chân này có tác
dụng truyền dữ liệu từ Slave đến Master.
- SS hay CS: Dùng để chọn Slave cần giao tiếp. Khi không hoạt động thì chân SS
này ở mức cao. Nếu Master kéo chân SS của Slave nào xuống mức thấp thì Slave
đó sẽ được giao tiếp với Master.
Về cách thức hoạt động thì cứ mỗi xung nhịp do Master tạo ra trên SCK thì một bit
trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời
môt bit trong thanh ghi của Slave được truyền qua Master trên đường MISO. Do quá
trình gửi qua lại đồng thời nên nó được gọi là truyền dữ liệu “song công”.
f) Chuẩn giao tiếp Ethernet.
Ethernet là một công nghệ mạng cục bộ nhằm giao tiếp truyền thông tin giữa các
máy tính. Trong luận văn này thì cáp Ethernet được dùng để kết nối giữa máy tính và
PLC S7-1200 nhằm truyền nhận thông tin giữa hai thiết bị này. Ethernet sử dụng cáp
xoắn đôi và các liên kết sợi quang học giúp tăng tốc độ truyền dữ liệu hơn so với phiên
bản trước đó của nó là sử dụng cáp đồng trục.
g) Mosbus RTU
Giao thức Modbus RTU là một giao thức mở, sử dụng đường truyền vật lý RS-232 hoặc
RS485 và mô hình dạng Master-Slave. Đây là một giao thức được sử dụng rộng rãi trong
nhiều lĩnh vực như BMS (Building Management Systems), tự động hóa, công nghiệp,
điện lực,.... Chắc hẳn sẽ có bạn tự hỏi, tại sao giao thức Modbus này lại thông dụng như
thế, đi đến đâu, đụng vào thiết bị gì thì hầu như cũng có giao thức này? Vâng, câu trả lời
cho câu hỏi trên chắc chỉ cần gói gọn trong vài từ: Ổn định - Đơn giản - dễ dùng.
Modbus được coi là giao thức truyền thông hoạt động ở tầng "Application", cung cấp khả
năng truyền thông Master/Slave giữa các thiết bị được kết nối thông qua các bus hoặc
network. Trên mô hình OSI, Modbus được đặt ở lớp 7. Modbus được xác định là một
giao thức hoạt động theo "hỏi/đáp" và sử dụng các "function codes" tương ứng để hỏi
đáp.
Cấu trúc bản tin Modbus RTU
Một bản tin Modbus RTU bao gồm: 1 byte địa chỉ - 1 byte mã hàm - n byte dữ liệu - 2
byte CRC như hình ở dưới:
Chức năng và vai trò cụ thể như sau:
Byte địa chỉ: xác định thiết bị mang địa chỉ được nhận dữ liệu (đối với Slave)
hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master). Địa chỉ này được quy định
từ 0 - 254
Byte mã hàm: được quy định từ Master, xác định yêu cầu dữ liệu từ thiết bị Slave.
Ví dụ mã 01: đọc dữ liệu lưu trữ dạng Bit, 03: đọc dữ liệu tức thời dạng Byte, 05:
ghi dữ liệu 1 bit vào Slave, 15: ghi dữ liệu nhiều bit vào Slave ...
Byte dữ liệu: xác định dữ liệu trao đổi giữa Master và Slave.
o Đọc dữ liệu:
Master: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu
Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu - n byte dữ liệu
đọc được
o Ghi dữ liệu:
Master: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu - n byte dữ liệu
cần ghi
Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu
Byte CRC: 2 byte kiểm tra lỗi của hàm truyền. cách tính giá trị của Byte CRC 16
Bit
Đây là 1 môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để
phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các
ứng dụng web và các dịch vụ web. Trong luận văn, Visual Studio được sử dụng để lập
trình để giao tiếp giữa Arduino, máy tính và PLC. Có rất nhiều ngôn ngữ để cho bạn có
thể lập trình trên môi trường này gồm có C, C++, C#, Visual Basic, Java và Python.
Ngoài ra cũng có rất nhiều ứng dụng mà bạn có thể xây dựng ở đây như Windows Forms
Designer, Web designer hoặc là Mapping designer. Microsoft cung cấp phiên bản
“Express” đối với phiên bản Visual Studio từ 2013 trở về trước và “Community” đối với
bản Visual Studio từ 2015 trở về sau. Đây là phiên bản miễn phí của Visual Studio và
cũng là phiên bản được sử dụng trong luận văn này.
Là một công cụ để ta có thể truy cập đến cơ sở dữ liệu SQL Server. Nó có một giao
diện được thiết kế trực quan, dễ sử dụng. Nhờ đó ta có thể thêm, xóa hoặc sửa đổi các
thông tin về mã thẻ, khách hàng, thời gian gửi xe và nhiều thông tin khác trong cơ sở dữ
liệu. SQL Server 2014 Management Studio đã được tích hợp sẵn trình soạn thảo trực
quan SQL, điều đó có nghĩa là ta có thể sử dụng ngôn ngữ SQL lập trình trực tiếp trên
SQL Server 2014 Management Studio để thực hiện các thao tác như truy vấn dữ liệu,
thêm, xóa dữ liệu hoặc sửa đổi các hàng, cột trong cơ sở dữ liệu của chúng ta.
Hình 2.8: Phần mềm SQL Server 2014 Management Studio
Gxwork2.
GX Works2 là phần mềm lập trình PLC của hãng Mitsubishi là phiên bản nâng cấp và
thay thế cho GX Developer bị hạn chế một số tính năng . Những cải tiến trong phiên bản
phần mềm này gồm có:
Giao diện được thiết kế lại một cách trực quan hơn để thuận tiện cho người sử
dụng
Thư viện các modul được cập nhập đầy đủ hơn
Hỗ trợ thêm những ngôn ngữ lập trình như FBD và SFC
Thao tác tùy chỉnh các thông số dễ dàng
Bộ cài đặt được tích hợp thêm các gói phần mềm hỗ trợ
Các dòng PLC Mitsubishi sử dụng được trên phần mềm GX Works2:
Ưu điểm của Arduino là một nền tảng mã nguồn mở. Nó có một cộng đồng rất lớn
trên thế giới nên sự hỗ trợ từ cộng đồng Arduino là cực kỳ hữu ích. Ở Việt Nam cũng có
một cộng đồng Arduino rất lớn đó là arduino.vn.
Hình 2.10: Phần mềm Arduino IDE
Dòng sản phẩm mới PLC FX3U là thế hệ thứ ba trong gia đình họ FX-PLC, là một PLC
dạng nhỏ gọn và thành công của hãng Mitsubishi Electric.Sản phẩm được thiết kế đáp
ứng cho thị trường quốc tế, tính năng đặc biệt mới là hệ thống “adapter bus” được bổ
xung cho hệ thống bus hữu ích cho việc mở rộng thêm những tính năng đặc biệt và khối
truyền thông mạng. Khả năng tối đa có thể mở rộng lên đến 10 khối trên bus mới này.
Với tốc độ xử lý cực mạnh mẽ, thời gian chỉ 0.065µs trên một lệnh đơn logic, cùng với
209 tập lệnh được tích hợp sẵn và cải tiến liên tục đặc biệt cho nghiệp vụ điều khiển vị
trí. Dòng PLC mới này còn cho phép mở rộng truyền thông qua cổng USB, hỗ trợ cổng
Ethernet và Cổng lập trình RS-422 mini DIN. Với tính năng mạng mở rộng làm cho PLC
này nâng cao được khả năng kết nối tối đa về I/O lên đến 384 I/O, bao gồm cả các khối
I/O qua mạng.
Thông số cơ bản :
- Điện áp hoạt động: 24VDC, 100-240VAC.
- Ngõ vào số: 8, 16, 24, 32, 40, 64.
- Đầu ra số: 8, 16, 24, 32, 40, 64, ngõ ra rơ le, Transitor(nguồn), transitor (chìm)
- Bộ nhớ chương trình: 64000 bước.
- Công suất tiêu thụ: 25, 30, 35, 40, 45, 50, 65.
- Cổng truyền thông: USB, RS-232C, RS-422, RS-485.
- Tiêu chuẩn: UL, CUL, CE.
b) Arduino UNO R3
Khi ai nhắc tới mạch Arduino dùng để lập trình, cái đầu tiên mà người ta luôn nghĩ tới là
dòng Arduino UNO. Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3). đây là mạch
mà ta sẽ tìm hiểu, khi bạn đã hiểu rõ về nó, bạn có thể dễ dàng tìm hiểu và lập trình các
dòng Arduino khác dễ dàng.
Vi xử lý: ATmega328P
Điện áp hoạt động: 5 Volts
Điện áp vào giới hạn: 7 đến 20 Volts
Dòng tiêu thụ: khoảng 30mA
Số chân Digital I/O: 14 (với 6 chân là PWM)
UART: 1
I2C: 1
SPPI: 1
Số chân Analog: 6
Dòng tối đa trên mỗi chân I/O: 30 mA
Dòng ra tối đa (5V): 500 mA
Dòng ra tối đa (3.3V): 50 mA
Bộ nhớ flash: 32 KB với 0.5KB dùng bởi bootloader
SRAM: 2 KB
EEPROM: 1 KB
Clock Speed: 16 MHz
Bộ nhớ:
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được
dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này
đâu.
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo
khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ
RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà
bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory):
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình
vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
5V: cấp điện áp 5V đầu ra, dùng để cấp nguồn cho các linh kiện điện tử kết nối với
Arduino
3.3V: chức năng tương tự như cấp nguồn 5v nhưng đây là cấp điện áp 3.3V đầu ra.
Ground: hay còn gọi là chân GND, là cực âm của nguồn điện cấp cho Arduino
UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những
chân này phải được nối với nhau.
Vin (Voltage Input): tương tự như chân 5V, nhưng thêm chức năng cấp nguồn
ngoài cho Arduino UNO thay vì cắm USB, bạn nối cực dương của nguồn với chân
này và cực âm của nguồn với chân GND.
Chân PWM: là các chân có dấu '~' đằng trước, các chân này cho phép bạn xuất ra
xung PWM với độ phân giải 8bit (giá trị từ 0 đến 255) tương ứng với mức giao
động điện áp của chân từ 0V đến 5V, khác với các chân không phải PWM, chỉ có
thể chọn giá trị 0V hoặc 5V.
Các chân Analog
Arduino UNO có 6 chân analog (A0 đến A5) cung cấp độ phân giải tín hiệu 10bit (0 đến
1023) để đọc giá trị điện áp trong khoảng 0V đến 5V.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp
I2C/TWI với các thiết bị khác.
Chân TXD và RXD
Đây là các chân Serial dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL
Serial. Arduino Uno có thể giao tiếp dữ liệu với các thiết bị cần sử dụng thông qua 2 chân
này, ngoài ra có thể sử dụng 2 chân này để nạp code cho mạch mà không cần thông qua
USB của mạch.
c) Module đọc thẻ RFID-RC522.
Module đọc thẻ RC522 có thể đọc được các loại thẻ có kết nối không dây như NFC, thẻ
từ (loại dùng làm thẻ giảm giá, thẻ xe bus, tàu điện ngầm...). Module có các thông số
chính như:
Hiện nay trên thị trường có bán rất nhiều loại cảm biến quang, cảm biến hồng ngoại
phát hiện vật cản từ 5V-24V, giá thành cũng tương tự nhau, có ứng dụng giống nhau là
để phát hiện cản. Trong đề tài này nhóm em sử dụng cảm biến hồng ngoại phát hiện vật
cản E3F-DS10C4. Có thể sử dụng loại cảm biến quang khác cũng được.
Thông số kỹ thuật:
- Điện áp: 6-36VDC
- Dòng 300mA
- Đầu ra NPN
- Kết nối:
+ Dây màu nâu: nối nguồn 24VDC
+ Dây màu xanh: nối GND
+ Dây màu đen là dây tín hiệu thường mở NPN, nối vào ngõ vào của PLC.
- Khoảng cách: 3-30cm, có thể điều chỉnh được qua biến trở gắn trên cảm biến.
- Có led hiển thị ngõ ra màu đỏ.
Hình 3.17: Cảm biến hồng ngoại phát hiện vật cản E3F-DS10C4
e) Webcam Logitech C270 720p.
Trên thị trường hiện nay có rất nhiều loại webcam với sự đa dạng về giá cả cũng
như là chất lượng. Tuy nhiên để có thể chọn ra một loại webcam tầm trung có giá cả vừa
phải với độ phân giải cao và chất lượng tốt thì nhóm em lựa chọn webcam Logitech C270
720p. Webcam này được sử dụng để chụp ảnh biển số xe và gửi hình ảnh qua qua máy
tính thông qua cổng USB.
Thông số kỹ thuật:
- Tốc độ khung hình: 30fps
- Độ phân giải 720p.
- Tiêu cự: Lấy nét cố định.
- Cổng kết nối với máy tính: Cổng USB.
- Hỗ trợ hệ điều hành: Windows® 10, Windows 8, Windows 7, macOS 10.10,
Chrome OS, Android™ v 5.0.
- Tính năng: Hoạt động với Skype™ - Google Hangouts™ - FaceTime dành cho
Mac.
f) Động cơ bước.
Các động cơ này quay ở các góc cố định bằng các xung điện tử được điều khiển kỹ thuật
số. Động cơ bước kiểu lai kết hợp một cánh quạt với nam châm vĩnh cửu và thân từ sử
dụng vòng bi. Vòng bi là rất quan trọng đối với độ chính xác của động cơ. Động cơ bước
kiểu lai của Minebea sử dụng vòng bi có độ chính xác cao được sản xuất trong nhà góp
phần rất lớn vào độ chính xác và độ tin cậy của các sản phẩm này.
Động cơ bước lai MineBea có thiết kế tương tự như động cơ Nema 17 làm cho nó trở nên
lý tưởng để sử dụng trong các ứng dụng robot và máy in 3D.
Đặc điểm kỹ thuật:
Mô hình: 17 PM-K049U
Bước góc: 1,8 độ
Dòng điện định mức: ~ 0,8A Điện trở :
3,1 ~ 8,3 ohm
g) Stepper driver
A4988 Step Driver có thể dùng cho Reprap trong máy in 3D kèm với board RAMPS 1.4.
Dùng với board CNC Shield v3 cho CNC mini. Hoặc dùng điều khiển động cơ bước.
- Giao thức điều khiển số bước và chiều quay rất đơn giản.
- 5 cấp điều chỉnh bước: 1; 1/2; 1/4; 1/8 và 1/16 bước.
- Điều chỉnh dòng định mức cấp cho động cơ bằng triết áp.
- Có chức năng bảo vệ ngắn mạch, bảo vệ quá nhiệt, bảo vệ tụt áp và chống dòng ngược.
Thông số kĩ thuật:
- Điện áp cấp tối thiểu: 8 V
- Điện áp cấp cực đại: 35 V
- Dòng cấp liên tục cho mỗi pha: 1 A (không cần tản nhiệt, làm mát)
- Dòng cấp liên tục cho mỗi pha: 2 A (khi có làm mát, tản nhiệt)
- Điện áp logic 1 tối thiểu: 3 V
- Điện áp logic 1 tối đa: 5.5 V
- Độ phân giải: full, 1/2, 1/4, 1/8, và 1/16
Sơ đồ kết nối giữa stepper driver và động cơ bước.
h) Module RS485 Arduino.
MAX485 là một mạch chuyển đổi TTL To RS485 chuyển đổi tín hiệu TTL sang RS485
cho phạm vi xa, tốc độ dữ liệu cao, dễ xảy ra lỗi giao tiếp. Các mạng truyền thông kỹ
thuật số thực hiện tiêu chuẩn EIA-485 có thể được sử dụng hiệu quả trong khoảng cách
xa và trong môi trường nhiễu điện.
Bộ chuyển đổi này cho phép bạn gửi và nhận dữ liệu bằng mạng RS485 từ Arduino / vi
điều khiển của bạn. Tương tự như giao diện Serial TTL và RS232, RS485 cho phép bạn
truyền dữ liệu giữa các bộ vi điều khiển và thiết bị nhưng với các tính năng bổ sung.
RS485 là một giao thức tiêu chuẩn công nghiệp để truyền dữ liệu và cung cấp nhiều ưu
điểm.
Nó cho phép bạn truyền dữ liệu giữa tối đa 32 thiết bị, thông qua cùng một đường truyền
dữ liệu qua chiều dài cáp lên đến 1.2km (4000ft) với tốc độ dữ liệu tối đa là 10Mbit / s.
Bộ chuyển đổi này được thiết kế cho các ứng dụng văn phòng và công nghiệp (không bị
cô lập) và cung cấp các đặc điểm / tính năng ưu việt thường chỉ có trên các thiết bị đắt
tiền hơn.
Thông số kỹ thuật:
Mạch giao tiếp TTL – RS485 được dùng để chuyển đổi tín hiệu nối tiếp (Serial)
UART sang giao tiếp RS485 sử dụng IC MAX485.
Điện áp hoạt động: 5 VDC.
Kích thước: 44 X 14mm.
Tiêu thụ điện năng thấp cho giao tiếp RS-485
Trên bo mạch có thiết bị đầu cuối 2P cao 5,08 (mm) để tạo thuận lợi cho việc đấu dây
giao tiếp RS-485.
Các chân của module gồm có:
– DE- DATA ENABLE; RE RECEIVE ENABLE (Cho phép dữ liệu vào và cho phép
được nhận) 2 chân này thường để nối liền với nhau và kết nối với Pin 2
– GND nối với GND, GND của 2 arduino có thể dùng cáp để nối hoặc cần được nối đất
tại chỗ
Vì giao thức truyền thông của module RFID MFRC522 NFC 13.56MHz là SPI nên
ta sẽ kết nối với Arduino theo sơ đồ sau:
mySerial.available() - kiểm tra mọi dữ liệu đến từ mô đun đầu đọc RFID thông qua chân
SoftwareSerial 9. Trả về số byte có sẵn để đọc từ cổng nối tiếp phần mềm. Trả về -1 nếu
không có dữ liệu để đọc.
mySerial.read() - Đọc dữ liệu được gửi đến thông qua cổng nối tiếp phần mềm.
Serial.write() - In dữ liệu lên cửa sổ serial monitor của arduino. Vì vậy, hàm Serial.write
(mySerial.read ()) - in dữ liệu được nhận được từ cổng nối tiếp phần mềm sang cửa sổ
serial monitor của arduino.
Code kết nối arduino uno R3 và module RFID- RC522
#include <SPI.h>
#include <MFRC522.h> // thu vien RFID
/*const int led1 = 2;// led do
* const int led2 = 3;// led xanh
ket noi voi arduino uno
*/
/*
PINOUT:
RC522 MODULE Uno/Nano MEGA
SDA D10 D9
SCK D13 D52
MOSI D11 D51
MISO D12 D50
IRQ N/A N/A
GND GND GND
RST D9 D8
3.3V 3.3V 3.3V
*/
/* Include the RFID library */
/* Define the DIO used for the SDA (SS) and RST (reset) pins. */
#define SS_PIN 10
#define RST_PIN 9
/* Create an instance of the RFID library */
MFRC522 mfrc522(SS_PIN,RST_PIN);
unsigned long uidDEC,uidDECTemp; // hien thi so uid duoi dang thap phan
int val;
void setup()
{
Serial.begin(9600);
/* Enable the SPI interface */
SPI.begin();
/* Initialise the RFID reader */
mfrc522.PCD_Init();
}
void loop()
{
//doc gia tri working ve
while (Serial.available())
{
val = Serial.read();
delay(200);
}
if (val=='2')
{
//tim the moi
if(!mfrc522.PICC_IsNewCardPresent())
{
return;
}
//doc the
if (!mfrc522.PICC_ReadCardSerial())
{
return;
}
uidDEC = 0;
//hien thi so uid cua the
for (byte i = 0; i< mfrc522.uid.size;i++){
uidDECTemp = mfrc522.uid.uidByte[i];
uidDEC = uidDEC*256+uidDECTemp;
}
Serial.println(String(uidDEC));
//Serial.println("/n");
//Halt PICC
mfrc522.PICC_HaltA();//dung lai
return;
delay(1);
}
else if (val == '2') }
b) Mạch đấu dây driver và động cơ bước.
void setup()
{
/*
modbus registers follow the following format
00001-09999 Digital Outputs, A master device can read and write to these
registers
10001-19999 Digital Inputs, A master device can only read the values from these
registers
30001-39999 Analog Inputs, A master device can only read the values from these
registers
40001-49999 Analog Outputs, A master device can read and write to these
registers
Analog values are 16 bit unsigned words stored with a range of 0-32767
Digital values are stored as bytes, a zero value is OFF and any nonzer value is ON
*/