2016-07-21 3 views
0

Это моя программа. Это эскиз Ардуино.Светодиод мигает с последовательным портом

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() может читать любой двоичный поток байтов, но сторона отправителя может быть проблемой ... – 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 bite к char bite из-за Serial.read()!

+0

не работает, даже если я использую char вместо int – Shero

+0

Вы выходите на ** pinMode (3, OUTPUT) ** в вашей настройке(). Или вы пробовали мой код и все еще не работали? – TeaAge

+0

ну код все еще не заставляет «закуску» запускать количество раз, пока ваш код работает (0 и дальше и 1 как вещь) – Shero

Смежные вопросы