Помогите с написанием скетча (Серво)

Тема в разделе "Закажу проект", создана пользователем smr.pm, 15 янв 2019.

  1. smr.pm

    smr.pm Нуб

    Здравствуйте! Помогите чайнику с созданием скетча для Arduino Nano с использованием серво. Требуется скетч, в котором при нажатии на кнопку(см. фото) будет подаваться питание +5 вольт на контакт D5, через 1 секунду серво должна повернуться на 120 градусов, подождать 1 секунду, вернуться в исходное положение, и ещё через секунду питание +5 вольт на контакте D5 должно отключиться. Заранее спасибо!
    [​IMG]
     
  2. Rassamaha78

    Rassamaha78 Гик

    Сколько платят ?
     
  3. DetSimen

    DetSimen Guest

    Да тоже ставь хотелку в $199, поторгуемся, завалим акциями.
     
    Daniil нравится это.
  4. parovoZZ

    parovoZZ Гуру

    Торги открыты?
    Сто девяносто восемь раз!
     
  5. ergovit

    ergovit Нерд

    800 два, три, и четыре за одно.
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    Демпингуем?
    Жду от автора топика добровольных пожертвований, иначе активирую жучок :D
    Код (C++):
    #include <Servo.h>

    #define OUT_PIN     5
    #define BUTTON_PIN  7  // кнопка между пином и GND. Подтяжка используется встроенная
    #define SERVO_PIN   9
    #define BUTTON_PRESSED (!digitalRead(BUTTON_PIN))

    int pos = 0;    // servo position
    unsigned int pause = 1000;
    byte start_angle = 0;
    byte stop_angle = 120;
    byte servo_speed = 15;

    Servo myservo;


    void setup()
    {
      pinMode(BUTTON_PIN, INPUT_PULLUP);
      pinMode(OUT_PIN, OUTPUT);
    }


    void loop()
    {
      if (BUTTON_PRESSED) // если нажата кнопка
      {
        // подаём +5 Вольт на D5
        digitalWrite(OUT_PIN, true);

        // ждём 1 секунду
        delay(pause);          

        // подключаем серво
        myservo.attach(SERVO_PIN);
        // крутим серво на 120 градусов
        for (pos = start_angle; pos <= stop_angle; pos += 1)
        {
          myservo.write(pos);
          delay(servo_speed);
        }
     
        // ждём 1 секунду
        delay(pause);
     
        // крутим серво на -120 градусов
        for (pos = stop_angle; pos >= start_angle; pos -= 1)
        {
          myservo.write(pos);
          delay(servo_speed);
        }
     
        // ждём 1 секунду
        delay(pause);
        // отключаем серво, чтобы не жужжала
        myservo.detach();
     
        // снимаем +5 Вольт с D5
        digitalWrite(OUT_PIN, true);
      } // конец блока if

    }
     
    NikitOS нравится это.