欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 這個(gè)單片機(jī)程序?yàn)槭裁此{(lán)色燈不和紅和綠一樣改變亮度 [打印本頁(yè)]

作者: Mr-Sa    時(shí)間: 2019-11-20 11:37
標(biāo)題: 這個(gè)單片機(jī)程序?yàn)槭裁此{(lán)色燈不和紅和綠一樣改變亮度
char buffer[18];
int red,green,blue;
int RedPin = 6;
int GreenPin = 5;
int BluePin = 4;
int length;//定義一個(gè)變量用來(lái)表示共有多少個(gè)音符
int tonePin = 7; //蜂鳴器的pin


int tune[] =
{
  356,450,600,
};

//曲子的節(jié)拍,即音符持續(xù)時(shí)間
float duration[] =
{
   1,0.5 ,1,
};


void setup()
{
  {
  pinMode(tonePin, OUTPUT); //設(shè)置蜂鳴器的pin為輸出模式
  length = sizeof(tune) / sizeof(tune[0]); //這里用了一個(gè)sizeof函數(shù),查出數(shù)組里有多少個(gè)音符
  }
  Serial.begin(9600);
  Serial.flush();
  pinMode(RedPin, OUTPUT);
  pinMode(GreenPin, OUTPUT);
  pinMode(BluePin, OUTPUT);
}


void loop()
{
  if (Serial.available() > 0)
  {
    int index=0;
    delay(100);
    int numChar = Serial.available();
    if (numChar>15)
    {
      numChar=15;
    }
    while (numChar--)
    {
      buffer [index++] = Serial.read();
    }
    splitString(buffer);
  }
}


void splitString(char* data)
{
  Serial.print("Data entered: ");
  Serial.println(data );
  char* parameter;
  parameter = strtok (data, ",");
  while (parameter !=NULL)
  {
    setLED(parameter);
    parameter = strtok (NULL, ",");
  }
  for (int x=0; x<16; x++)
  {
    buffer[x]='\0';
  }
  Serial.flush();
}


void setLED(char* data)
{
    delay(500);
     if ((data[0] == 'g')|| (data[0] == 'G'))
     {
      int Ans = strtol(data+1,NULL,10);
      Ans = constrain(Ans,0,255);
      analogWrite(GreenPin, Ans);
      Serial.print("Green is set to: ");
      Serial.println(Ans);
    }
     if ((data[0] == 'b')|| (data[0] == 'B'))
     {
      int Ans = strtol(data+1,NULL,10);
      Ans = constrain(Ans,0,255);
      analogWrite(BluePin, Ans);
      Serial.print("Blue is set to: ");
      Serial.println(Ans);
     }
      if ((data[0] == 'r')|| (data[0] == 'R'))
    {
      int Ans = strtol(data+1,NULL,10);
      Ans = constrain(Ans,0,255);
      analogWrite(RedPin, Ans);
      Serial.print("Red is set to: ");
      Serial.println(Ans);
    }
   
    yinyue();
  }


  void yinyue()
{
   for (int x = 0; x < length; x++) //循環(huán)音符的次數(shù)
   {
     tone(tonePin, tune[x]); //依次播放tune數(shù)組元素,即每個(gè)音符
     delay(400 * duration[x]); //每個(gè)音符持續(xù)的時(shí)間,即節(jié)拍duration,400是調(diào)整時(shí)間的越大,曲子速度越慢,越小曲子速度越快
     noTone(tonePin);//停止當(dāng)前音符,進(jìn)入下一音符
   }
   delay(500);//等待0.5秒后,循環(huán)重新開(kāi)始
}



作者: csmyldl    時(shí)間: 2019-11-20 12:05
不同顏色的發(fā)光二極管要求的電流不一樣,電壓降也不一致,需根據(jù)元件參數(shù)調(diào)整好后才能控制其亮度
作者: Cherishsyf    時(shí)間: 2019-11-20 14:39
不用顏色的LED燈,相同亮度下所需的電流不同。要么你修改外部LED燈匹配的限流電阻,要么就要修改程序里面控制LED燈的時(shí)間才間接調(diào)節(jié)亮度




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1