笔记1

来源:互联网 发布:淘宝左氏燕窝真假 编辑:程序博客网 时间:2024/05/02 12:15

1.
  • #define led 2  //用于设置板子上的2引脚的名字为led  
  • pinMode(led,OUTPUT); //用于设置led引脚为输出引脚  
  • digitalWrite(led,HIGH); //设置LED引脚输出高电平  
  • digitalWrite(led,LOW);  //设置LED引脚输出为低电平

  • 2.
    void setup() 该函数用于编写Arduino的初始化内容。
    void loop() 该函数是Arduino的主程序部分,编写Arduino的核心代码。
    Serial.println("Hello World!")用于填写需要发送的字符串内容。
    1. delay(1000); 延时函数,延时1000毫秒,即1秒。  

    3.
    1. void ScanKey()                      //按键扫描程序  
    2. {  
    3.   KEY_NUM = 0;                  //清空变量  
    4.   if(digitalRead(KEY) == LOW)           //有按键按下  
    5.   {  
    6.     delay(20);              //延时去抖动  
    7.     if(digitalRead(KEY) == LOW)     //有按键按下  
    8.     {  
    9.       KEY_NUM = 1;          //变量设置为1  
    10.       while(digitalRead(KEY) == LOW);   //等待按键松手  
    11.     }  
    12.   }  
    13. }  
    4.
    pinMode(KEY,INPUT_PULLUP);    //按键为IO带上拉输入

    5.
    1.   PotBuffer = analogRead(Pot);  //读取AD值  
    2.   Serial.print("Pot = ");   //串口输出“Pot = ”  
    3.   Serial.println(PotBuffer);    //串口输出PotBuffer的值  
    4.   delay(500);           //延时500ms  

    6.
    #define Pot A0 
    1.   PotBuffer = analogRead(Pot);      //读取AD值  
    2.   PotBuffer = map(PotBuffer, 0, 1023, 0, 255);//把AD值0-1023 缩放为 0-255  
    3.   analogWrite(LED,PotBuffer);           //PWM调光,输出PWM,占空比为PotBuffer/255 
    7.
    1.   PotBuffer = analogRead(Pot);      //读取AD值  
    2.   for(int i = 0 ; i < 100 ; i++) //循环100次  
    3.   {  
    4.     digitalWrite(Buzzer,HIGH);      //设置输出高电平  
    5.     delayMicroseconds(PotBuffer);   //延时PotBuffer值 微秒级别 us  
    6.     digitalWrite(Buzzer,LOW);       //设置输出低电平  
    7.     delayMicroseconds(100);     //延时100us  
    8.   }  
    8.
    1.   ADBuffer = analogRead(ADpin);     //读取AD值  
    2.   Serial.print("AD = ");  
    3.   Serial.println(ADBuffer);  
    4.   if(ADBuffer > 800)         //ADBuffer值大于设定值,光小于一定值.  
    5.   {  
    6.     digitalWrite(LED,HIGH);     //点亮LED  
    7.   }  
    8.   else  
    9.   {  
    10.     digitalWrite(LED,LOW);      //关闭LED  
    11.   }  
    9.
    1. //数码管0-9数字码值  
    2. unsigned char table[10][8] =  
    3. {  
    4.     {0, 0,  1,  1,  1,  1,  1,  1},         //0  
    5.     {0, 0,  0,  0,  0,  1,  1,  0},         //1  
    6.     {0, 1,  0,  1,  1,  0,  1,  1},         //2  
    7.     {0, 1,  0,  0,  1,  1,  1,  1},         //3  
    8.     {0, 1,  1,  0,  0,  1,  1,  0},         //4  
    9.     {0, 1,  1,  0,  1,  1,  0,  1},         //5  
    10.     {0, 1,  1,  1,  1,  1,  0,  1},         //6  
    11.     {0, 0,  0,  0,  0,  1,  1,  1},         //7  
    12.     {0, 1,  1,  1,  1,  1,  1,  1},         //8  
    13.     {0, 1,  1,  0,  1,  1,  1,  1}          //9  
    14. };  
    1.     unsigned char i;  
    2.   
    3.     for( i = 0 ; i < 10 ; i++)           //循环显示0-9  
    4.     {  
    5.         digitalWrite(SEG_a,table[i][7]);    //设置a引脚的电平  
    6.         digitalWrite(SEG_b,table[i][6]);  
    7.         digitalWrite(SEG_c,table[i][5]);  
    8.         digitalWrite(SEG_d,table[i][4]);  
    9.         digitalWrite(SEG_e,table[i][3]);  
    10.         digitalWrite(SEG_f,table[i][2]);  
    11.         digitalWrite(SEG_g,table[i][1]);  
    12.         digitalWrite(SEG_h,table[i][0]);  
    13.   
    14.         delay(1000);                //延迟1s  
    15.     }  
    10.
    1.         case 1:  
    2.             digitalWrite(COM1,LOW);     //选择位1  
    3.             digitalWrite(COM2,HIGH);  
    4.             digitalWrite(COM3,HIGH);  
    5.             digitalWrite(COM4,HIGH);  
    6.             break;  
    7.         case 2:  
    8.             digitalWrite(COM1,HIGH);  
    9.             digitalWrite(COM2,LOW);     //选择位2  
    10.             digitalWrite(COM3,HIGH);  
    11.             digitalWrite(COM4,HIGH);  
    12.             break;  
    13.        default:break;
    11.
    1. void loop()  
    2. {  
    3.   if( ScanKey() == 1)           //当有按键按下时  
    4.   {  
    5.     SUM++;              //SUM加一  
    6.     if(SUM>9999)         //最大值9999,不再累加  
    7.     {  
    8.       SUM = 9999;  
    9.     }  
    10.   }  
    11.     
    12.   Display(1,SUM/1000);      //显示SUM千位值  
    13.   delay(3);  
    14.   Display(2,SUM%1000/100);  //显示SUM百位值  
    15.   delay(3);  
    16.   Display(3,SUM%100/10);    //显示SUM十位值  
    17.   delay(3);  
    18.   Display(4,SUM%10);        //显示SUM个位值  
    19.   delay(3);  
    20. }  
    21.   
    22. unsigned char ScanKey()         //按键扫描程序,返回键值  
    23. {  
    24.   if(Flag_up  && digitalRead(KEY) == LOW)   //当Flag_up = 1并且按键按下时  
    25.   {  
    26.     Flag_up = 0;                                        //清空Flag_up  
    27.     delay(20);                                          //延时去抖动  
    28.     if(digitalRead(KEY) == LOW)         //按键按下  
    29.     {  
    30.       return 1;                                         //返回键值1  
    31.     }  
    32.   }  
    33.   if(digitalRead(KEY) == HIGH)          //按键松开时候  
    34.   {  
    35.     Flag_up = 1;                                        //置位Flag_up  
    36.   }  
    37.   return 0;                                                 //返回键值0  
    38. }  
    12.
    13.

    LM35测量温度计算过程:

      1、假设AD读取出来的值为val,那么该AD值对应的电压为:val*5/1023*1000=4.8876*val,单位mV。

      2.对应的温度为4.8876*val/10=0.48876*val,单位为°C。




    0 0
    原创粉丝点击