專題範例_超音波感應螢幕

 



1.使用ChatGPT 

2.貼學校網站上的 8X8 LED 還有SONIC 程式碼供ChatGPT 參考

3.請ChatGPT參考

4.裝LEDCONTROL 程式庫(8X8 LED)






ChatGPT 提供程式碼如下:





#include <LedControl.h>


// 設定 8x8 LED 矩陣的腳位 (DIN, CLK, CS)

#define DATA_IN   5

#define CLK        7

#define LOAD       6


// 初始化 LedControl 物件,控制一個 LED 矩陣

LedControl lc = LedControl(DATA_IN, CLK, LOAD, 1);


// 超音波感測器腳位定義

#define echoPin 8

#define trigPin 9


void setup() {

  // 設定腳位模式

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

  

  // 設定 LED 矩陣初始設定

  lc.shutdown(0, false);  // 開啟顯示

  lc.setIntensity(0, 8);   // 設定亮度,範圍是 0 到 15

  lc.clearDisplay(0);      // 清除顯示內容

  

  Serial.begin(9600);      // 啟動序列監控器,用來除錯

}


void loop() {

  long duration, distance;

  

  // 觸發超音波感測器

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  

  // 接收回音信號

  duration = pulseIn(echoPin, HIGH);

  

  // 計算距離 (單位:cm)

  distance = (duration / 2) / 29.1;

  

  // 根據距離顯示不同的圖案

  if (distance < 100) {  // 若距離小於 100 cm,顯示愛心圖案

    showHeart();

  } else {  // 若距離大於等於 100 cm,清除顯示

    lc.clearDisplay(0);

  }

  

  delay(500);  // 延遲 500 毫秒

}


// 顯示愛心圖案

void showHeart() {

  byte heart[8] = {

    B00000000,

    B01101100,

    B11111110,

    B01111100,

    B00111000,

    B00010000,

    B00000000,

    B00000000

  };


  // 顯示愛心圖案到 LED 矩陣

  for (int row = 0; row < 8; row++) {

    lc.setRow(0, row, heart[row]);

  }

}


留言