1. 程式人生 > >2018.11.25工作室教學記錄

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語句改寫此程式。