笔记1
来源:互联网 发布:淘宝左氏燕窝真假 编辑:程序博客网 时间:2024/05/02 12:15
1.
2.
void setup() 该函数用于编写Arduino的初始化内容。
void loop() 该函数是Arduino的主程序部分,编写Arduino的核心代码。
Serial.println("Hello World!")用于填写需要发送的字符串内容。
- delay(1000); 延时函数,延时1000毫秒,即1秒。
3.
- void ScanKey() //按键扫描程序
- {
- KEY_NUM = 0; //清空变量
- if(digitalRead(KEY) == LOW) //有按键按下
- {
- delay(20); //延时去抖动
- if(digitalRead(KEY) == LOW) //有按键按下
- {
- KEY_NUM = 1; //变量设置为1
- while(digitalRead(KEY) == LOW); //等待按键松手
- }
- }
- }
pinMode(KEY,INPUT_PULLUP); //按键为IO带上拉输入
5.
- PotBuffer = analogRead(Pot); //读取AD值
- Serial.print("Pot = "); //串口输出“Pot = ”
- Serial.println(PotBuffer); //串口输出PotBuffer的值
- delay(500); //延时500ms
6.
#define Pot A0
- PotBuffer = analogRead(Pot); //读取AD值
- PotBuffer = map(PotBuffer, 0, 1023, 0, 255);//把AD值0-1023 缩放为 0-255
- analogWrite(LED,PotBuffer); //PWM调光,输出PWM,占空比为PotBuffer/255
- PotBuffer = analogRead(Pot); //读取AD值
- for(int i = 0 ; i < 100 ; i++) //循环100次
- {
- digitalWrite(Buzzer,HIGH); //设置输出高电平
- delayMicroseconds(PotBuffer); //延时PotBuffer值 微秒级别 us
- digitalWrite(Buzzer,LOW); //设置输出低电平
- delayMicroseconds(100); //延时100us
- }
- ADBuffer = analogRead(ADpin); //读取AD值
- Serial.print("AD = ");
- Serial.println(ADBuffer);
- if(ADBuffer > 800) //ADBuffer值大于设定值,光小于一定值.
- {
- digitalWrite(LED,HIGH); //点亮LED
- }
- else
- {
- digitalWrite(LED,LOW); //关闭LED
- }
- //数码管0-9数字码值
- unsigned char table[10][8] =
- {
- {0, 0, 1, 1, 1, 1, 1, 1}, //0
- {0, 0, 0, 0, 0, 1, 1, 0}, //1
- {0, 1, 0, 1, 1, 0, 1, 1}, //2
- {0, 1, 0, 0, 1, 1, 1, 1}, //3
- {0, 1, 1, 0, 0, 1, 1, 0}, //4
- {0, 1, 1, 0, 1, 1, 0, 1}, //5
- {0, 1, 1, 1, 1, 1, 0, 1}, //6
- {0, 0, 0, 0, 0, 1, 1, 1}, //7
- {0, 1, 1, 1, 1, 1, 1, 1}, //8
- {0, 1, 1, 0, 1, 1, 1, 1} //9
- };
- unsigned char i;
- for( i = 0 ; i < 10 ; i++) //循环显示0-9
- {
- digitalWrite(SEG_a,table[i][7]); //设置a引脚的电平
- digitalWrite(SEG_b,table[i][6]);
- digitalWrite(SEG_c,table[i][5]);
- digitalWrite(SEG_d,table[i][4]);
- digitalWrite(SEG_e,table[i][3]);
- digitalWrite(SEG_f,table[i][2]);
- digitalWrite(SEG_g,table[i][1]);
- digitalWrite(SEG_h,table[i][0]);
- delay(1000); //延迟1s
- }
- case 1:
- digitalWrite(COM1,LOW); //选择位1
- digitalWrite(COM2,HIGH);
- digitalWrite(COM3,HIGH);
- digitalWrite(COM4,HIGH);
- break;
- case 2:
- digitalWrite(COM1,HIGH);
- digitalWrite(COM2,LOW); //选择位2
- digitalWrite(COM3,HIGH);
- digitalWrite(COM4,HIGH);
- break;
- default:break;
- void loop()
- {
- if( ScanKey() == 1) //当有按键按下时
- {
- SUM++; //SUM加一
- if(SUM>9999) //最大值9999,不再累加
- {
- SUM = 9999;
- }
- }
- Display(1,SUM/1000); //显示SUM千位值
- delay(3);
- Display(2,SUM%1000/100); //显示SUM百位值
- delay(3);
- Display(3,SUM%100/10); //显示SUM十位值
- delay(3);
- Display(4,SUM%10); //显示SUM个位值
- delay(3);
- }
- unsigned char ScanKey() //按键扫描程序,返回键值
- {
- if(Flag_up && digitalRead(KEY) == LOW) //当Flag_up = 1并且按键按下时
- {
- Flag_up = 0; //清空Flag_up
- delay(20); //延时去抖动
- if(digitalRead(KEY) == LOW) //按键按下
- {
- return 1; //返回键值1
- }
- }
- if(digitalRead(KEY) == HIGH) //按键松开时候
- {
- Flag_up = 1; //置位Flag_up
- }
- return 0; //返回键值0
- }
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
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 笔记1
- 秦九韶算法解多项式
- 【Eclipse AST】AST的创建
- php对文件操作
- HTML5 Geolocation(地理定位)用于定位用户的位置
- C语言经典算法100例-012-求素数
- 笔记1
- Linux 进程
- SystemServer研究报告
- KVC OC中键值编码的概念和使用方法
- 乒乓启示录一 - 把简单的动作做到极致就是成功
- Unity游戏开发技术杂谈(一):为文件生成MD5值
- IDispatch接口原理与应用
- 爸比,你会写代码吗?会啊。那你教我好了。No!
- uva 579 - ClockHands