Tổng hợp bài tập lập trình nhúng mới nhất dành cho người tự học

Tổng hợp bài tập lập trình nhúng mới nhất dành cho người tự học

Chia sẻ kiến thức 01/02/2024

Bài tập lập trình nhúng là một phần quan trọng trong quá trình học tập và phát triển kỹ năng lập trình nhúng. Bài tập giúp bạn thực hành các kiến thức và kỹ năng đã học, đồng thời phát triển khả năng giải quyết vấn đề và tư duy logic.

Tổng hợp bài tập lập trình nhúng mới nhất dành cho người tự học
Tổng hợp bài tập lập trình nhúng mới nhất dành cho người tự học (Nguồn ảnh: Internet)

Dưới đây là một số bài tập lập trình nhúng phổ biến:

  • Bài tập điều khiển LED: Bài tập này yêu cầu bạn viết chương trình để điều khiển các LED trên board mạch vi điều khiển. Bạn có thể yêu cầu LED nhấp nháy, sáng hoặc tắt theo một số quy tắc nhất định.
  • Bài tập đọc cảm biến: Bài tập này yêu cầu bạn viết chương trình để đọc dữ liệu từ các cảm biến, chẳng hạn như cảm biến nhiệt độ, cảm biến ánh sáng, v.v. Bạn có thể sử dụng dữ liệu này để điều khiển các thiết bị khác hoặc để thu thập dữ liệu.
  • Bài tập giao tiếp với máy tính: Bài tập này yêu cầu bạn viết chương trình để giao tiếp với máy tính. Bạn có thể sử dụng giao thức serial, giao thức USB, v.v. để truyền dữ liệu giữa vi điều khiển và máy tính.
  • Bài tập giao tiếp với các thiết bị khác: Bài tập này yêu cầu bạn viết chương trình để giao tiếp với các thiết bị khác, chẳng hạn như màn hình LCD, màn hình cảm ứng, v.v. Bạn có thể sử dụng giao thức I2C, giao thức SPI, v.v. để giao tiếp với các thiết bị này.

1. Bài tập điều khiển LED

Đây là một bài tập cơ bản trong lập trình nhúng. Bài tập này yêu cầu bạn viết chương trình để điều khiển các LED trên board mạch vi điều khiển. Bạn có thể yêu cầu LED nhấp nháy, sáng hoặc tắt theo một số quy tắc nhất định.

Chương trình sau sẽ làm cho LED nhấp nháy với tốc độ 1 giây:

C

#include <stdio.h>

int main(void) {

  // Khai báo biến để lưu trữ địa chỉ của LED

  int led = GPIO_PORTA_OUT;

  // Thiết lập LED thành trạng thái tắt

  GPIO_Write(led, 0);

  // Vòng lặp nhấp nháy

  while (1) {

    // Bật LED

    GPIO_Write(led, 1);

    // Delay 1 giây

    delay(1000);

    // Tắt LED

    GPIO_Write(led, 0);

    // Delay 1 giây

    delay(1000);

  }

 

  return 0;

}

2. Bài tập đọc cảm biến

Bí kíp để người làm công việc lập trình nhúng
(Nguồn ảnh: Internet)

Đây là một bài tập quan trọng trong lập trình nhúng. Bài tập này yêu cầu bạn viết chương trình để đọc dữ liệu từ các cảm biến, chẳng hạn như cảm biến nhiệt độ, cảm biến ánh sáng, v.v. Bạn có thể sử dụng dữ liệu này để điều khiển các thiết bị khác hoặc để thu thập dữ liệu.

Ví dụ:

Chương trình sau sẽ đọc dữ liệu từ cảm biến nhiệt độ và hiển thị dữ liệu trên màn hình LCD:

C

#include <stdio.h>

#include <stdlib.h>

#include <wiringPi.h>

// Khai báo biến để lưu trữ địa chỉ của cảm biến nhiệt độ

int sensor = ADC_0;

// Khai báo biến để lưu trữ dữ liệu nhiệt độ

float temp;

// Khai báo biến để lưu trữ địa chỉ của màn hình LCD

int lcd = LCD_I2C_ADDR;

int main(void) {

  // Khởi tạo GPIO

  wiringPiSetup();

  // Khởi tạo màn hình LCD

  lcdInit(lcd);

  // Vòng lặp đọc nhiệt độ

  while (1) {

    // Đọc dữ liệu từ cảm biến nhiệt độ

    temp = readTemp(sensor);

    // Hiển thị dữ liệu nhiệt độ trên màn hình LCD

    lcdPrint(lcd, “Nhiệt độ: %.2f °C”, temp);

    // Delay 1 giây

    delay(1000);

  }

  return 0;

}

float readTemp(int sensor) {

  // Khởi tạo biến để lưu trữ dữ liệu nhiệt độ

  float temp;

  // Đọc dữ liệu từ cảm biến nhiệt độ

  temp = (float)analogRead(sensor) / 1023.0 * 25.0;

  // Trả về dữ liệu nhiệt độ

  return temp;

}

