tuenhi.n2012 gửi vào
- 13974 lượt xem
Cộng đồng Arduino Việt Nam
Điểm cộng đồng là gì? Nó có ích gì cho bạn, tìm hiểu ngay!
tuenhi.n2012 gửi vào
ksp gửi vào
Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười
. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.
ksp gửi vào
Mình rất tự hào và hãnh diện, khi thư viện made in Việt Nam đầu tiên của Thái Sơn (Nick Chung) được mình tải lên tại Arduino Create với mục đích thử nghiệm việc biên dịch code online trên Arduino Create đã hoàn thành công việc của nó ngay trong lần thử đầu tiên. Qua bài viết này, mình xin hướng dẫn các bạn lập trình Arduino với Arduino Create thông qua việc làm một ví dụ mẫu về việc cài thư viện và sử dụng nó trên Arduino Create.
tuenhi.n2012 gửi vào
Bộ điều khiển PID là một bộ điều khiển vòng kín được sử dụng rộng rãi trong hệ thống điện, hệ thống tự động, điện tử. Mục tiêu của bộ điều khiển PID là điều chỉnh giá trị điều khiển ở ngõ ra Ouput sao cho sai lệch Error e(t) = (SP – PV) giữa giá trị đo được của hệ thống PV (Process Variable) với giá trị cài đặt SP (SetPoint) nhỏ nhất có thể (
tuenhi.n2012 gửi vào
Hôm nay mình xin chia sẻ với các bạn cách làm một robot tự cân bằng trên hai bánh xe bằng Arduino từ xe đồ chơi bị hỏng của thằng nhóc ở nhà. Tất nhiên, hai động cơ và hai bánh xe chưa bị hỏng nhé.
. Để robot tự cân bằng trên hai bánh xe thì chuyển động của nó tương tự như việc giữ thăng bằng một cây gậy trên ngón tay. Điều này chắc các bạn cũng đã từng thử trước đây.
Hãy trở thành thành viên của Cộng đồng Arudino Việt Nam để mở khóa chức năng này.
I. GIỚI THIỆU
II. B.O.M
No.
Item
Spec
Q'ty
Unit
Remarks
1
RBG LEDs
5mm 4-pin RGB LEDs, common anode, diffused
256
pcs
2
IR LEDs
56
pcs
3
IR photo-transistors
64
pcs
4
74HC595
8 channel shift register
12
pcs
5
ULN2803
12
pcs
6
TIP42C
8
pcs
7
2N2222
8
pcs
8
74HC4051
Analog multiplexer IC 8: 1
8
pcs
9
Arduino Uno/ Mega
1
pcs
10
Dây đồng/ Kẽm
Copper wire
1
spools
Dùng nhiều
11
R100
200
pcs
Hạn dòng LED
12
Tụ 0.1uF
16
pcs
13
R1K
20
pcs
14
R10K
40
pcs
15
Bus 8
20
pcs
16
Bus 4
4
pcs
17
Mica trong/đục
1
pcs
18
Jack 3.5mm & dây
1
pcs
Để làm VU meter
19
Jack nguồn, linh tinh khác
1
pcs
20
Power Supply 20A 5V
1
pcs
III. MẠCH NGUYÊN LÝ
3.1. Table template
3.2. Mạch nguyên lý
3.3. Hình ảnh BÀN LED TƯƠNG TÁC thực tế
IV. CHƯƠNG TRÌNH
4.1. Chương trình chính
void Interactive_Table() { if ( (unsigned long) (micros() - samplingtime) > 200 ) // Read 8 phototransistors every 200us { // Read 8 phototransistors every 200us and store data into array phototransistor_data[0 + photo_adder] = analogRead(A0); phototransistor_data[8 + photo_adder] = analogRead(A1); phototransistor_data[16 + photo_adder] = analogRead(A2); phototransistor_data[24 + photo_adder] = analogRead(A3); phototransistor_data[32 + photo_adder] = analogRead(A4); phototransistor_data[40 + photo_adder] = analogRead(A5); phototransistor_data[48 + photo_adder] = analogRead(A6); phototransistor_data[56 + photo_adder] = analogRead(A7); // update sensor group and mux selects for next time through if (photo_adder < 7 ) { photo_adder ++; } else { photo_adder = 0; } digitalWrite(Select1, bitRead(photo_adder, 2)); // sense mux MSB digitalWrite(Select2, bitRead(photo_adder, 1)); digitalWrite(Select3, bitRead(photo_adder, 0)); // sense mux LSB samplingtime = micros(); } for (byte i=0; i<64; i++) { if (phototransistor_data[i] < LimitSense) { ClearLightZone(i); // clear color } else { SetLightZone(i, 15, 0, 0); // set RED color } } }4.2. Các chương trình con
void SetLightZone(byte Zone, byte R, byte G, byte B) { switch (Zone) { case 0: DrawLight(Zone00, R, G, B); break; case 1: DrawLight(Zone01, R, G, B); break; case 2: DrawLight(Zone02, R, G, B); break; case 3: DrawLight(Zone03, R, G, B); break; case 4: DrawLight(Zone04, R, G, B); break; case 5: DrawLight(Zone05, R, G, B); break; case 6: DrawLight(Zone06, R, G, B); break; case 7: DrawLight(Zone07, R, G, B); break; case 8: DrawLight(Zone08, R, G, B); break; case 9: DrawLight(Zone09, R, G, B); break; case 10: DrawLight(Zone10, R, G, B); break; case 11: DrawLight(Zone11, R, G, B); break; case 12: DrawLight(Zone12, R, G, B); break; case 13: DrawLight(Zone13, R, G, B); break; case 14: DrawLight(Zone14, R, G, B); break; case 15: DrawLight(Zone15, R, G, B); break; case 16: DrawLight(Zone16, R, G, B); break; case 17: DrawLight(Zone17, R, G, B); break; case 18: DrawLight(Zone18, R, G, B); break; case 19: DrawLight(Zone19, R, G, B); break; case 20: DrawLight(Zone20, R, G, B); break; case 21: DrawLight(Zone21, R, G, B); break; case 22: DrawLight(Zone22, R, G, B); break; case 23: DrawLight(Zone23, R, G, B); break; case 24: DrawLight(Zone24, R, G, B); break; case 25: DrawLight(Zone25, R, G, B); break; case 26: DrawLight(Zone26, R, G, B); break; case 27: DrawLight(Zone27, R, G, B); break; case 28: DrawLight(Zone28, R, G, B); break; case 29: DrawLight(Zone29, R, G, B); break; case 30: DrawLight(Zone30, R, G, B); break; case 31: DrawLight(Zone31, R, G, B); break; case 32: DrawLight(Zone32, R, G, B); break; case 33: DrawLight(Zone33, R, G, B); break; case 34: DrawLight(Zone34, R, G, B); break; case 35: DrawLight(Zone35, R, G, B); break; case 36: DrawLight(Zone36, R, G, B); break; case 37: DrawLight(Zone37, R, G, B); break; case 38: DrawLight(Zone38, R, G, B); break; case 39: DrawLight(Zone39, R, G, B); break; case 40: DrawLight(Zone40, R, G, B); break; case 41: DrawLight(Zone41, R, G, B); break; case 42: DrawLight(Zone42, R, G, B); break; case 43: DrawLight(Zone43, R, G, B); break; case 44: DrawLight(Zone44, R, G, B); break; case 45: DrawLight(Zone45, R, G, B); break; case 46: DrawLight(Zone46, R, G, B); break; case 47: DrawLight(Zone47, R, G, B); break; case 48: DrawLight(Zone48, R, G, B); break; case 49: DrawLight(Zone49, R, G, B); break; case 50: DrawLight(Zone50, R, G, B); break; case 51: DrawLight(Zone51, R, G, B); break; case 52: DrawLight(Zone52, R, G, B); break; case 53: DrawLight(Zone53, R, G, B); break; case 54: DrawLight(Zone54, R, G, B); break; case 55: DrawLight(Zone55, R, G, B); break; case 56: DrawLight(Zone56, R, G, B); break; case 57: DrawLight(Zone57, R, G, B); break; case 58: DrawLight(Zone58, R, G, B); break; case 59: DrawLight(Zone59, R, G, B); break; case 60: DrawLight(Zone60, R, G, B); break; case 61: DrawLight(Zone61, R, G, B); break; case 62: DrawLight(Zone62, R, G, B); break; case 63: DrawLight(Zone63, R, G, B); break; } } void DrawLight(byte zone_dots[4][2], byte R, byte G, byte B) { for (int i = 0; i < 4; i++) { LED(zone_dots[i][0], zone_dots[i][1], R, G, B); //delay_ms(10); } }4.3. Giải thích chương trình
V. LỜI KẾT