roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 19:33

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Помогите исправить код - ато незнаю уже что делать...
СообщениеДобавлено: 04 апр 2015, 20:16 
Не в сети

Зарегистрирован: 04 апр 2015, 20:15
Сообщения: 2
Код:
#include <Servo.h>

#define coef 10 //(коэффициент соответствия 10 градусов на 1см)
#define dead_zone 4
#define max_value 22
#define servoPin 10

#define Trig 9
#define Echo 8
#define ledPin 13

Servo myservo;

void setup()
{
  pinMode(Trig, OUTPUT); //инициируем как выход
  pinMode(Echo, INPUT);  //инициируем как вход
  pinMode(ledPin, OUTPUT);
  myservo.attach(servoPin);
  myservo.write(0);
}

unsigned int impulseTime=0;
unsigned int distance_sm=0;

void loop()
{
  digitalWrite(Trig, HIGH); /* Подаем импульс на вход
   trig дальномера */
  delayMicroseconds(10);  // равный 10 микросекундам
  digitalWrite(Trig, LOW); // Отключаем
  impulseTime = pulseIn(Echo, HIGH); // Замеряем длину импульса
  distance_sm = impulseTime/58; // Пересчитываем в сантиметры
 
  if (distance_sm >= dead_zone && distance_sm <= max_value)
  {
    myservo.write(coef * (distance_sm - dead_zone));
  }
  else if (distance_sm < dead_zone)// если дистанция менее 4 см, серва в положении ноль градусов
  {
    myservo.write(0);
  }
  else
  {
    myservo.write(180);
  }
  delay(100); /* ждем 0.1 секунды,
   Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс.
   */
     }

В общем хочу сделать так вот как тут https://www.youtube.com/watch?v=vEJSJSnEyIA ! Но у меня ничего не работает, серва как бы хочет стартануть но не может не ясно почему проблема в коде, тк по отдельности работает и сенсор и серво.
Оборудование :
MG 996R
Китайский аналог (adruino micro pro)
Cонар HC-SR04
Питание от блока питания на макетной плате.
В общем MG 996R - на 10
Cонар HC-SR04 - trig на 9, еcho на 8
Что сделано не так? Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите исправить код - ато незнаю уже что делать...
СообщениеДобавлено: 05 апр 2015, 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
pinMode(servoPin, OUTPUT);
может пропустили в setupе?

а вообще добавьте тестовый вывод значений, может у вас что считается неправильно? С первого взгляда все верно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите исправить код - ато незнаю уже что делать...
СообщениеДобавлено: 06 апр 2015, 09:37 
Не в сети

Зарегистрирован: 04 апр 2015, 20:15
Сообщения: 2
HarryStar писал(а):
pinMode(servoPin, OUTPUT);
может пропустили в setupе?

а вообще добавьте тестовый вывод значений, может у вас что считается неправильно? С первого взгляда все верно.

Извините - я в этом деле делетант.... если не сложно, напишите код полностью - буду очень благодарен! :sorry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите исправить код - ато незнаю уже что делать...
СообщениеДобавлено: 25 апр 2015, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2014, 19:29
Сообщения: 645
Откуда: Севастополь
Skype: slom_3d
прог. языки: 3d max :)
я подобную схему собирал, у меня все работало, так что со скетчем проблем поидее быть недолжно.
может вы перепутали провода? покажите фото вашей схемы...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO