10/8 花崗國中 18人
11/14 宜昌國中 20人
用ESP32+WS2812環形12燈與紙板切割製作
材料:ESP32-C3 一個、12燈環形WS2812一個、紙模型一個
軟體:Arduino IDE編譯器、chatGPT
2023-12-07
範例程式一
int keyval;
int workid=0;
int push=0;
int btsw=2;
int btsw2=3;
int ledB2=13;
int ledR2=12;
boolean ledflag=false;
int ledR=11;
int ledB=10;
int ledG=9;
int workid2;
void setup() {
// put your setup code here, to run once:
pinMode(ledR, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(btsw, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()){
workid = Serial.read(); //讀取字元
workid = workid-48;
String teststr = Serial.readString();
}
keyval=digitalRead(btsw);
keyval=!keyval;
if(keyval){
push=1;
}
// Serial.print("keyval = ");
// Serial.println(keyval);
if (keyval==0 && push==1){
workid++;
push=0;
if (workid>4 || workid<0){
workid=0;
}
}
//判斷是否有資料進來
digitalWrite(ledR, LOW);
digitalWrite(ledG, LOW);
digitalWrite(ledB, LOW);
digitalWrite(ledR2, LOW);
// digitalWrite(ledG, LOW);
digitalWrite(ledB2, LOW);
// Serial.print("workid = ");
// Serial.println(workid);
// Serial.print("workid2 = ");
// Serial.println(workid2);
// Serial.println("===============");
if(workid==1){
digitalWrite(ledG, HIGH);
}
if(workid==2){
digitalWrite(ledB, HIGH);
}
if(workid==3){
digitalWrite(ledR, HIGH);
}
if(workid==4){
if(ledflag){
digitalWrite(ledR2, HIGH);
digitalWrite(ledB2, LOW);
}else{
digitalWrite(ledB2, HIGH);
digitalWrite(ledR2, LOW);
}
ledflag=!ledflag;
}
delay(500);
}