代码小结


setup()

setup 在程序流程中只会执行一次,所以用于定义所有需要设定、初始化的参数和函数,或是引脚功能的指定,都会在这部分先定义。

loop()

loop()是主程序的执行内容,只要电源不中断,函数内的程序就会一直执行。

pinMode(pin,mode)

这个函数主要是用于数字引脚(Digital Pin)在输出、输入的时候,决定要采用哪种功能,第一个参数表示要选择的引脚,有 0~13 可以选择,而第二个参数可以选择 INPUT 或是 OUTPUT 表示不同模式。


时间函数

(1) millis()

这个函数的主要功能是回传一个时间常数,此常数的开始时间为单片机系统开始执行程序的时间,而这个数值的数据型态是 unsigned long,单位为 ms(milliseconds)。

(2) micros()

回传的时间常数单位是 μs(microseconds),数据型态一样是 unsigned long,极限值约为 70min。需要特别注意,这个函数在 16MHz 振荡器的 Arduino 中以 4 的倍数呈现,而在 8MHz 振荡器的 Arduino 中则以 8 的倍数呈现。

(3) delay()

前面提的两个函数都是回传当下的时间,假如想让程序停留在某一个状态一阵子后再继续执行,则必须使用 delay()这个函数,函数内填入想要停留的时间,单位是 ms。

unsigned long Time;
void setup()
{
  Serial.begin(9600);   //设定串行端口通信速率
}
void loop()
{
  Time = millis();      //取得目前系统时间
  Serial.println(time); //输出取得的时间
}

输入/输出数据

void setup ( )
{
  Serial.begin(9600);			//串行端口功能使用初始化
}

void loop()
{
  int testByte = 65;
  Serial.print("Byte:");
  Serial.println(testByte,BYTE);	//以 ASCLL 形式输出
  
  Serial.print("Dec:");
  Serial.println(testByte,DEC);		//以十进制形式输出
  
  Serial.print("HEX:");
  Serial.println(textByte,HEX);		//以十六进制形式输出
  
  Serial.print("BIN:");
  Serial.println(textByte,BIN);		//以二进制形式输出
  
  Serial.print("OCT:");
  Serial.println(textByte,OCT;		//以八进制形式输出
  
  delay(1000);
}

因为 RS-232 是一种双向沟通的模式,所以除了由 Arduino 输出至计算机以外,也可以由计算机发送指令到 Arduino 中,让 Arduino 判断接收到的字符串,以此来决定该做什么事情。

void setup()
{
  Serial.begin(9600);	    //串行端口功能使用初始化
}

void loop()
{
  char c;
  if(Serial.available()>0)  //判断是否有数据输入
  {
    c=Serial.read();	    //读取计算机经由串行端口传送的数据
    Serial.println(c);	    //将收到的数据再传给计算机
  }
  delay(1000);
}