|
|
发表于 2015-9-23 22:47:14
|
显示全部楼层
word1975 发表于 2015-9-23 20:05 
能具体点不呢?不是很明白你的意思,谢谢
比方說, 你現在的問題, 是 "现在就是尾巴只有在通电的瞬间动一下,然后一直不动了。"
那就針對擺尾的部份, 看看程式的流程, 是否跟你所想的一樣.
你的程式中, sv3 是接尾巴的, 如果要擺尾就是靠最後的一部份吧.
就針對那段程式, 加入除蟲的訊息.
例如:
- Serial.print(val2);
- Serial.print(" : ");
- Serial.print(val3);
- Serial.print(" : ");
- Serial.println(val4);
- if(val2==LOW&&val3==LOW&&val4==LOW)
- Serial.println("All LOW");
- if(millis( ) - last3 < every3) return; // 還沒到
- last3 = millis( );
- pos90 += dir3;
- Serial.print("Go ");
- Serial.println(pos90);
- sv3.write(pos90);
- if(dir3 == 1){
- if(pos90 >179) dir3 = -1;
- }else{
- if(pos90 < 1) dir3 = 1;
- }
- }
复制代码
先看看是否有顯示 val2, val3, val4 的值,
再看看 val2, val3 及 val4 是否都是 low, 以及是否有顯示 "All LOW".
然後看看是否收到 不斷的 "Go 91", "Go 92", "Go 93"......
如果還是不足夠, 可以再顯示其他變數, 看看是那一個不正確.
甚至加入大量的 Serial.print 去看看程式執行的流程, 是否你所想的一樣.
當程序執行沒錯時, 再刪走所有 Serial.print.
又或者可以加入 #define DEBUG, 並在每句 Serial.print 的除蟲訊息之前加上 #ifdef DEBUG, 當不需要再除蟲時, 就 comment 了 #define DEBUG 的一句. 將來有需要, 只要 uncomment #define DEBUG 就可以了.
這都是很基本的除蟲方法, 你可以看看別人的庫, 當中可能也有不少用作除蟲的指令的.
|
|