#1 2017-10-27 21:24:11

as661слава
Учасник
Зареєстрований: 2017-10-27
Повідомлень: 4

нужна помощь новычку

пишу чтото типо управления по блютус. в дальнейшем хочу перейти на gprs  но вот первая проблема когда ставлю delay ни на что другое он не реагирует пока не пройдет время, помогите , может както по другом это написать , програмирую только 3 дня так что не судите строго

char incomingByte; 
int  LED1 = 13;
int  LED2 = 3;    
int  LED3 = 4;
int  LED4 = 5;    
int  LED5 = 6;
int  LED6 = 7;    
int  LED7 = 8;
int  LED8 = 9;    
void setup() {
  Serial.begin(9600); 
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  
} 
 
void loop() {
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    if(incomingByte == 'a') {
       digitalWrite(LED1, LOW);
       Serial.print("*1R0G255B0*");  
      }
    if(incomingByte == 'b') {
       digitalWrite(LED2, LOW);
       Serial.print("*2R0G255B0*");  
      }
    if(incomingByte == 'c') {
       digitalWrite(LED3, LOW);
       Serial.print("*3R0G255B0*");  
      }
    if(incomingByte == 'd') {
       digitalWrite(LED4, LOW);
       Serial.print("*4R0G255B0*");  
      }
    if(incomingByte == 'j') {
       digitalWrite(LED5, LOW);
       Serial.print("*R0G255B0*");  
      }
    if(incomingByte == 'g') {
       digitalWrite(LED6, LOW);
       Serial.print("*R0G255B0*");  
      }
    if(incomingByte == 'h') {
       digitalWrite(LED7, LOW);
       Serial.print("*7R0G255B0*");  
    }
    if(incomingByte == 'j') {
       digitalWrite(LED8, LOW);
       Serial.print("*R0G255B0*");  
      }
         
    if(incomingByte == '1') {
       digitalWrite(LED1, HIGH);
       Serial.print("*1R255G0B0*");
    }
     if(incomingByte == '2') {
       digitalWrite(LED2, HIGH);
       Serial.print("*2R255G0B0*");
    }
     if(incomingByte == '3') {
       digitalWrite(LED3, HIGH);
       Serial.print("*3R255G0B0*");
    }
     if(incomingByte == '4') {
       Serial.print("*4R255G0B0*");
       delay(10000);
      digitalWrite (LED4, HIGH);
       Serial.print("start motor");
       delay(1000);
       digitalWrite(LED4, LOW);
       Serial.print("motor ok");
    }
     if(incomingByte == '5') {
       digitalWrite(LED5, HIGH);
       Serial.print("R255G0B0*");
    }
     if(incomingByte == '6') {
       digitalWrite(LED6, HIGH);
       Serial.print("*R255G0B0*");
    }
     if(incomingByte == '7') {
       digitalWrite(LED7, HIGH);
       Serial.print("*7R255G0B0*");
    }
     if(incomingByte == '8') {
       digitalWrite(LED8, HIGH);
       Serial.print("*8R255G0B0*");
    }
    
    
  }
}

Остання редакція as661слава (2017-10-27 22:33:04)

Неактивний

#2 2017-10-28 00:18:28

as661слава
Учасник
Зареєстрований: 2017-10-27
Повідомлень: 4

Re: нужна помощь новычку

пробовал так не выходит таймер не запускается

char incomingByte; 
int  LED1 = 13;
int  LED2 = 3;    
int  LED3 = 4;
int  LED4 = 5;    
int  LED5 = 6;
int  LED6 = 7;    
int  LED7 = 8;
int  LED8 = 9;  
bool LED8on;  
void setup() {
  Serial.begin(9600); 
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  LED8on = false;
} 
 
void loop() {
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    if(incomingByte == 'a') {
       digitalWrite(LED1, LOW);
       Serial.print("*1R0G255B0*\n");  
      }
    if(incomingByte == 'b') {
       digitalWrite(LED2, LOW);
       Serial.print("*2R0G255B0*\n");  
      }
    if(incomingByte == 'c') {
       digitalWrite(LED3, LOW);
       Serial.print("*3R0G255B0*\n");  
      }
    if(incomingByte == 'd') {
       digitalWrite(LED4, LOW);
       Serial.print("*4R0G255B0*\n");  
      }
    if(incomingByte == 'j') {
       digitalWrite(LED5, LOW);
       Serial.print("*R0G255B0*\n");  
      }
    if(incomingByte == 'g') {
       digitalWrite(LED6, LOW);
       Serial.print("*R0G255B0*\n");  
      }
    if(incomingByte == 'h') {
       digitalWrite(LED7, LOW);
       Serial.print("*7R0G255B0*\n");  
    }
    if(incomingByte == 'j') {
       digitalWrite(LED8, LOW);
       Serial.print("*R0G255B0*\n");  
      }
       if(incomingByte == 'L') {
        digitalWrite(LED8, 1);
       Serial.print("taiming");
       LED8on = true;
      LED8on = millis();
    }  
    else {digitalWrite(LED8, 0);
      }
    if(incomingByte == '1') {
       digitalWrite(LED1, HIGH);
       Serial.print("*1R255G0B0*\n");
    }
     if(incomingByte == '2') {
       digitalWrite(LED2, HIGH);
       Serial.print("*2R255G0B0*\n");
    }
     if(incomingByte == '3') {
       digitalWrite(LED3, HIGH);
       Serial.print("*3R255G0B0*\n");
    }
     if(incomingByte == '4') {
       Serial.print("*4R255G0B0*\n");
      digitalWrite (LED4, HIGH);
    }
     if(incomingByte == '5') {
       digitalWrite(LED5, HIGH);
       Serial.print("R255G0B0*\n");
    }
     if(incomingByte == '6') {
       digitalWrite(LED6, HIGH);
       Serial.print("*R255G0B0*\n");
    }
     if(incomingByte == '7') {
       digitalWrite(LED7, HIGH);
       Serial.print("*7R255G0B0*\n");
    }
     if(incomingByte == '8') {
       digitalWrite(LED8, HIGH);
       Serial.print("*8R255G0B0*\n");
    }
    if(LED8on)
    if(millis() - LED8on > 10000) {
     digitalWrite(LED1, 1);
      LED8on = false;
       Serial.print("start\n");
      delay(1000);
      digitalWrite(LED1, 0);
      Serial.print("oc\n");
       }
  }
}

Неактивний

#3 2017-10-31 15:58:44

Selen
Учасник
Зареєстрований: 2017-01-02
Повідомлень: 88

Re: нужна помощь новычку

используйте вместо delay - millis.

как в примере на этой страничке
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму