Помогите запрограммировать Arduino следующим образом.

Тема в разделе "Arduino & Shields", создана пользователем MagicMIKE, 4 май 2012.

  1. MagicMIKE

    MagicMIKE Нуб

    Необхоимо вместо светодиода поставить 4 силиноида что бы каждый включался от нажатия той-же кнопки по очередно,то есть прописать 8 пинов на каждый селеноид по паре,что бы каждый ключался и выключался по очереди при нажатии на кнопку
    другими словами: нажал-включился-выключился, потом нажал опять ,но что бы время нажатия я контроллировал.
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Вы же можете написать код, который включает и выключает один соленоид? Что-то вроде:

    Код (Text):

    void loop()
    {
        digitalWrite(SOLENOID_PIN, HIGH);
        delay(200);
        digitalWrite(SOLENOID_PIN, LOW);
        delay(200);
    }
     
    Теперь делаем так, чтобы это происходило при нажатии кнопки:

    Код (Text):

    void loop()
    {
        while (!digitalRead(BUTTON_PIN)) {
            // ничего не делаем пока с кнопки не придёт HIGH
        }
        digitalWrite(SOLENOID_PIN, HIGH);
        delay(200);
        digitalWrite(SOLENOID_PIN, LOW);
        delay(200);
    }
     
    А затем делаем так, чтобы при каждом следующем прогоне мы работали не с одним SOLENOID_PIN, а очередным с предыдущего раза:


    Код (Text):

    #define SOLENOID_COUNT 4

    byte solenoidPins[SOLENOID_COUNT] = {3, 4, 5, 6};
    byte nextSolenoid = 0;

    void loop()
    {
        while (!digitalRead(BUTTON_PIN)) {
            // ничего не делаем пока с кнопки не придёт HIGH
        }

        digitalWrite(solenoidPins[nextSolenoid], HIGH);
        delay(200);
        digitalWrite(solenoidPins[nextSolenoid], LOW);
        delay(200);

        // переходим к следующему и сбрасываем в 0, если дошли до последнего
        nextSolenoid = (nextSolenoid + 1) % SOLENOID_COUNT;
    }
     
     
  3. MagicMIKE

    MagicMIKE Нуб

    спасибо огромное , но я нуб в этом, не могли бы вы сохранить это в файл чтобы я смог залить в плату сразу. спасибо!!
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    Вы действительно не можете скопировать и вставить строки в IDE?

    Для краткости я опустил некоторые вещи вроде объявления BUTTON_PIN, функцию setup с её выставлением pinMode. Понимаете о чём речь?
     
  5. MagicMIKE

    MagicMIKE Нуб

    не совсем, можете собрать в файл? буду очень благодарен, очень необходимо
     
  6. Hokama

    Hokama Нерд

    даже если прислать файл, толку мало. ведь надо еще чтобы схема подключения соответствовала коду программы. лучше потрптить пару часов и разобраться как что работает.
    а если и в схемотехнике знания на таком же уровне, существует не нулевая вероятность вообще спалить контроллер.