久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1049|回復: 2
收起左側

這個單片機程序為什么藍色燈不和紅和綠一樣改變亮度

[復制鏈接]
ID:644246 發表于 2019-11-20 11:37 | 顯示全部樓層 |閱讀模式
char buffer[18];
int red,green,blue;
int RedPin = 6;
int GreenPin = 5;
int BluePin = 4;
int length;//定義一個變量用來表示共有多少個音符
int tonePin = 7; //蜂鳴器的pin


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

//曲子的節拍,即音符持續時間
float duration[] =
{
   1,0.5 ,1,
};


void setup()
{
  {
  pinMode(tonePin, OUTPUT); //設置蜂鳴器的pin為輸出模式
  length = sizeof(tune) / sizeof(tune[0]); //這里用了一個sizeof函數,查出數組里有多少個音符
  }
  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++) //循環音符的次數
   {
     tone(tonePin, tune[x]); //依次播放tune數組元素,即每個音符
     delay(400 * duration[x]); //每個音符持續的時間,即節拍duration,400是調整時間的越大,曲子速度越慢,越小曲子速度越快
     noTone(tonePin);//停止當前音符,進入下一音符
   }
   delay(500);//等待0.5秒后,循環重新開始
}


回復

使用道具 舉報

ID:645755 發表于 2019-11-20 14:39 | 顯示全部樓層
不用顏色的LED燈,相同亮度下所需的電流不同。要么你修改外部LED燈匹配的限流電阻,要么就要修改程序里面控制LED燈的時間才間接調節亮度
回復

使用道具 舉報

ID:235200 發表于 2019-11-20 12:05 | 顯示全部樓層
不同顏色的發光二極管要求的電流不一樣,電壓降也不一致,需根據元件參數調整好后才能控制其亮度
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区视频免费在线观看 | 国产欧美一级二级三级在线视频 | 国产wwwcom| 翔田千里一区二区 | 一区二区三区中文字幕 | 夜夜爽99久久国产综合精品女不卡 | 国产伦一区二区三区视频 | 亚洲午夜精品久久久久久app | 天天操一操 | 亚洲国产成人精品一区二区 | 欧美在线观看一区 | 日本一级淫片免费啪啪3 | 国产精品福利在线观看 | 韩日av片 | 国产中文区二幕区2012 | 国产精品视频免费播放 | 欧美一级在线视频 | 亚洲成人黄色 | 伊人网综合 | 99九九久久 | 69视频在线播放 | 天天插日日操 | 欧美日韩国产传媒 | 黄 色 毛片免费 | 天天射美女 | 波多野结衣一区二区 | 精品亚洲一区二区三区 | 在线国产一区 | 91在线看| 一区欧美| 久久久国产一区二区三区四区小说 | 男女深夜网站 | 国产精品国产a级 | av黄色在线 | 久久免费精品视频 | 91干b| 国产91丝袜在线熟 | 在线亚洲一区二区 | 免费在线毛片 | 国产成人免费视频 | 久久久www成人免费无遮挡大片 |