Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
530,5 KB
Nội dung
Mạch Cảm Ứng Điện Dung Hiển Thị LED Sử Dụng Kit
Arduino
Nhóm 16: Nguyễn Tuấn Duy
Hoàng Minh Phương
Phan Phi Hóa
Nguyễn Minh Tuấn
1. Giới thiệu
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần
cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là
môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học
một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm
nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới
phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một bo Arduino có 20 ngõ
I/O có thể tương tác và điều khiển chừng ấy thiết bị
Hiện nay có rất nhiều loại kit arduino được sử dụng , trong bài báo cáo này nhóm sử dụng
Kit Arduino NaNo( ATmega328) để phù hợp với các điều kiện của nhóm.
1 số hình ảnh kit arduino nano
2. Mô tả Kit Arduino Nano
•
Arduino Nano là một thiết kế nhỏ gọn với chức năng, sức mạnh, phần cứng cũng
như cách sử dụng hoàn toàn tương đương với Arduino Uno, nếu bạn thích sự nhỏ
gọn trong thiết kế thì đây là 1 sự lựa chọn hoàn toàn tối ưu dành cho bạn.
• Arduino Nano sử dụng chip dán ATmega328 (Arduino Nano 3.x) hoặc
Atmega168 (Arduino Nano 2.x). Nó có chức năng tương tự của Arduino
Duemilanove, nhưng khác pakage(gói). Nó thiếu chỉ một jack cắm điện DC, và
làm việc với một cáp USB Mini-B. Nano được thiết kế và được sản xuất rộng
khắp.
• Nguồn Arduino Nano
Arduino Nano có thể được hỗ trợ thông qua kết nối USB Mini-B, với nguồn ngoài giới
hạn 6-20V (pin 30), hoặc 5V quy định cung cấp điện bên ngoài (pin 27). Arduino Nano
tự
động
với
nguồn
điện
áp
cao
nhất.
Chip FTDI FT232RL trên Nano chỉ được hỗ trợ nếu board đang được cung cấp thông qua
cổng USB. Kết quả là, khi chạy nguồn điện ngoài (không USB), đầu ra 3.3V (được cung
cấp bởi chip FTDI) không có sẵn và các đèn LED RX và TX sẽ nhấp nháy nếu chân số 0
hoặc 1 là cao.
• Bộ Nhớ
Các Atmega168 có 16 KB bộ nhớ flash để lưu trữ(trong đó có 2 KB được sử dụng cho bộ
nạp khởi động); các ATmega328 có 32 KB, (cũng với 2 KB được sử dụng cho bộ nạp
khởi động). Atmega168 có 1 KB của SRAM và 512 byte EEPROM (có thể đọc và ghi
với thư viện EEPROM); các ATmega328 có 2 KB của SRAM và 1 KB EEPROM
Sơ đồ và chức năng các chân của Arduino Nano
•
Bộ Nhớ
Các Atmega168 có 16 KB bộ nhớ flash để lýu
trữ(trong đó có 2 KB đýợc sử dụng cho bộ nạp
khởi động); các ATmega328 có 32 KB, (cũng với 2
KB đýợc sử dụng cho bộ nạp khởi động).
Atmega168 có 1 KB của SRAM và 512 byte
EEPROM (có thể đọc và ghi với thý viện
EEPROM); các ATmega328 có 2 KB của SRAM và
1 KB EEPROM.
Sõ đồ và chức năng các chân của
Arduino Nano
Chân Input / Output
Với mỗi chân trong số 14 chân (digital) trên Nano có thể được sử dụng như một đầu
vào hay đầu ra, qua việc sử dụng pinMode (), digitalWrite (), và digitalRead (). Mỗi chân
đó hoạt động ở mức 5 volts. Mỗi pin có thể cung cấp hoặc nhận tối đa 40 mA và có một
điện trở kéo lên bên trong (ngắt kết nối theo mặc định) 20-50 kohms. Ngoài ra, một số
chân có chức năng khác như:
Serial: 0 (RX) và 1 (TX). Được sử dụng để nhận (RX) và truyền tải (TX) TTL dữ
liệu nối tiếp. Các chân này được kết nối với các chân tương ứng của FTDI USB-to-TTL
và nối tiếp chip.
Ngắt ngoài(pin 2 và 3):Các chân có thể được code để kích hoạt một ngắt trên một
giá trị thấp, một xung lên và xuống, hoặc một sự thay đổi về giá trị.
PWM: 3, 5, 6, 9, 10, và 11Cung cấp 8-bit đầu ra PWM với analogWrite ()
SPI: 10 (SS), 11 (MOSI), 12 (miso), 13 (SCK)Những chân hỗ trợ SPI truyền
thông
LED: 13 Có một LED kết nối với pin số 13. Khi pin là giá trị cao, đèn LED được
bật, khi pin là thấp, nó ra.
Arduino Nano có 8 đầu vào tương tự, mỗi trong số đó cung cấp độ phân giải 10 bit
(tức là năm 1024 giá trị khác nhau). Theo mặc định thì mức điện sẽ là 5 volts, tuy nhiên
có thể thay đổi phạm vi của nó bằng cách sử dụng analogReference () chức năng. Chân
Analog 6 và 7 không thể được sử dụng như chân số (digital).
Ngoài ra, một số chân có chức năng khác:
I2C: 4 (SDA) và 5 (SCL). Hỗ trợ I2C (TWI) giao tiếp bằng cách sử dụng Wire
library.
Aref. Điện áp tham chiếu cho các đầu vào tương tự. Được sử dụng với
analogReference ().
Reset: Thiết lập lại hệ thống.
3. Sơ đồ nguyên lý
3. Sõ đồ nguyên lý
c
Thiết đặt các phần cứng cơ bản
+) Thiết đặt LED
+) Thiết đặt công tắc
+) Thiết đặt biến trở
4.Code
#define set_PortB (1 3)][8] = {
0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66},
0x66, 0x66, 0x7c, 0x7e, 0x66, 0x66, 0x7c},
0x76, 0x62, 0x60, 0x60, 0x62, 0x76, 0x3c},
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c},
0x60, 0x60, 0x7e, 0x7e, 0x60, 0x60, 0x7e},
0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66},
unsigned char fon[20][8] = {
//{0x7E, 0x18, 0x18, 0x18,
//{0x3c, 0x18, 0x18, 0x18,
//{0x7e, 0x60, 0x60, 0x7e,
//{0x66, 0x76, 0x76, 0x7e,
//{0x3c, 0x66, 0x60, 0x7c,
//{0x3c, 0x7E, 0x66, 0x66,
0x18,
0x18,
0x7e,
0x6e,
0x66,
0x3e,
0x18,
0x18,
0x60,
0x66,
0x66,
0x06,
0x18,
0x18,
0x60,
0x66,
0x7E,
0x66,
//
//
//
//
//
//
0x18},
0x3c},
0x7e},
0x66},
0x3c},
0x3c},
A
B
C
D
E
A
//
//
//
//
//
//
T
I
E
N
6
9
{0x7c,
{0x30,
{0xC6,
{0x66,
{0x3F,
{0x66,
0x66,
0x71,
0xC6,
0x66,
0x0C,
0x66,
0x66,
0x30,
0xC3,
0xC6,
0x0C,
0x66,
0x66,
0x30,
0xC1,
0x86,
0x0C,
0x7E,
0x66,
0x30,
0xC1,
0x86,
0x0C,
0x7E,
0x66,
0x30,
0xC3,
0xC6,
0x0C,
0x66,
0x66,
0x30,
0xC6,
0x66,
0x0C,
0x66,
0x7c},
0x79},
0xe6},
0x67},
0xCC},
0x66},
//
//
//
//
//
//
D
1-1
1-x
x-L
L-T
H
{0x66,
{0x66,
{0x3c,
{0xC3,
{0x18,
{0x3c,
0x76,
0x66,
0x66,
0xE7,
0x38,
0x66,
0x76,
0x66,
0x66,
0xFF,
0x18,
0x60,
0x7e,
0x7E,
0x66,
0xDB,
0x18,
0x7c,
0x6e,
0x7E,
0x66,
0xC3,
0x18,
0x66,
0x66,
0x66,
0x66,
0xC3,
0x18,
0x66,
0x66,
0x66,
0x66,
0xC3,
0x18,
0x7E,
0x66},
0x66},
0x3c},
0xC3},
0x7E},
0x3c},
//
//
//
//
//
//
N
H
O
M
1
6
{0x7c,
{0x18,
{0x18,
{0x00,
{0x00,
{0x00,
0x66,
0x38,
0x38,
0x00,
0x00,
0x00,
0x66,
0x18,
0x18,
0x00,
0x00,
0x00,
0x66,
0x18,
0x18,
0x00,
0x00,
0x00,
0x66,
0x18,
0x18,
0x00,
0x00,
0x00,
0x66,
0x18,
0x18,
0x00,
0x00,
0x00,
0x66,
0x18,
0x18,
0x00,
0x00,
0x00,
0x7c},
0x7E},
0x7E},
0x00},
0x00},
0x00}
// D
// 1
// 1
};
unsigned char
{
0x00, 0xfe,
0x00, 0xff,
0x00, 0x7e,
0x00, 0xff,
0x00, 0x7e,
0x00, 0xff,
0x00, 0xfe,
};
Row_Data_Offset[128] =
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0x19,
0x99,
0xc3,
0x81,
0xc3,
0x99,
0x19,
0x19,
0x99,
0x81,
0x81,
0x81,
0x99,
0x19,
0xff,
0xff,
0xc3,
0xff,
0xc3,
0xff,
0xff,
unsigned char Col_Data_Offset[32][4] =
{
0xfe,
0x76,
0x66,
0x7e,
0x66,
0x76,
0xfe,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
//
//
//
//
//
//
//
A
B
C
D
C
B
A
{0x80,
{0x40,
{0x20,
{0x10,
{0x08,
{0x04,
{0x02,
{0x01,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
{0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x80,
0x40,
0x20,
0x10,
0x08,
0x04,
0x02,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x80,
0x40,
0x20,
0x10,
0x08,
0x04,
0x02,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x00},
0x80},
0x40},
0x20},
0x10},
0x08},
0x04},
0x02},
0x01}
};
int i, j;
int temp;
int buttonState[4], Last, State;
void GPIO_Init(void)
{
// Output
pinMode(CLK_ROW, OUTPUT);
pinMode(DATA_ROW, OUTPUT);
pinMode(CHOT, OUTPUT);
pinMode(CLK_COL, OUTPUT);
pinMode(DATA_COL, OUTPUT);
// input
pinMode(BUTTON1,
pinMode(BUTTON2,
pinMode(BUTTON3,
pinMode(BUTTON4,
INPUT);
INPUT);
INPUT);
INPUT);
}
void ShiftOut_Row(unsigned char TxData)
{
unsigned int i, temp;
for( i=0; i 3;
Number_Row = Number_Row >> 3;
}
for(k=0; k[...]... nhiều loại robot, đặc biệt là robot di động 6 Kết luận Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong cộng đồng nguồn mở (open-source) Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết đến nhiều Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản... làm được trên thị trường thiết bị di động Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Do thời gian có hạn nên nhóm làm mạch cũng như... } */ } 5 Ứng dụng trong trong thực tế Máy in 3D Một cuộc cách mạng khác cũng đang âm thầm định hình nhờ vào Arduino, đó là sự phát triển máy in 3D nguồn mở Reprap Máy in 3D là công cụ giúp tạo ra các vật thể thực trực tiếp từ các file CAD 3D Công nghệ này hứa hẹn nhiều ứng dụng rất thú vị trong đó có cách mạng hóa việc sản xuất cá nhân Robot Do kích thước nhỏ gọn và khả năng xử lý mạnh mẽ, Arduino được... khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Do thời gian có hạn nên nhóm làm mạch cũng như báo cáo còn chỗ thiếu xót Mong thầy và các bạn thông cảm Nhóm cũng xin cảm ơn thầy Nguyễn Ngọc Minh đã giúp đỡ nhóm hoàn thành báo cáo này ... digitalWrite(CHOT, 0); // CHOT = 0; digitalWrite(CHOT, 1); // CHOT = 1; //for(m=0; m> 3; Number_Row ... Hiện có nhiều loại kit arduino sử dụng , báo cáo nhóm sử dụng Kit Arduino NaNo( ATmega328) để phù hợp với điều kiện nhóm số hình ảnh kit arduino nano Mô tả Kit Arduino Nano • Arduino Nano thiết... sức mạnh, phần cứng cách sử dụng hoàn toàn tương đương với Arduino Uno, bạn thích nhỏ gọn thiết kế lựa chọn hoàn toàn tối ưu dành cho bạn • Arduino Nano sử dụng chip dán ATmega328 (Arduino Nano... Arduino sử dụng rộng rãi giới, ngày chứng tỏ sức mạnh chúng thông qua vô số ứng dụng độc đáo người dùng cộng đồng nguồn mở (open-source) Tuy nhiên Việt Nam Arduino chưa biết đến nhiều Arduino