Mục lục:

Vôn kế kỹ thuật số với CloudX: 6 bước
Vôn kế kỹ thuật số với CloudX: 6 bước

Video: Vôn kế kỹ thuật số với CloudX: 6 bước

Video: Vôn kế kỹ thuật số với CloudX: 6 bước
Video: Chỉ Số P/E, EPS và PEG Có Nghĩa Là Gì? (3 Ứng Dụng Ngay) | CÚ Thông Thái 2024, Tháng mười một
Anonim
Vôn kế kỹ thuật số với CloudX
Vôn kế kỹ thuật số với CloudX

Pin cung cấp dạng điện một chiều (dòng điện một chiều) tinh khiết hơn khi được sử dụng trong các mạch điện. Mức độ tiếng ồn thấp của chúng luôn làm cho chúng phù hợp hoàn hảo cho một số mạch rất nhạy cảm. Tuy nhiên, tại những thời điểm khi mức điện áp của chúng giảm xuống dưới một điểm ngưỡng nhất định, các mạch - (mà chúng được dùng để cấp nguồn), có thể hoạt động thất thường; đặc biệt là khi chúng không được thiết kế tốt để xử lý điều đó.

Do đó, phát sinh nhu cầu thường xuyên theo dõi mức năng lượng của pin để hướng dẫn chúng tôi một cách chính xác về thời điểm cần thay thế toàn bộ hoặc sạc trong trường hợp pin sạc lại được. Do đó, trong DIY (Do It Yourself) này, chúng tôi sẽ thiết kế một đồng hồ đo điện áp pin đơn giản bằng CloudX – sử dụng 7Segment làm màn hình của chúng tôi.

Bước 1: Yêu cầu phần cứng

Mô-đun vi điều khiển CloudX

CloudX USB

SoftCard

Hiển thị 7 phân đoạn

Điện trở

Máy phát điện

Breadboard

Jumper (Kết nối) Dây

Bước 2: Vi điều khiển CloudX M633

Vi điều khiển CloudX M633
Vi điều khiển CloudX M633

Mô-đun vi điều khiển CloudX

Mô-đun CloudX là một công cụ phần cứng thiết kế điện tử cho phép bạn giao tiếp với thế giới vật lý một cách thuận tiện và dễ dàng thông qua một bảng vi điều khiển đơn giản. Toàn bộ nền tảng dựa trên một máy tính vật lý mã nguồn mở. Tính đơn giản của một IDE (Môi trường phát triển tích hợp) thực sự làm cho nó hoàn toàn phù hợp cho người mới bắt đầu, nhưng vẫn giữ được chức năng đủ để cho phép người dùng cuối nâng cao điều hướng theo cách của họ. Trong một nut-shell, CloudX cung cấp một quy trình xử lý vi điều khiển được đơn giản hóa hơn nhiều - bằng cách trừu tượng hóa các chi tiết phức tạp thông thường liên quan đến nó; đồng thời cung cấp một nền tảng trải nghiệm người dùng rất phong phú. Nó tìm thấy các ứng dụng rộng rãi trên khắp mọi miền: trường học, như một công cụ Giáo dục tuyệt vời; các sản phẩm công nghiệp và thương mại; và như một công cụ tiện ích tuyệt vời trong tay của một người yêu thích.

Bước 3: Ghim kết nối

Kết nối ghim
Kết nối ghim

Các chân 7 đoạn: A, B, C, D, E, F, G, 1, 2 và 3 được kết nối với chân của CloudX-MCU1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 và pin11 tương ứng.

Bước 4: Sơ đồ mạch

Sơ đồ mạch
Sơ đồ mạch

Mô-đun vi điều khiển, đang ở giai đoạn trung tâm ở đây, có thể được bật nguồn:

hoặc thông qua các điểm Vin và Gnd (tức là kết nối chúng với các thiết bị đầu cuối + ve và –ve của bộ cấp nguồn bên ngoài của bạn tương ứng) trên bảng;

hoặc thông qua mô-đun thẻ mềm CloudX USB của bạn

. Hơn nữa, như có thể dễ dàng nhìn thấy từ sơ đồ mạch ở trên, điện áp pin đầu vào được giao tiếp với mô-đun MCU (vi điều khiển) sao cho – điểm của mạng phân áp (được hình thành bởi và) được kết nối với A0 của chân MCU.

và được chọn theo cách để:

hạn chế lượng dòng điện chạy qua mạng;

giới hạn trong phạm vi an toàn (0 - 5) V đối với MCU.

Sử dụng công thức: VOUT = (R2 / (R1 + R2)) * VIN; và có thể dễ dàng được đánh giá.

Voutmax = 5V

