arduino东拼西凑

版权声明:欢迎转载 https://blog.csdn.net/qq_40828914/article/details/83030848

内容

用光敏控制LED的明暗程度,光敏值在3位数码管上显示,串口输出光敏值,蜂鸣器到一定的值会didi

话不多说,直接上代码,那几个部分拼到一起,多了个数的拆分,让k1k2k3分别等于百位十位个位

代码

void setup(){
Serial.begin(9600);
int ledpin=9;
for(int i=0;i<7;++i){
    pinMode(i+2,OUTPUT);
  }
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(11,OUTPUT);
}
int a2g[10][9]={
 {0,0,0,0,0,0,1},  //0
    {1,0,0,1,1,1,1},  //1
    {0,0,1,0,0,1,0},  //2
    {0,0,0,0,1,1,0},  //3
    {1,0,0,1,1,0,0},  //4
    {0,1,0,0,1,0,0},  //5
    {0,1,0,0,0,0,0},  //6
    {0,0,0,1,1,1,1},  //7
    {0,0,0,0,0,0,0},  //8
    {0,0,0,0,1,0,0},  //9
};
void loop(){
  
  int sv=analogRead(A0);
  Serial.println(sv);
  analogWrite(9,255*sv/300);
  
  if(sv<60){
  tone(10,40);
  }
  else {
  noTone(10);
  } 

  int a=sv;
  int i=0;
  while(a>0){

  i=i+1;  
  a=a/10;
  }   
  int k1,k2,k3;
  if(i==2) 
  {
    k3=0;
    for(int j=0;j<i;++j){
      if(j==0) {
        k1=sv%10;
        }
        else if(j==1){
        k2=sv%10;
       }
       sv=sv/10;
    }
  }
  else if(i==3){
    for(int j=0;j<i;++j){
      if(j==0) {
      k1=sv%10;
      }
      else if(j==1){
      k2=sv%10;
      }
      else {
      k3=sv%10;
      }
      sv=sv/10;
    }
  }
  for(int j=0;j<30;++j){
  
  digitalWrite(13,1);
  digitalWrite(12,0);
  digitalWrite(11,0);
  for(int i=0;i<7;++i){
       digitalWrite(i+2,a2g[k1][i]);
   }
   delay(10);
  digitalWrite(13,0);
  digitalWrite(12,1);
  digitalWrite(11,0);
  for(int i=0;i<7;++i){
       digitalWrite(i+2,a2g[k2][i]);
   }
   delay(10);
   digitalWrite(13,0);
  digitalWrite(12,0);
  digitalWrite(11,1);
  for(int i=0;i<7;++i){
       digitalWrite(i+2,a2g[k3][i]);
   }
   delay(10);
  }
  //delay(100);
}

实物图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/83030848