Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Arduino Переключение между устройствами подключенными по SPI https://www.cyberforum.ru/ arduino/ thread2870353.html
Добрый день! Помогите разобраться с SPI. Решил попробовать использовать RFID-RC522 и дисплей от Nokia 5110 в связке с ESP8266 (NodeMcu v3). Схема подключения: Распиновка: ESP8266 RC522 ...
Нужно найти дисплей с контроллером с сигналом о наличии касания сенсора Arduino
Здравствуйте! Мне нужен такой дисплей TFT, который бы выдавал сигнал о зафиксированном факте касания сенсора и затем бы можно было считать координаты сенсора. Связана такая нужда с тем, что у меня...
Arduino Опрос пина и вывод на Web сайт Здравствуйте,есть плата ESP8266, нужна помощь с выводом состояния 1 или 0 опрошенного пина. Загвоздка в том что бы это было всё в режиме реального времени. Тоисть при изменении состояния пина... https://www.cyberforum.ru/ arduino/ thread2867016.html Arduino Контроллер заряда для телефона Всем доброго дня! Возник вопрос, возможно ли на Arduino реализовать контроллер заряда, то есть чтобы по факту, Arduino контролировал подачу питания от зарядного устройства в зависимости от... https://www.cyberforum.ru/ arduino/ thread2865468.html
При нажатии кнопки вращать мотор Arduino
Каким образом можно реализовать функцию при нажатии кнопки, мотор вращается, а при нажатии на другую кнопку или эту же остановить мотор?
Arduino Arduino due и Serial Всем доброго времени суток. Я приобрел на алике у двух разных продавцов две Due. покупал в замен Leonardo(Места стало не хватать, а творчества через край). Она каким то образом и по serial общалась и... https://www.cyberforum.ru/ arduino/ thread2864076.html
Arduino Подбор rfid оборудования https://www.cyberforum.ru/ arduino/ thread2862127.html
Здравствуйте, мне необходимо подобрать rfid оборудования для считывания меток, наклеенных на металлический инструмент. Сам инструмент находится внутри металлического модуля.
Arduino Отправка запросов от Arduino UNO на веб-сервер (и обратно)
Доброго времени суток. Суть такая: делаю самопальную СКУД на базе Arduino UNO. Дошёл до момента, когда надо передать данные ID карты с ардуинки на веб-сервер, чтобы тот проверил её наличие в БД,...
Arduino Управление сервоприводом с bluetooth модуля https://www.cyberforum.ru/ arduino/ thread2860403.html
Собираю программу по управлению сервоприводом с телефона через bluetooth модуль HC-06. Для подключения к модулю использую приложение Bluetooth Terminal. При загрузки скетча bluetooth модуль работает...
Arduino Работа с LCD дисплеем на Arduino https://www.cyberforum.ru/ arduino/ thread2859825.html
Здравствуйте читатели. Произошла такая проблема, писал код для контролера Arduino NANO и получилась такая путаница. Написал код основываясь на других проектах из интернета и получилось что я написал...
Arduino Передача по SPI от Slave к Master
Не могу понять, этот алгоритм. Читаю про SPI интерфейс, он вроде бы самый скоростной, на борту Ардуино (наверное). В общем всё понятно, опускаем линию устройства на Землю. Начинаем передавать от...
Arduino Управление ардуиной через оптический кабель Здравствуйте...нужна консультация и любая помощь...в заранее спасибо! Задача: нужно отправлят пакет команд из компьютера на ардуино на большом расстоянии...я подумал использовать оптику для связи но... https://www.cyberforum.ru/ arduino/ thread2859070.html
96 / 25 / 20
Регистрация: 17.09.2014
Сообщений: 1,367
18.09.2021, 17:39  [ТС] 0

Лагает при уходе числа в минус - Arduino - Ответ 15717245

18.09.2021, 17:39. Показов 2836. Ответов 11
Метки (Все метки)

Ответ

Понятно что через сдвиг, если сложение через сдвиг. )

Я потом ещё поигрался, оказалось что лаги движков вызваны задержкой между шагами, вернее тем, что она слишком мала.
Я использую на оси X два движка M49SP-2K и на Y - M35SP-9.
Так-то они на 24в, но и от 12 крутятся.
Естественно я нихрена не понял как настроить ток на драйверах, если напряжение в 2 раза меньше, просто выкрутил резисторы на половину.
Со скоростью тоже не понятно, в даташите их 4 указавается.
Втягивание, вытягивание, пульсы...

Методом тыка вот так нормально перемещается:
Более равномерно, когда импульсы не через задержку идут, как в предыдущем варианте.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#define PIN_X    A0 // ось джойстика X A0
#define PIN_Y    A1 // ось джойстика Y A1
 
#define PIN_DIR1  2  // X левый шд D2
#define PIN_STEP1 5  // X левый шд D5
 
#define PIN_DIR2  3  // X правый шд D3
#define PIN_STEP2 6  // X правый шд D6
 
#define PIN_DIR3  4  // Y шд D4
#define PIN_STEP3 7  // Y шд D7
 
#define DELAY  1500  // Задержка вращения в млс
 
