Arduino Note
Arduino 智能小车
代码小结
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);
}