2016-07-21 207 views
0

這是我的程序。這是一個Arduino草圖。LED閃爍着串口

int bite = 0; 

void setup() { 
    Serial.begin(9600); // opens serial port, sets data rate to 9600 bps 
    pinMode(3, OUTPUT); 
} 

void loop() { 
    if (Serial.available() > 0) { 
    bite = Serial.read(); 
    if(bite != NULL){ 
    for (int i=0; i < bite; i++){ 
     digitalWrite(3, HIGH); 
     delay(1000); 
     digitalWrite(3, LOW); 
     delay(1000); 
     } 
    } 
    } 
} 

我想要的代碼,以檢查是否有一個串行輸入值,無論是既不爲空或字符串,並閃爍LED我收到的倍序列值的數量。我的代碼只是閃爍着燈光,燈光也很暗淡。它只是繼續運行。它甚至發生在我向串口發送null的時候。

+1

對於接收到的每一個字節,通常需要1毫秒,程序在樹林中熄滅22秒以使燈閃爍。你必須輸入非常慢。 –

+0

大多數串行輸入可能性(終端程序,Arduino SerialMonitor)不允許您發送空字節。從理論上講,Serial.read()可以讀取任何二進制字節流,但發送方可能是問題...即使我使用char而不是int, – datafiddler

回答

0

請看下面的例子代碼:

char incomingByte; 
int led=3; 

void setup() { 
    Serial.begin(9600); 
    pinMode(led,OUTPUT); 
    Serial.println("LED control"); 
    Serial.println("0 = LED off)"); 
    Serial.println("1 = LED on"); 
} 

void loop(){ 
    if(Serial.available()>0){ 
    incomingByte = Serial.read(); 
    if(incomingByte == '0'){ 
     digitalWrite(led,LOW); 
    } 
    if(incomingByte == '1'){ 
     digitalWrite(led,HIGH); 
    } 
    } 
} 

所以你可能需要做的唯一的事情是改變你的int bitechar bite因爲Serial.read的()!

+0

也不能工作 – Shero

+0

您可以使用** pinMode(3,OUTPUT)**在你的設置()中。或者你嘗試了我的代碼,但仍然不工作? – TeaAge

+0

那麼代碼仍然不會讓你的代碼工作的光線「咬」多少次(0代表和1代表關閉的東西) – Shero