КОД для Arduino

Тема в разделе "Arduino & Shields", создана пользователем ИВАН 1454, 27 апр 2016.

  1. ИВАН 1454

    ИВАН 1454 Нерд

    Ребята помогите нужна программа для того чтобы робот двигался когда перед ним объект.
     
    Последнее редактирование: 28 апр 2016
  2. ostrov

    ostrov Гуру

  3. AlexU

    AlexU Гуру

    Попробуйте перефразировать (сказать другими словами) что именно Вам нужно. По этой фразе не совсем понятно, какой именно цели Вы хотите достичь.
     
  4. ИВАН 1454

    ИВАН 1454 Нерд

    Я хочу сделать робота который будет двигать сервоприводами когда перед ним поставили руку или любой другой объект в течении 3 секунд. Программа мне нужна для ультразвукового дальномера HC-SR04.
     
  5. ИВАН 1454

    ИВАН 1454 Нерд

    Робот у меня на платформе Arduino Uno
     
  6. AlexVS

    AlexVS Гик

    Т.е. вы желаете, что бы ее за Вас написал кто-то?
     
  7. ИВАН 1454

    ИВАН 1454 Нерд

    нет, мне нужно только часть кода
     
  8. AlexVS

    AlexVS Гик

    Ну так покажите что у Вас есть и опишите чего не хватает.
     
  9. ИВАН 1454

    ИВАН 1454 Нерд

    Это весь скетч. Помогите его переделать.
    Заранее Спасибо!;)
     

    Вложения:

  10. AlexU

    AlexU Гуру

    Попробуйте составить алгоритм того, что Вы хотите получить на выходе.
    Например:
    1. "Голова" смотрит прямо вперёд, читаем показания дальнометра;
    2. Если показания меньше такого-то значения, то правой сервой крутим столько-то...
    3. Если показания больше -- то левой сервой крутим столько-то...
    Это приведён пример. Вам нужно составить свой алгоритм. В нём должно быть гораздо больше шагов, чем три шага из моего примера. После того как Вы определитесь с алгоритмом, можно будет приступать к написанию программы.
     
    ИВАН 1454 нравится это.
  11. ИВАН 1454

    ИВАН 1454 Нерд

    СПАСИБО
     
  12. ИВАН 1454

    ИВАН 1454 Нерд

    Но можете написать часть кода с считыванием данных с дальномера.
     
  13. ostrov

    ostrov Гуру

    Код (C++):
    unsigned int getDistance(byte trig, byte ping) { // указать тригерную и приемную ноги
        unsigned int duration = 0;
        digitalWrite(trig, LOW);
        delayMicroseconds(2);
        digitalWrite(trig, HIGH);
        delayMicroseconds(10);
        digitalWrite(trig, LOW);
        duration = pulseIn(ping,HIGH);
        Distance = duration/29/2;
        return Distance;
    }
     
    Tomasina нравится это.