3. Bài tập giao tiếp với máy tính

Bài tập giao tiếp với máy tính
Bài tập giao tiếp với máy tính (Nguồn ảnh: Internet)

Đây là một bài tập quan trọng trong lập trình nhúng. Bài tập này yêu cầu bạn viết chương trình để giao tiếp với máy tính. Bạn có thể sử dụng giao thức serial, giao thức USB, v.v. để truyền dữ liệu giữa vi điều khiển và máy tính.

Ví dụ:

Chương trình sau sẽ gửi dữ liệu đến máy tính qua giao thức serial:

C

#include <stdio.h>

#include <stdlib.h>

#include <wiringPi.h>

 

// Khai báo biến để lưu trữ địa chỉ của cổng serial

int serial = SERIAL_0;

 

// Khai báo biến để lưu trữ dữ liệu cần gửi

char data[] = “Hello, World!”;

int main(void) {

  // Khởi tạo GPIO

  wiringPiSetup();

 

  // Khởi tạo cổng serial

  serialOpen(serial, 9600, 8, ‘N’, 1);

 

  // Gửi dữ liệu đến máy tính

  serialWrite(serial, data, strlen(data));

 

  // Đóng cổng serial

  serialClose(serial);

 

  return 0;

}

4. Bài tập điều khiển thiết bị IoT

Bài tập điều khiển thiết bị IoT
Bài tập điều khiển thiết bị IoT(Nguồn ảnh: Internet)

Bài tập điều khiển thiết bị IoT là một bài tập nâng cao trong lập trình nhúng. Bài tập này yêu cầu bạn viết chương trình để điều khiển các thiết bị IoT, chẳng hạn như đèn thông minh, ổ khóa thông minh, v.v.

C

#include <stdio.h>

int main(void) {

  // Khai báo biến để lưu trữ địa chỉ của cổng serial

  int serial = SERIAL_0;

 

  // Khởi tạo GPIO

  wiringPiSetup();

 

  // Khởi tạo cổng serial

  serialOpen(serial, 9600, 8, ‘N’, 1);

 

  // Vòng lặp đọc dữ liệu từ điện thoại thông minh

  while (1) {

    // Đọc dữ liệu từ điện thoại thông minh

    char data[100];

    serialRead(serial, data, sizeof(data));

 

    // Nếu dữ liệu là “ON”, bật đèn

    if (strcmp(data, “ON”) == 0) {

      digitalWrite(LED_BUILTIN, HIGH);

    }

 

    // Nếu dữ liệu là “OFF”, tắt đèn

    else if (strcmp(data, “OFF”) == 0) {

      digitalWrite(LED_BUILTIN, LOW);

    }

  }

 

  // Đóng cổng serial

  serialClose(serial);

 

  return 0;

}

5. Ứng dụng trên điện thoại thông minh

Ứng dụng trên điện thoại thông minh
Ứng dụng trên điện thoại thông minh(Nguồn ảnh: Internet)

Ứng dụng trên điện thoại thông minh có thể sử dụng giao thức Bluetooth hoặc Wi-Fi để giao tiếp với vi điều khiển.

Ví dụ về ứng dụng trên điện thoại thông minh sử dụng giao thức Bluetooth:

Python

import bluetooth

def main():

  # Kết nối với vi điều khiển

  device = bluetooth.find_service(name=”LED_Controller”)

  sock = bluetooth.connect(device[“address”], device[“port”])

 

  # Gửi lệnh “ON” để bật đèn

  sock.send(“ON”)

 

  # Gửi lệnh “OFF” để tắt đèn

  sock.send(“OFF”)

 

  # Đóng kết nối

  sock.close()

 

if __name__ == “__main__”:

  main()

Lập trình nhúng là một lĩnh vực có nhiều cơ hội việc làm. Các kỹ sư lập trình nhúng có thể làm việc trong nhiều ngành nghề khác nhau, bao gồm điện tử, ô tô, tự động hóa, y tế,… Hãy bắt đầu ngay để trở thành chuyên gia lập trình nhúng Embedded Engineer tại FUNiX.

FUNiX luôn mang đến những khóa học nâng cao

Để biết thêm chi tiết về các khóa học CNTT tại FUNiX, bạn hãy liên hệ với đơn vị ngay để được đội ngũ chuyên viên tư vấn ngay tại đây:

>>>Xem thêm chuỗi bài viết liên quan:

Lập trình nhúng cần học những gì? 6 kiến thức & kỹ năng cần trang bị

Lập trình nhúng là làm gì? Cơ hội việc làm sau khi ra trường

Thị trường lập trình nhúng tuyển dụng sôi động 2023. Gợi ý bạn những kỹ năng cần thiết

Ứng dụng trí tuệ nhân tạo AI trong giáo dục đổi mới

Cơ hội làm việc toàn cầu với ngành trí tuệ nhân tạo AI

Top 8 ý tưởng dự án trí tuệ nhân tạo hàng đầu năm 2023

Lưu Thị Lan Anh

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại