## Arduino學習紀錄 超音波測距 ```java = float ultrasonic_distance_cm(int trigPin, int echoPin) { digitalWrite(trigPin, LOW); digitalWrite(echoPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); unsigned long sonic_duration = pulseIn(echoPin, HIGH); float distance_cm = (sonic_duration / 2.0) / 29.1; return distance_cm; } void setup() { Serial.begin(9600); pinMode(12, OUTPUT); // trigPin pinMode(13, INPUT); // echoPin } void loop() { Serial.print("distance = "); Serial.println(ultrasonic_distance_cm(12, 13)); delay(1000); // 1秒的延遲 } ``` --- **伺服馬達控制** (似乎是因為電流不夠?旋轉的時候會震動) ```java = #include <Servo.h> Servo servo_2; void setup() { servo_2.attach(5); servo_2.write(90); delayMicroseconds(3000); } void loop() { servo_2.write(10); delayMicroseconds(1000); servo_2.write(90); delayMicroseconds(1000); servo_2.write(170); delayMicroseconds(1000); servo_2.write(90); delayMicroseconds(1000); } ``` --- **LCD** (待整理) ```java = #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 16, 2); // 設置LCD地址和顯示尺寸 void setup() { Wire.begin(); lcd.init(); // 初始化LCD lcd.backlight(); // 打開LCD背光 Serial.begin(9600); Serial.println("LCD Display Example"); // Display your text on the LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Hello, World!"); } void loop() { // Your loop code here, if needed delay(5000); // Delay for 5 seconds (or adjust as needed) } ``` * 要記得下載一些沒有的library ## 小挑戰 待更新 ## 專案進度 幫我們專案的作品進行了一些角色設定! ### **想要交朋友的社恐小怪獸** * 環境太安靜的時候會碎碎念 * 環境太大聲的時候會震動大叫 * 會根據情境改變表情