2015-12-12 40 views
0

我是arduino的新手,這是從多個針腳輸入數據並寫入其他針腳的問題,輸入來自發送器的接收器,它將數據寫入KK板針腳。代碼是簡單但是當它從一個引腳輸入時,另一個引腳被禁用並且按鈕不工作。這裏是代碼:Arduino處理多個針腳

Servo ale, ele; 
Void setup() 
{ 
ale.attach(11); 
ele.attach(12); 
........ 
..... 
} 
Void loop() 
{ 
a = pulseIn(6, HIGH, 20000); 
b = pulseIn(7, HIGH, 20000); 
ale.writeMicroseconds(a); 
ele.writeMicroseconds(b); 
.......... 
...... 
} 

有什麼,我做錯了嗎?

回答

2

pulseIn函數等待引腳變爲高電平,等待引腳變爲低電平然後才返回並且程序繼續執行下一行。

如果您希望能夠同時接收來自多個引腳的輸入,則需要在loop函數的幾個週期上模擬pulseIn行爲。

有兩個選項(簡化的僞代碼):

  1. 對於單獨每個引腳,則讀銷值的每一個循環週期中,如果它是從低轉換到高,標誌的一組和保存目前millis。當它再次變低時,您測量當前的millis並減去以前的讀數。這會給你ab

  2. 1相同,但不是檢查每個loop週期,您可以將attach interrupts用於從低到高和從高到低的轉換。

+0

你的意思是,2個引腳的2個迴路對嗎? –

+0

恩,謝謝我的朋友!明白了。 –