và đối với dự án này, chúng tôi chọn: Vinmax = 50V;

5 = (R2 / (R1 + R2)) * 50 R1 = 45/5 * R2 Lấy R2 = 10kΩ chẳng hạn; R1 = 45/5 * 10 = 90kΩ

Bước 5: Nguyên lý hoạt động

Khi điện áp đo đầu vào được đọc qua điểm VOUT của mạng phân áp, dữ liệu được xử lý thêm trong MCU để đánh giá đến giá trị thực cuối cùng hiển thị trên đơn vị phân đoạn. Nó (thiết kế hệ thống) là một dấu chấm thập phân tự động, trong đó nó (dấu thập phân) thực sự thay đổi vị trí trên chính đơn vị hiển thị phù hợp với những gì giá trị float quy định tại bất kỳ thời điểm nhất định nào. Sau đó, toàn bộ đơn vị hiển thị 7-Segment phần cứng được kết nối trong chế độ ghép kênh. Đây là một sự sắp xếp đặc biệt, theo đó cùng một bus dữ liệu (8 chân dữ liệu) từ MCU cấp nguồn cho ba đoạn 7 hoạt động trong đơn vị hiển thị. Việc gửi mẫu dữ liệu vào từng bộ phận thành phần được thực hiện bởi một quá trình được gọi là Quét. Quét là một kỹ thuật liên quan đến việc gửi dữ liệu đến từng phân đoạn trong số 7 thành phần; và bật (tức là bật) chúng liên tiếp nhanh chóng khi dữ liệu tương ứng của chúng đến. Tỷ lệ giải quyết từng vấn đề trong số chúng được thực hiện sao cho thành công trong việc đánh lừa thị giác của con người tin rằng tất cả chúng (các bộ phận cấu thành) đều được kích hoạt (giải quyết) cùng một lúc. Trên thực tế, nó (quét) sử dụng một hiện tượng được gọi là Persistence Of Vision.

Bước 6: Chương trình phần mềm

#bao gồm

#bao gồm

#bao gồm

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int decimalPoint, batt;

/ * mảng lưu trữ mẫu phân đoạn cho mỗi chữ số nhất định * /

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

trưng bày() {

char không dấu tôi;

if (decimalPoint <10) {

disp0 = (int) batt_voltage / 100; // tìm nạp MSD (Chữ số quan trọng nhất)

// là trọng số cao nhất

/ * lấy chữ số có trọng số tiếp theo; và như thế */

disp1 = ((int) batt_voltage% 100) / 10;

disp2 = ((int) batt_voltage% 10);

}

khác {

disp0 = (int) batt_voltage / 1000;

disp1 = ((int) batt_voltage% 1000) / 100;

disp2 = ((int) batt_voltage% 100) / 10;

}

/ * Các mẫu được đổ ra để hiển thị; và ký tự 0x80 thêm dấu thập phân

nếu điều kiện liên quan đúng * /

for (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = CAO;

if (decimalPoint <10)

portWrite (1, CCathodeDisp [disp0] | 0x80);

khác portWrite (1, CCathodeDisp [disp0]);

phân khúc1 = THẤP;

phân2 = CAO;

phân đoạn3 = CAO;

delayMs (5);

pin9 = pin10 = pin11 = CAO;

if ((decimalPoint> = 10) && (decimalPoint <100))

portWrite (1, CCathodeDisp [disp1] | 0x80);

khác portWrite (1, CCathodeDisp [disp1]);

phân1 = CAO;

phân đoạn2 = THẤP;

phân đoạn3 = CAO;

delayMs (5);

pin9 = pin10 = pin11 = CAO;

if (decimalPoint> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

khác portWrite (1, CCathodeDisp [disp2]);

phân1 = CAO;

phân2 = CAO;

phân đoạn3 = THẤP;

delayMs (5);

}

}

setup () {// thiết lập tại đây

analogSetting (); // cổng analog được khởi tạo

portMode (1, OUTPUT); // Chân 1 đến chân 8 được định cấu hình làm chân đầu ra

/ * chân quét được định cấu hình làm chân đầu ra * /

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = CAO; // chân quét (đang hoạt động ở mức thấp)

// bị tắt khi bắt đầu

loop () {// Chương trình ở đây

batt_voltage = analogRead (A0); // lấy giá trị đo được

batt_voltage = ((batt_voltage * 5000) / 1024); // hệ số chuyển đổi cho 5Vin

batt_voltage = (batt_voltage * 50) / 5000; // hệ số chuyển đổi cho 50Vin

decimalPoint = batt_voltage; // đánh dấu vị trí dấu thập phân xuất hiện trong

// giá trị ban đầu trước khi thao tác dữ liệu

trưng bày();

}

}

Đề xuất: