2016-07-21 1 views
0

Ceci est mon programme. C'est une esquisse d'Arduino.LED clignotante avec port série

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); 
     } 
    } 
    } 
} 

Je veux le code pour vérifier s'il y a une valeur d'entrée série et que ce soit ni nulle ou une chaîne et cligner des LED le nombre de fois que la valeur de série est reçue. Mon code clignote juste avec la lumière et la lumière est également très faible. Il continue juste à courir. Il arrive même quand j'envoie null sur le port série.

+1

Pour chaque octet que vous recevez, prend normalement 1 milliseconde, votre programme se déclenche dans les bois pendant 22 secondes pour faire clignoter la lumière. Vous devrez taper très lentement. –

+0

La plupart des possibilités d'entrée série (programmes de terminal, Arduino SerialMonitor) ne vous permettront pas d'envoyer des octets nuls. Théoriquement, Serial.read() peut lire n'importe quel flux binaire d'octets, mais le côté expéditeur pourrait être le problème ... – datafiddler

Répondre

0

Regardez ce code exemple:

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); 
    } 
    } 
} 

La seule chose que vous avez probablement besoin de faire est de changer votre int bite-char bite en raison de la Serial.read()!

+0

ne fonctionne pas même si j'utilise char au lieu de int – Shero

+0

Vous forogt the ** pinMode (3, OUTPUT) ** dans votre configuration(). Ou avez-vous essayé mon code et ne fonctionne toujours pas? – TeaAge

+0

bien le code ne fait toujours pas fonctionner la lumière "mordre" nombre de fois que votre code fonctionne (0 comme on et 1 comme chose éteinte) – Shero