|
發表於 2014/10/16 00:06:08
|
顯示全部樓層
測試了你的程序, 並作了一點修改, 你說會開開關關, 我估計是受到干擾, 在硬件上必須解除干擾問題, 於訊號輸入端(A0)加一支10k電阻對地, 和程序上做點修改就可以了. 另外, 建議你可以私下找我研究問題, 始終這裡是solidwork論壇, 可能不方便談非solidwork的話題吧;
附件圖片是模擬開和關的狀況
#include <Servo.h>
Servo myservo; //避免混淆,定義為myservo
unsigned int micPin = A0; //避免有干擾訊號產生負值輸入定義為unsigned
int ledPin = 13; //3
int micVal = 0;
boolean toggle = false;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// servo.attach(8, 500, 2400); //沒必要賦予範圍值
myservo.attach(8);
}
void loop()
{
micVal = analogRead(micPin);
if (micVal > 400) { //500
delay(200);
Serial.println(micVal);
toggle = !toggle;
if (toggle)
{
myservo.write(150);
delay(200);
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
myservo.write(14);
delay(200);
}
}
}
|
-
14*
-
150*
|