我有以下代碼。繼電器引腳與負載的作用不同
void setup(){
pinMode(14, OUTPUT);
digitalWrite(14, HIGH); //Relay
}
void loop(){
if (!digitalRead(14)){
digitalWrite(10,HIGH); //LED
digitalWrite(11,LOW); //LED
}else{
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
}
在代碼的另一部分繼電器引腳改變狀態,我監視與改變的希望寄託在迴路中的digitalRead
部分導致是基於狀態。
現在很難的部分。除非將繼電器連接到磁鐵,否則所有這些都可以工作。這是一個非常複雜的門鎖控制系統。由於某種原因,Maglock連接到接力端,Arduino的表現完全不同。一旦繼電器發生變化,它就會慢慢爬行。在此之前一切正常,但一旦繼電器被激活,就會導致它減速。
我無法弄清的是,爲什麼一切都好,沒有副作用的繼電器觸發,直到負載連接到它。
任何想法?或者更好的監測繼電器狀態的方法? (不將其僞變量存儲在變量中)
這看起來不錯,我會嘗試。但你怎麼知道14是A0並且對應於C0?我讀了你提供的頁面,並沒有看到你是如何將引腳14翻譯成那個。這Arduino是一個兆,如果這改變了一切。 – TheValyreanGroup
@TheValyreanGroup您可以谷歌「Arduino Uno引腳」,也有引腳名稱,如'PC0',這意味着'PORTC'輸出或啓用上拉,'PINC'用於讀取實際輸入和'DDRC'的方向。您可以在'ATMega328p'數據表中找到所有的詳細信息。 – KIIV
在鏈接中,我給出了它的全部內容:https://www.arduino.cc/en/Reference/PortManipulation 我引用:「PORTC映射到Arduino模擬引腳0到5「。和「有關Arduino引腳號到端口和位的完整映射,請參見您的芯片圖:ATmega8,ATmega168。(請注意,端口的某些位可能用於I/O之外的其他位置;小心不要更改寄存器位的值對應於它們。)「 所以你可以按照鏈接到你的芯片版本,或者你甚至可以谷歌它@KIIV說。 – rovda