[英]Arduino - how can i make the ethernet + led on off module working? led is not reacting when ethernet module is used
[英]How to set the LED to turn off from the start (Arduino)
所以......我是Arduino的新手,我現在正努力做到這一點......但是我已經這樣做了一個小時而運氣不在我的身邊......以下是我的總結我正在做:我有一個Gizduino + 644(Arduino的副本,其中有ATmega 644在這里),一個紅外接近傳感器(3個PIN - VCC,GRND,OUT),2個LED(紅色和黃色)和2個100ohms電阻。
到目前為止,這是我能做的:
這就是問題所在:
在我的代碼中,名稱如下:
這是我在IDE中的代碼:
int LOCK = 13; //RED LED, in pin 13
int PROX = 12; //PROXIMITY, in pin 12
int ANALOG = 0; //OUT of Proximity, in Analog 0
int PROX_SENSOR_LED = 7; //Yellow LED, in pin 7
int val = 0; //value to store
void setup()
{
Serial.begin(9600);
pinMode(LOCK, OUTPUT); //set the pin # as output (VCC of the hardware)
pinMode(PROX, OUTPUT); //set the pin # as output (VCC of the hardware)
pinMode(PROX_SENSOR_LED, OUTPUT); //set the pin # as output (VCC of the hardware)
}
void loop()
{
digitalWrite(PROX_SENSOR_LED, LOW); //sets the output pin initially to LOW (but doesnt work.. T_T)
val = analogRead(ANALOG); //read the input pin 0 to 1023
if (val > 800) //if the sensor value is higher threshold set OUTPUT HIGH
{
digitalWrite(PROX_SENSOR_LED, HIGH); //sets output pin HIGH
delay(100); //waits for .1 second
}
char data = Serial.read(); //read 9600
switch (data) //start of case... like 'ON' 'OFF'
{
case 'QRIN': //this is my 'ON'
digitalWrite(PROX, HIGH); //turn the proximity to ON
digitalWrite(LOCK, HIGH); //turn the lock to ON
break;
case 'QROUT': //this is my off 'OFF'
digitalWrite(PROX, LOW); //turn the proximity to OFF
digitalWrite(LOCK, HIGH); //turn the lock to ON
delay(10000); //for 10 seconds
digitalWrite(LOCK, LOW); //then off
if (ANALOG = HIGH) // I need this 'if' condition because if
{ //this is not here... the Yellow LED is turn ON...
digitalWrite(PROX_SENSOR_LED, LOW); //I don't know why.. T_T
}
break;
}
}
將行放在setup()的末尾:
digitalWrite(PROX_SENSOR_LED, LOW);
此外, if (ANALOG = HIGH)
是一個錯誤的語句,並為您的ANALOG分配HIGH。 將其更改為if (ANALOG == HIGH)
。
所有GPIO都將在高阻抗輸入狀態下啟動,以便對LED的控制是浮動的 - 在這種情況下LED的狀態將取決於LED驅動電路以及它是否具有上拉或下拉電阻。 也就是說這是硬件問題而不是軟件問題。
在上載期間,Arduino引導加載程序正在運行,它不會初始化上載過程不需要的任何I / O. 如果您無法修復硬件設計以使其浮動到關閉狀態,那么您需要修改引導加載程序以便盡早關閉LED - (仍然會出現可能會或可能不會顯示的故障)。 這可能是一個壞主意,因為那時你有一個特定於應用程序的引導加載程序而不是通用引導加載程序,而對於其他應用程序來說,設置這個I / O引腳可能是完全不合需要的。
也就是說,目前還不完全清楚為什么LED在上傳過程中出現了問題,在大多數情況下,簡單地初始化setup()
的輸出似乎是可以接受的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.