2018.11.25工作室教学记录

教学记录

1. 2018.11.25工作室

1.1 使用电位器控制LED

1.1.1 数字量与模拟量的区别

1.1.2 精密模拟量的优势

1.1.3 代码

/* 
作者: 智芯坊 
时间:201667日 
IDE版本号:1.8.5 
发布地址: 
作用:通过精密线性电位器PWM控制led亮度 
*/  
void setup()  
{  
  pinMode(3,OUTPUT);          //数字口要选择带 ~ 号的具有pwm功能的输出口  
}  
void loop()  
{  
  int n = analogRead(A0);     //读取A0模拟口的数值(0-5V 对应 0-1204取值)  
  analogWrite(3,n/4);         //PWM最大取值255  所以将模拟口的取值n除以4  
}

查阅:

  • map()函数,利用map()改写程序
  • pwm技术
  • 使用arduino控制板的注意事项——电压

1.2 switch语句

switch (variable) { 
   case label1:{
   // statements
   break;
}
case label2: { 
   // statements
   break;
}
default: { 
   // statements
   break;
}
}

说明

  • switch语句允许根据一个整数表达式的结果,从一组动作中选择一个动作。
  • break; 语句的作用是跳过switch语句括号中的其他语句,执行括号后面的语句,如果省略了某个case后面的break,就继续执行下一个case语句。

1.2.2 利用串口控制led灯

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("in setup");
  pinMode(3,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
}

void loop() {
  if (Serial.available()){
    int n = int(Serial.read())-48;   //'3'
    digitalWrite(n,HIGH);
    delay(1000);
    digitalWrite(n,LOW);
  }
}

1.3 利用循环和数组制作流水灯

1.3.1 while循环

  1. 语句格式
while(expression) {
   Block of statements;
}

1.3.2 do……whiile循环

do while循环语句语法:

do { 
   Block of statements; 
}  while (expression);

1.3.3 for循环

for循环语句语法


for ( initialize; control; increment or decrement) {
   // statement block
}

1.3.4 无限循环

# 使用for循环
for (;;) {
   // statement block
}
```python
# 使用while循环

while(1) {
   // statement block
}

1.4 数组

1.5 流水灯

依次将三个LED灯接入3,5,6引脚,编写程序

1.5.1 代码

const byte LEDs[]={3,5,6};  
const byte total = sizeof(byte);  
byte index = 0;  
void setup() {  
    // put your setup code here, to run once:  
    for(byte i = 0; i < total; i++) {  
        pinMode(LEDs[i], OUTPUT);  //i的值将从04,依序设置7,8,9引脚为输出引脚。  
    }  
}  
  
void loop() {  
// put your main code here, to run repeatedly:  
    for (byte i = 0; i < total; i++) {  
        digitalWrite(LEDs[i], LOW);  
    }  
    digitalWrite(LEDs[index],HIGH);  
    index ++;  
    if (index == total)  
        index = 0;  
       delay  
 } 

1.5.2 用while、do……while语句改写此程序。

猜你喜欢

转载自blog.csdn.net/acktomas/article/details/84486670