2016年3月28日 星期一

利用 手機控制 8 LED 4種功能-----左移 右移 左右移 閃爍 (EX3-2)

MIT  AI2 






程式





//利用 手機控制 8 LED 4種功能

#include <SoftwareSerial.h>
#include <Wire.h>
SoftwareSerial BT(11,10); //define serial BT  RX=11, TX=10
//SoftwareSerial mySerial (rxPin, txPin);
const byte LEDPin[8] = {2,3,4,5,6,7,8,9};
int i=0 , j=0 ;
void setup() 
{
  for (j=0; j<8; j++) 
  pinMode(LEDPin[j],OUTPUT);
  Serial.begin(9600);
  BT.begin(9600);
}

//=============================
void loop()
{
      
  if(BT.available()) //received BT data
  {
    int LED = BT.read();
    Serial.print("Received BT cmd: ");
    if (LED==0)
     {     
           Serial.println(LED);
           LED1_Function();
     }
     else if (LED==2)     
     { 
           Serial.println(LED);
           LED2_Function();
     }
     else if (LED==4)
      { 
           Serial.println(LED);
           LED3_Function();
      }
      else if (LED==6) 
      {
           Serial.println(LED);
           LED4_Function();
      }

}  //if

}   //loop


//=========================================

void LED1_Function() {
  Serial.println("LED1");
  for(j=0;j<=4;j++){
  for (i=0; i<=8; i++)
  {
    digitalWrite(LEDPin[i], HIGH);
    delay (50);
    digitalWrite(LEDPin[i], LOW);
    delay(50);
  }  // for i
   Serial.println(j);
  }  //for j
  BT.write(0x11); 



//===============================
void LED2_Function() {
  Serial.println("LED2"); 
 for (j=0;j<=4;j++) { 
 for (i=7; i>=0 ; i--)
  {
    digitalWrite(LEDPin[i], HIGH);
    delay (50);
    digitalWrite(LEDPin[i], LOW);
    delay(50);
  }  // for i
  Serial.println(j); 
 }  // for j
 BT.write(0x21); 

}

//===============================
void LED3_Function() {
 for(j=0;j<=4;j++){  
 for(i = 0;i<=8;i++){
  digitalWrite(LEDPin[i],HIGH);
  delay(50);
  digitalWrite(LEDPin[i],LOW);
}  

for(i=8;i>=0;i--){
  digitalWrite(LEDPin[i],HIGH);
  delay(50);
  digitalWrite(LEDPin[i],LOW) ;
}
  Serial.println(j); 
 } //for j
 BT.write(0x31);
 Serial.println("LED3");
}

//===============================
void LED4_Function() {
  for (j=0;j<=4;j++) {
   for ( i=0; i<=8 ; i++) {
    digitalWrite(LEDPin[i], HIGH);
   }
    delay (250);
    
   for ( i=0; i<=8 ; i++) {
   digitalWrite(LEDPin[i], LOW);
   }
   
   delay(250);
   
   Serial.println(j); 
  } // for j
   BT.write(0x41);  
   Serial.println("LED4");
}  

//================================

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...