поправить код

Тема в разделе "Arduino & Shields", создана пользователем Максим B, 30 дек 2014.

  1. Максим B

    Максим B Гуру

    Код (Text):
    #define REDPIN 5
    #define GREENPIN 6
    #define BLUEPIN 3

    #define FADESPEED 5    // чем выше число, тем медленнее будет fade-эффект

    void setup() {
      pinMode(REDPIN, OUTPUT);
      pinMode(GREENPIN, OUTPUT);
      pinMode(BLUEPIN, OUTPUT);
    }


    void loop() {
      int r, g, b;

      // fade от голубого к фиолетовому
      for (r = 0; r < 256; r++) {
        analogWrite(REDPIN, r);
        delay(FADESPEED);
      }
      // fade от фиолетового к красному
      for (b = 255; b > 0; b--) {
        analogWrite(BLUEPIN, b);
        delay(FADESPEED);
      }
      // fade от красного к желтому
      for (g = 0; g < 256; g++) {
        analogWrite(GREENPIN, g);
        delay(FADESPEED);
      }
      // fade от желтого к зеленому
      for (r = 255; r > 0; r--) {
        analogWrite(REDPIN, r);
        delay(FADESPEED);
      }
      // fade от зеленого к зеленовато-голубому
      for (b = 0; b < 256; b++) {
        analogWrite(BLUEPIN, b);
        delay(FADESPEED);
      }
      // fade от зеленовато-голубого к голубому
      for (g = 255; g > 0; g--) {
        analogWrite(GREENPIN, g);
        delay(FADESPEED);
      }
    }
    помогите пожалуйста добавить в данный код для срабатывания датчика движения. Т.е. прошел -все включилось, ушел все выключилось. Спасибо
     
  2. SSnick

    SSnick Гик

    Гугл - подключение датчика движения ардуино.
    Не стоит благодарности!
     
  3. Максим B

    Максим B Гуру

    Набросал код, сможете проверить? Что тут не так?.

    Код (Text):
    int sensor = 2;              // the pin that the sensor is atteched to
    int state = LOW;            // by default, no motion detected
    int val = 0;                // variable to store the sensor status (value)

    #define REDPIN 5
    #define GREENPIN 6
    #define BLUEPIN 3
     
    #define FADESPEED 5    // чем выше число, тем медленнее будет fade-эффект



    void setup() {
      pinMode(REDPIN, OUTPUT);
      pinMode(GREENPIN, OUTPUT);
      pinMode(BLUEPIN, OUTPUT);
     
      pinMode(sensor, INPUT);    // initialize sensor as an input
      Serial.begin(9600);        // initialize serial
    }

    void loop(){
     
      int r, g, b;
     
      val = digitalRead(sensor);  // read sensor value
      if (val == HIGH) {
      for (r = 0; r < 256; r++) {
        analogWrite(REDPIN, r);
        delay(FADESPEED);
      }
      for (b = 255; b > 0; b--) {
        analogWrite(BLUEPIN, b);
        delay(FADESPEED);
      }
     
      for (g = 0; g < 256; g++) {
        analogWrite(GREENPIN, g);
        delay(FADESPEED);
      }
      // fade от желтого к зеленому
      for (r = 255; r > 0; r--) {
        analogWrite(REDPIN, r);
        delay(FADESPEED);
      }
      // fade от зеленого к зеленовато-голубому
      for (b = 0; b < 256; b++) {
        analogWrite(BLUEPIN, b);
        delay(FADESPEED);
      }
      // fade от зеленовато-голубого к голубому
      for (g = 255; g > 0; g--) {
        analogWrite(GREENPIN, g);
        delay(FADESPEED);
      }
       
        if (state == LOW) {
          Serial.println("Motion detected!");
          state = HIGH;      // update variable state to HIGH
        }
      }
      else {
        analogWrite(GREENPIN, LOW);
        analogWrite(BLUEPIN, LOW);
        analogWrite(REDPIN,LOW);  

        delay(400);            // delay 400 milliseconds
         
          if (state == HIGH){
            Serial.println("Motion stopped!");
            state = LOW;      // update variable state to LOW
        }
      }
    }