Untitled
unknown
c_cpp
2 years ago
1.5 kB
4
Indexable
#include <ESP32Servo.h> //請先安裝ESP32Servo程式庫 #define LED1 2 #define LED2 16 Servo myServo; //建立一個伺服馬達物件 const byte SW = 18; TaskHandle_t handleA; void warningLight(void *pvParam){ while(1){ pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); digitalWrite(LED1, HIGH); //ledcWriteTone(0, 659); // 通道0的頻率設成659Hz vTaskDelay(50); digitalWrite(LED2, LOW); //ledcWriteTone(0, 440); // 通道0的頻率設成440Hz vTaskDelay(50); digitalWrite(LED1, LOW); //ledcWriteTone(0, 659); // 通道0的頻率設成440Hz vTaskDelay(50); digitalWrite(LED2, HIGH); //ledcWriteTone(0, 440); // 通道0的頻率設成440Hz vTaskDelay(50); yield(); } } void setup(){ Serial.begin(115200); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); myServo.attach(17, 500, 2400); //SG90的脈衝寬度500~2400 pinMode(SW, INPUT_PULLUP); xTaskCreate(warningLight, "blink LED", 1000, NULL, 1, &handleA); } void loop(){ if(digitalRead(SW)){ Serial.println("高電平"); vTaskSuspend(handleA); delay(1000); } else{ Serial.println("低電平"); vTaskResume(handleA); myServo.write(90);//轉到90度 Serial.println("打開柵欄"); delay(5000); myServo.write(0);//轉到0度(原點) digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); Serial.println("關閉柵欄"); } }
Editor is loading...