欢迎光临散文网 会员登陆 & 注册

北邮信通导论作业代码

2021-10-31 16:22 作者:-小北w-  | 我要投稿

流水灯

int brightness = 5;

//LED的亮度

int fadeAmount = 5;

//亮度变化增量

void setup()

{

  pinMode(11, OUTPUT);  //发绿色光

  pinMode(10, OUTPUT);  //发红色光

  pinMode(9, OUTPUT);   //发蓝色光

}

 

void loop()

{

  for(int num=11;num>8;num--)

  {

    for(int i=0;;i++)

    {

      analogWrite(num, brightness);//点亮LED

      if (brightness >= 255)

      {

        fadeAmount = -fadeAmount ;

      };

      brightness = brightness + fadeAmount;

      if(brightness <= 0 )

      {

        break;

      }

      delay(5);

    };

    fadeAmount = 5,brightness = 5;

    analogWrite(num, 0);

     delay(5);

  }

}


彩色呼吸灯

int brightness = 5;

//LED的亮度

int fadeAmount = 5;

//亮度变化增量

void setup()

{

  pinMode(11, OUTPUT);  //发红色光

  pinMode(10, OUTPUT);  //发绿色光

  pinMode(9, OUTPUT);   //发蓝色光

}

 

void loop()

{

  for(int num=11;num>8;num--)

  {

    for(int i=0;;i++)

    {

      analogWrite(num, brightness);//点亮LED

      if (brightness >= 255)

      {

        fadeAmount = -fadeAmount ;

      };

      brightness = brightness + fadeAmount;

      if(brightness <= 0 )

      {

        break;

      }

      delay(30);

    };

    fadeAmount = 5,brightness = 5;

    analogWrite(num, 0);

     delay(30);

  }

}


自动控制路灯

int threshold =400; //光强值,根据实际情况调整

void setup ( )

{

Serial.begin(115200);

//设置串口波特率

pinMode(10, OUTPUT); //设置输出端口

}

void loop( )

{

int n = analogRead(A3); //读取模拟口A3

Serial.println(n);

//串口打印,输出n的值

if (n>threshold )

//晚上光线暗,n值变大

digitalWrite(10, HIGH);

//点亮路灯

else

digitalWrite(10, LOW);

//关闭路灯

delay(200);

}


数字温度计

unsigned int tempMin = 24;

//亮灯温度

unsigned int tempMax = 28;

//报警温度

void setup( ) {

Serial.begin(115200);

//串口初始化

analogReference(INTERNAL); //调用板载1.1V基准源

pinMode(11, OUTPUT);

digitalWrite(11, LOW);

}

void loop( ) {

double analogVotage = 1.1*(double)analogRead(A3)/1023;

double temp = 100*analogVotage;

//计算温度

unsigned int dutyCycle;

//占空比

if (temp <= tempMin) {

//小于亮灯门限值

dutyCycle = 0; digitalWrite(11, LOW);

}

else if (temp < tempMax) { //小于报警门限

dutyCycle = (temp-tempMin)*255/(tempMax-tempMin);

digitalWrite(11, LOW);

}

else{

//发光二极管亮度最大值,并启动声音报警

dutyCycle = 255; digitalWrite(11, HIGH);

}

analogWrite(10, dutyCycle);

//控制发光二极管发光

Serial.print("Temp: "); Serial.print(temp);

Serial.print(" DegreesDuty cycle: ");

Serial.println(dutyCycle);

delay(100);

// 控制刷新速度

}


按键计数器

int count = 0;

void setup() {

    pinMode(2,INPUT); //按键接引脚2,按下时为低电平

    Serial.begin(9600);

    Serial.println(count);

}

void loop() {

    if (digitalRead(2) == LOW) { // 如果按键按下

    delay(20); // 延迟20ms,去抖动

    if (digitalRead(2) == LOW) { // 再次检测按键

    count++; // 按键计数加1

    Serial.println(count);

    while(digitalRead(2) == LOW); // 等待按键释放

        }

    }

}


智能温控风扇

double analogVotage;

//模拟电压值

double temp;

//温度

unsigned int dutyCycle;

//占空比

unsigned int tempMin = 25; //零速温度

unsigned int tempMax = 33; //满速温度

void setup( ) {

    Serial.begin(9600);

    //波特率配置串口通讯

    analogReference(INTERNAL); //调用板载1.1V基准源

}

void loop( ) {

    analogVotage = 1.1*(float)analogRead(A3)/1023;

    temp = 100*analogVotage;

    //电压换算成温度

    if (temp <= tempMin)

    dutyCycle = 0;

    else if (temp < tempMax)

    dutyCycle = (temp-tempMin)*255/(tempMax-tempMin);

    else

    dutyCycle = 255;

    analogWrite(10, dutyCycle); //产生PWM,控制电机转速

    Serial.print("Temp: "); Serial.print(temp);

    Serial.print(" DegreesDuty cycle: ");

    Serial.println(dutyCycle);

    delay(80);

    // 控制刷新速度

}


北邮信通导论作业代码的评论 (共 条)

分享到微博请遵守国家法律