#1 Re: Апаратні питання » Помогите советом Ардуино и датчик Холла (направление вращения) » 2016-02-04 23:38:50

Все получилось) Вот этот ресурс помог)  http://robocraft.ru/blog/electronics/594.html
   
Подскажите, в этом сайте скетч работает все нармально. Вращаешь например диск вправо, считает обороты и показывает направление вращения. Как только начинаешь вращать в обратную сторону счетчик сбивается на ноль , меняется направление вращение. Подмогите со скетчем , нужно чтоб счетчик не сбивался при вращении в противоположную сторону а отсчитывал в обратном порядке вплоть до нуля. Т.е вращаем по часовой, сделали 20 оборотов. Как только начинаем вращать против часовой стрелки чтоб не сбивался счетчик на ноль сразу, а производился обратный отсчет. 20,19,18...1,0

Вот скетч:
#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

/* Пины, к которым подключен энкодер */
enum { ENC_PIN1 = 2, ENC_PIN2 = 3 };

enum { FORWARD = 1, BACKWARD = -1 };

/* Если что, revolutions здесь и далее - обороты, а не революции (: */
long revolutions = 0, revolutions_at_last_display = 0;
int direction = FORWARD;
uint8_t previous_code = 0;

/* Реакция на событие поворота */
void turned(int new_direction)
{
  if (new_direction != direction)
  {
    revolutions = 0;
    revolutions_at_last_display = 0;
  }
  else
    ++revolutions;

  direction = new_direction;
}

/* Объеденил чтение кода Грея с энкодера с его декодированием */
uint8_t readEncoder(uint8_t pin1, uint8_t pin2)
{
  uint8_t gray_code = digitalRead(pin1) | (digitalRead(pin2) << 1), result = 0;

  for (result = 0; gray_code; gray_code >>= 1)
    result ^= gray_code;

  return result;
}

void setup()
{
  pinMode(ENC_PIN1, INPUT);
  pinMode(ENC_PIN2, INPUT);

  lcd.begin(8, 2);
}

void loop()
{
  /* Читаем значение с энкодера */
  uint8_t code = readEncoder(ENC_PIN1, ENC_PIN2);

  /* Обрабатываем его */
  if (code == 0)
  {
    if (previous_code == 3)
      turned(FORWARD);
    else if (previous_code == 1)
      turned(BACKWARD);
  }

  previous_code = code;

  /* Раз в секунду выводим накопленную информацию */

  static unsigned long millis_at_last_display = 0;

  if (millis() - millis_at_last_display >= 1000)
  {
    /* Выводим на экран направление вращения */
    lcd.clear();
    lcd.print(direction == FORWARD ? ">> " : "<< ");
    /* ... скорость вращения в оборотах в секунду */
    lcd.print(revolutions - revolutions_at_last_display);
    lcd.print("/s");
    /* ... и общее число обротов в текущем направлении */
    lcd.setCursor(0, 1);
    lcd.print(revolutions);
   
    millis_at_last_display = millis();
    revolutions_at_last_display = revolutions;
  }
}
Заранее благодарен.

#2 Re: Апаратні питання » Кто подключал реле SSR-40DA? » 2016-02-04 23:29:57

А вот посмотри на таку идею. Уже реализована. И по деньгам меньше + оптопара есть!!! http://cxem.net/electric/electric99.php

#3 Апаратні питання » Помогите советом Ардуино и датчик Холла (направление вращения) » 2016-01-25 14:55:34

kogan
відповідей: 3

Я новичек в познании ардуино ) Столкнулся с такой проблемкой. Есть вал, который вращается 4 оборота по часовой и 4 против часовой стрелки (скорость невелика). Каким образом можно реализовать подсчет оборотов и направление вращения (по часовой стрелке и против часовой).  Мое мнение - датчик Холла наилучшим образом подойдет для реализации... А вот как? ПОдскажите люди добрые, может кто то подобное делал (сталкивался). Буды бдагодарен за любую помощь)

#4 Re: Програмування Arduino » Изготовлю на заказ ! » 2015-11-28 16:08:28

Помогите подобрать составляющие для моего проекта. Или реализовать задумку. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#5 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:52

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#6 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:49

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#7 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:46

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#8 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:36

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#9 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:26

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

#10 Проекты » Помогите советом (реализацией). » 2015-11-28 15:59:21

kogan
відповідей: 0

Помогите подобрать составляющие для моего проекта. Сам по себе простенький.
Есть 2 сервопривода (рулевые машинки) каждым сервоприводом управляет отдельная кнопка. принцип действия для каждой сервы одинаковый. Алгоритм: при разомкнутом микровыключателе рулевая машинка находится в нулевом положении. При нажатии и удерживании кнопки, тяга сервопривода должна повернуться на определенный угол например вправо на(он будет неизменен всегда!) 45 градусов. При размыкании кнопки тяга сервоприврода возвращается в исходное положение. Это алгоритм для одного сервопривода, Для второго будет алгоритм  тот же только в  другую сторону. эта идея будет работать автономно от компьютера. Подскажите помогите с реализацией. За консультацию и помощь финансовое вознаграждение. Заранее благодарен.  Пишите на почту.

kogan7584@gmail.com

Підвал форуму