void setup()
{
  // Джойстик
  pinMode(PIN_X, INPUT);
  pinMode(PIN_Y, INPUT);
  
  // Шаговики
  pinMode(PIN_DIR1, OUTPUT);
  pinMode(PIN_STEP1, OUTPUT);
 
  pinMode(PIN_DIR2, OUTPUT);
  pinMode(PIN_STEP2, OUTPUT);
 
  pinMode(PIN_DIR3, OUTPUT);
  pinMode(PIN_STEP3, OUTPUT);
  
  // Начальные значения
  digitalWrite(PIN_DIR1, LOW);
  digitalWrite(PIN_STEP1, LOW);
  
  digitalWrite(PIN_DIR2, LOW);
  digitalWrite(PIN_STEP2, LOW);
  
  digitalWrite(PIN_DIR3, LOW);
  digitalWrite(PIN_STEP3, LOW);
}
void loop()
{
  int X = (analogRead(PIN_X) / 102) - 5; // Привести значения 0-1023 к от -5 до 5
  int Y = (analogRead(PIN_Y) / 102) - 5; // Привести значения 0-1023 к от -5 до 5 (резистор этой оси с дико неравномерным напылением, поэтому ниже будет костыль)
 
  int X_E = 0; // Переменная для определения должны ли вращаться шд по оси X.
  int Y_E = 0; // Переменная для определения должен ли вращаться шд по оси Y.
 
  if (-1 > X || X > 1) X_E = 1; // Если ось джойстика X не -1, 0, 1 значит шд X активен
  if (-1 > Y || Y > 1) Y_E = 1; // Если ось джойстика Y не -1, 0, 1 значит шд Y активен
 
  if (!X_E && !Y_E) return; // Если джойстик в среднем положении по обеим осям, дальнейшее выполнение кода не имеет смысла
  
  int X_D = 0; // Переменная определяет направление вращения шд X
  int Y_D = 0; // Переменная определяет направление вращения шд Y
 
  if (X_E != 0) // Если шд X активны
  {
    if (X > 0) X_D = 1; // Если ось джойстика по оси X больше 0, то направление положительное
    
    digitalWrite(PIN_DIR1, X_D); // Установить направление вращения левому шд X
    digitalWrite(PIN_DIR2, X_D); // Установить направление вращения правому шд X
    digitalWrite(PIN_STEP1, HIGH); // Подать высокий сигнал на левый шд X
    digitalWrite(PIN_STEP2, HIGH); // Подать высокий сигнал на правый шд X
  }
  if (Y_E != 0) // Если шд Y активен
  {
    if (Y > 0) Y_D = 1; // Если ось джойстика по оси Y больше 0, то направление положительное
    
    digitalWrite(PIN_DIR3, Y_D);   // Установить направление вращения шд Y
    digitalWrite(PIN_STEP3, HIGH); // Подать высокий сигнал на шд Y
  }
  delayMicroseconds(DELAY); // Задержка
  
  if (X_E != 0) // Если шд по оси X активны
  {
    digitalWrite(PIN_STEP1, LOW); // Убрать высокий сигнал с левого шд X
    digitalWrite(PIN_STEP2, LOW); // Убрать высокий сигнал с правого шд X
  }
  if (Y_E != 0) digitalWrite(PIN_STEP3, LOW); // Если шд по оси X активны, убрать высокий сигнал с шд Y
  
  delayMicroseconds(DELAY); // Задержка
}


Вернуться к обсуждению:
Лагает при уходе числа в минус Arduino
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2021, 17:39
Готовые ответы и решения:

сделать кнопку , которая изменяется при наведении и принимает прежний вид при уходе с кнопки
Ребята, теперь я буду вас расспрашивать о вебе постоянно. Прошу ответить - надо сделать кнопку ,...

Анимация при уходе курсора
Подскажите пожалуйста, как реализовать анимацию при уходе курсора с элемента? Нужно проиграть эту...

Событие при наведении/уходе со ссылки
Кто подскажет код что-бы при наведение на ссылку изображение менялась, а при убирании указателя,...

Убрать class при уходе курсора с DIV
Есть 2 div в разных местах разметки. Мне необходимо чтобы при наведении курсора на div.mi.submenu...

agsXMPP событие при уходе контакта в оффлайн
Делаю xmpp клиент на C# с помощью библиотеки agsXMPP. При входе контакта в сеть происходит событие...

11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2021, 17:39

компьютер зависает при уходе в спящий режим
компьютер зависает при уходе в спящий режим(когда бездействует) при этом клавиатура не работает из...

Вывести сообщение при уходе курсора с текстового поля
Как вывести номер и текст выбранных элементов списка одного фрейма при уходе курсора с текстового...

Зависает ноут при выключении/перезагрузке/уходе в спящтй режим
Добрый день! Ситуация рандомная поэтому прошу помощи, может кто-то сталкивался. В один момент...

измените программу. программа умножает числа.нужно сделать так чтобы при умножении на отрицательное число не было знака минус.
data segment beginstr db 'Vvedite chisla...$' errorstr db 'Oshibka: nepravilnoe chislo!$'...

Windows при уходе в спящий режим, через некоторое время выкл
Всем привет! Возникла такая проблема: Есть две системы - Windows 10 и Ubuntu 17.04. До того...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.