Топик Нуба

Тема в разделе "Arduino & Shields", создана пользователем Citrus, 23 авг 2012.

  1. Citrus

    Citrus Нерд

    2: Lame буду разбираться =)
    Код (Text):
    #define LED1 13
    #define LED2 12
    #define LED3 11
     
    int LED1Pin = 13; //red
    int LED2Pin = 12; //yellow
    int LED3Pin = 11; //green
     
    void setup() {
      pinMode(LED1, OUTPUT);
      pinMode(LED2, OUTPUT);
      pinMode(LED3, OUTPUT);
    }
     
    void loop()
    {
      digitalWrite(LED1, HIGH);
      delay (2000);
      digitalWrite(LED2, HIGH);
      delay (1000);
      digitalWrite(LED2, LOW);
      digitalWrite(LED1, LOW);
      delay (50);
      digitalWrite(LED3, HIGH);
      delay (1000);
      digitalWrite(LED3, LOW);
      delay (1000);
      digitalWrite(LED3, HIGH);
      delay (500);
      digitalWrite(LED3, LOW);
      delay (500);
      digitalWrite(LED3, HIGH);
      delay (500);
      digitalWrite(LED3, LOW);
      delay (500);
      digitalWrite(LED3, HIGH);
      delay (500);
      digitalWrite(LED3, LOW);
      delay (500);
      digitalWrite(LED2, HIGH);
      delay (1000);
      digitalWrite(LED2, LOW);
      digitalWrite(LED1, HIGH);
      delay (2000);
    }
    Мая вариация светофора =)
     
  2. Citrus

    Citrus Нерд

    2: Lame то есть как я понял... Я могу в код прописать Blink и например при нажатии на кнопку в Loop у меня будет выполнятся команда из тела Blink так ?

    Код (Text):
    #define LED1 13
    #define LED2 12
    #define LED3 11
     
    void setup()
    {
        pinMode(LED1, OUTPUT);
        pinMode(LED2, OUTPUT);
        pinMode(LED3, OUTPUT);
    }
     
    void blink(byte pin)
    {
        digitalWrite(pin, HIGH);
        delay(50);
        digitalWrite(pin, LOW);
        delay(50);
    }
     
    void loop()
    {
        blink(LED1);
        blink(LED2);
        blink(LED3);
        blink(LED2);
    }
    бегущий огонек...
     
  3. <Lame>

    <Lame> Гик

    Надо в код прописать Blink(); с двумя скобками и точкой с запятой А в скобках написать номер пина, на котором нужно зажечь светодиод, если использовать программу, предложенную nailxx.
    У него там написано так:
    Void Blink(byte pin);
    и в переменную pin записывается тот номер, что вы написали в скобках при вызове подпрограммы blink.
     
    Humiboy нравится это.
  4. <Lame>

    <Lame> Гик

    Вот пример:
    Код (Text):
     
    void setup()
    {
        pinMode(2, OUTPUT);
        pinMode(3, OUTPUT);
        pinMode(4, OUTPUT);
        pinMode(5, OUTPUT);
    }
     
    void blink(byte pin)
    {
        digitalWrite(pin, HIGH);
        delay(50);
        digitalWrite(pin, LOW);
        delay(50);
    }
     
    void loop()
    {
        blink(2);
        delay(1000);
        blink(3);
        delay(1000);
        blink(4);
        delay(1000);
        blink(5);
        delay(1000);
    }
     
    Это наглядный пример.
    Исполнение:
    Быстро мигнет led на 2м пине, прошла секунда, затем на 3м пине, еще секунда, и так до пятого, а потом все с начала.
    Надеюсь, теперь понятно? :eek:
     
    Humiboy нравится это.
  5. Citrus

    Citrus Нерд

    Да спасибо на наглядном примере все стало ясно... =)
     
  6. Citrus

    Citrus Нерд

    Расскажите про триггер =)
    И если можно то с примером =)
     
  7. <Lame>

    <Lame> Гик