機 器 車 介 紹 & 實做
使用軟體 arduino
環境安裝 控制台 > 裝置管理員 > 更新驅動程式 C:\arduino windows\arduino \drivers
資料型態 ( 變數 )
常用函數
測試 void setup(){ Serial.begin(9600); } void loop(){ delay(1000); }
腳位說明
LED 閃爍
int ledPin1=9; int ledPin2=10; void setup(){ pinMode(ledPin1,OUTPUT); pinMode(ledPin2,OUTPUT); pinMode(ledPin3,OUTPUT); } void loop(){ digitalWrite(ledPin1,HIGH); delay(500); digitalWrite(ledPin1,LOW); digitalWrite(ledPin2,HIGH); delay(500); digitalWrite(ledPin2,LOW); }
同時閃爍 void loop(){ digitalWrite(ledPin1,HIGH); digitalWrite(ledPin2,HIGH); delay(500); digitalWrite(ledPin1,LOW); digitalWrite(ledPin2,LOW); delay(500); }
陣列 (led 左移 ) int ledpin[3]={10,9,8}; int j=0; int i=0; void setup(){ for(i=0;i<4;i++) pinMode(ledpin[i],OUTPUT); } void loop() { for(j=0;j<4;j++) { digitalWrite(ledpin[j],HIGH); delay(500); digitalWrite(ledpin[j],LOW); }
陣列 (led 右移 ) for(j=0;j<4;j++) 改成 for(j=3;j>=0;j--) 即可
int servoPin1=12; // 設定 servoMotor1 由 12 腳 位控制 void setup(){ pinMode(servoPin1,OUTPUT); //12 腳位為輸 出 } void loop(){ for (int i=0;i<=120;i++){ // 正向旋轉約三秒 digitalWrite(servoPin1,HIGH); delayMicroseconds(1300); digitalWrite(servoPin1,LOW); delay(20); } for (int i=0;i<=40;i++){ // 靜止約一秒 digitalWrite(servoPin1,HIGH); delayMicroseconds(1500); digitalWrite(servoPin1,LOW); delay(20); } for (int i=0;i<=120;i++){ // 反向旋轉約三秒 digitalWrite(servoPin1,HIGH); delayMicroseconds(1700); digitalWrite(servoPin1,LOW); delay(20); } }
int servoPin1=13; // 設定 servoMotor1 由 12 腳 位控制 int servoPin2=12; // 設定 servoMotor2 由 13 腳 位控制 void setup(){ pinMode(servoPin1,OUTPUT); // 設定 12 腳位 為輸出 pinMode(servoPin2,OUTPUT); // 設定 13 腳位 為輸出 } void loop(){ digitalWrite(servoPin1,HIGH); delayMicroseconds(1300); digitalWrite(servoPin1,LOW); delay(20); digitalWrite(servoPin2,HIGH); delayMicroseconds(1700); digitalWrite(servoPin2,LOW); delay(20); }
for (int i=0;i<=40;i++){ //( 這段程 式執行 40 次 ) digitalWrite(servoPin1,HIGH); delayMicroseconds(1300); digitalWrite(servoPin1,LOW); delay(20); digitalWrite(servoPin2,HIGH); delayMicroseconds(1300); digitalWrite(servoPin2,LOW); delay(20); 這是右轉
// 光敏電阻測試程式 int photoresistorPin1=10; // 設定 photoresistor1 腳位 int photoresistorPin2=9; // 設 photoresistor2 腳位 int x; int y; void setup(){ pinMode(photoresistorPin1,INPUT); // 設定 6 腳位為輸入 pinMode(photoresistorPin2,INPUT); // 設定 2 腳位為輸入 Serial.begin(9600); } void loop(){ Serial.println("Photoresistor States"); x=digitalRead(photoresistorPin1); // 讀取左邊光敏電阻 y=digitalRead(photoresistorPin2); // 讀取右邊光敏電阻 Serial.print("P6="); // 顯示光敏電阻狀態至螢幕 Serial.println(x,BIN); Serial.print("P2="); Serial.println(y,BIN); delay(1000);}
光敏當開關讓車子前進 int photoresistorPin1=10; // 設定 photoresistor1 腳位 int servoPin1=13; // 設定 servoMotor1 由 12 腳位控制 int servoPin2=12; int x=0; void setup(){ pinMode(photoresistorPin1,INPUT); // 設定 10 腳位 為輸入 pinMode(servoPin1,OUTPUT); // 設定 12 腳位為輸出 pinMode(servoPin2,OUTPUT); // 設定 13 腳位為輸出 Serial.begin(9600); } void loop(){ Serial.println("Photoresistor States"); x=digitalRead(photoresistorPin1);// 讀取左邊光敏 電阻 Serial.print("P10="); // 顯示 光敏電阻狀態至螢幕 Serial.println(x,BIN);
switch(x){ case 1: for(int i=0;i<=40;i++){ digitalWrite(servoPin1,HIGH); delayMicroseconds(1300); digitalWrite(servoPin1,LOW); delay(20); digitalWrite(servoPin2,HIGH); delayMicroseconds(1700); digitalWrite(servoPin2,LOW); delay(20); } default: digitalWrite(servoPin1,HIGH ); delayMicroseconds(1500); digitalWrite(servoPin1,LOW ); delay(20); digitalWrite(servoPin2,HIGH ); delayMicroseconds(1500); digitalWrite(servoPin2,LOW ); delay(20); } delay(50);}