A A A A Автор Тема: Arduino для начинающих: вопросы и ответы  (Прочитано 15751 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
По многочисленным просьбам создаю тему.
Давайте обсуждать, делиться опытом.
А ещё, если будет актуально, первое сообщение можно будет прилепить и завести здесь FAQ.


Уроки для начинающих. Очень подробно и доходчиво.

#0 Введение в курс. Содержание серии "Основы Arduino для начинающих" - YouTube
« Последнее редактирование: 12 Мар 2017 [15:49:35] от Deimos »
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Kvif49

  • ****
  • Забанен!
  • Сообщений: 406
  • Благодарностей: 1
  • Мне нравится этот форум!
    • Сообщения от Kvif49
Re: Arduino для начинающих: вопросы и ответы
« Ответ #120 : 20 Янв 2020 [16:00:39] »
Nema17 попадался на глаза, но и стоит он раза в 4 больше.
Ну всего то 300р на али, я бы все таки его вешал вместо того слабенького. + драйвер A4988

Оффлайн god.production

  • Новичок
  • *
  • Сообщений: 35
  • Благодарностей: 2
  • Лиха беда начало
    • Сообщения от god.production
Re: Arduino для начинающих: вопросы и ответы
« Ответ #121 : 20 Янв 2020 [19:27:52] »
Ок, пусть будет Nema17. Все же вопрос как подсоединить сразу 2 мотора к одной ардуине? Без motor shield не обойтись?

Aleks71

  • Гость
Re: Arduino для начинающих: вопросы и ответы
« Ответ #122 : 20 Янв 2020 [19:30:12] »
Ок, пусть будет Nema17. Все же вопрос как подсоединить сразу 2 мотора к одной ардуине? Без motor shield не обойтись?
есть же разрисованный во всех деталях проект    https://astronomy.ru/forum/index.php/topic,143891.0.html

Оффлайн Kvif49

  • ****
  • Забанен!
  • Сообщений: 406
  • Благодарностей: 1
  • Мне нравится этот форум!
    • Сообщения от Kvif49
Re: Arduino для начинающих: вопросы и ответы
« Ответ #123 : 20 Янв 2020 [20:26:42] »
Без motor shield не обойтись?
Обойтись, конечно. Вот такие платки под драйверы берите (2 драйвера нужно, раз 2 мотора)



с ними удобнее работать.
Только если размером микрошага планируете с самой ардуины управлять, то плата не пойдет, на этой плате микровыключателями сразу настраивается микрошаг.

А в чем проблема подключить два драйвера к ардуине?

Оффлайн god.production

  • Новичок
  • *
  • Сообщений: 35
  • Благодарностей: 2
  • Лиха беда начало
    • Сообщения от god.production
Re: Arduino для начинающих: вопросы и ответы
« Ответ #124 : 20 Янв 2020 [21:41:02] »
Ок, пусть будет Nema17. Все же вопрос как подсоединить сразу 2 мотора к одной ардуине? Без motor shield не обойтись?
есть же разрисованный во всех деталях проект    https://astronomy.ru/forum/index.php/topic,143891.0.html

Тут все круто, но мой мозг пока это не осиливает  :) Но со временем попробую осилить

Оффлайн god.production

  • Новичок
  • *
  • Сообщений: 35
  • Благодарностей: 2
  • Лиха беда начало
    • Сообщения от god.production
Re: Arduino для начинающих: вопросы и ответы
« Ответ #125 : 20 Янв 2020 [21:42:28] »
Без motor shield не обойтись?
Обойтись, конечно. Вот такие платки под драйверы берите (2 драйвера нужно, раз 2 мотора)



с ними удобнее работать.
Только если размером микрошага планируете с самой ардуины управлять, то плата не пойдет, на этой плате микровыключателями сразу настраивается микрошаг.

А в чем проблема подключить два драйвера к ардуине?

Не знаю как распиновку сделать :( Примеры для одного драйвера только видел
« Последнее редактирование: 20 Янв 2020 [22:09:02] от god.production »

Оффлайн Kvif49

  • ****
  • Забанен!
  • Сообщений: 406
  • Благодарностей: 1
  • Мне нравится этот форум!
    • Сообщения от Kvif49
Re: Arduino для начинающих: вопросы и ответы
« Ответ #126 : 20 Янв 2020 [23:36:56] »
Не знаю как распиновку сделать
выходы step и dir драйверов на любые цифровые выходы ардуины

Оффлайн johny74

  • *****
  • Сообщений: 1 760
  • Благодарностей: 136
    • Сообщения от johny74
Re: Arduino для начинающих: вопросы и ответы
« Ответ #127 : 30 Янв 2020 [04:28:39] »
Подскажите, кто знает: если использовать внутренний таймер в ардуино мега например, в качестве часов, какая у него погрешность?
допустим за 10 часов убежит больше или меньше секунды?
LightBridge 16" push-to, nikon monarch 8x42, SRBC 10x50, nikon action 12x50

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Arduino для начинающих: вопросы и ответы
« Ответ #128 : 30 Янв 2020 [10:04:19] »
Таймеры в контроллере - это делитель входной частоты плюс генерация прерываний или спецсигналов (сброс например) с использованием настроек в регистрах. Поэтому точность таймера определяется точностью тактирования.
А использование внутренних ресурсов любого микроконтроллера - это всегда работа с регистрами в соответствии с документацией. Что касается фреймворков типа той же ардуины, надо иметь в виду, что какие-то ресурсы уже используются где-то под капотом, поэтому надо опять-таки читать документацию уже на фреймворк на предмет использования ресурсов (ну или исходники).
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн johny74

  • *****
  • Сообщений: 1 760
  • Благодарностей: 136
    • Сообщения от johny74
Re: Arduino для начинающих: вопросы и ответы
« Ответ #129 : 30 Янв 2020 [11:04:22] »
Таймеры в контроллере - это делитель входной частоты плюс генерация прерываний или спецсигналов (сброс например) с использованием настроек в регистрах. Поэтому точность таймера определяется точностью тактирования.
А использование внутренних ресурсов любого микроконтроллера - это всегда работа с регистрами в соответствии с документацией. Что касается фреймворков типа той же ардуины, надо иметь в виду, что какие-то ресурсы уже используются где-то под капотом, поэтому надо опять-таки читать документацию уже на фреймворк на предмет использования ресурсов (ну или исходники).
Ну круто! ))
Как в песне - "все понятно, но что конкретно?"
Вопрос простой - в программе необходимо отсчитывать время, начиная с какого то момента, максимальный разумный интервал - 10 часов (время использования Pushto при наблюдениях), функции millis() мне за глаза, но по ОПЫТУ (не в теории) насколько сильно убежит/отстанет время в контроллере? в районе нескольких секунд - меня устроит, если больше уже нет.
Т.е. нужно лепить еще DS1307 или нет? Просто, на всякий случай 1307 мне тоже не нужна.
LightBridge 16" push-to, nikon monarch 8x42, SRBC 10x50, nikon action 12x50

Оффлайн Iovch

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Re: Arduino для начинающих: вопросы и ответы
« Ответ #130 : 30 Янв 2020 [11:15:32] »
Вопрос простой - в программе необходимо отсчитывать время, начиная с какого то момента, максимальный разумный интервал - 10 часов (время использования Pushto при наблюдениях), функции millis() мне за глаза, но по ОПЫТУ (не в теории) насколько сильно убежит/отстанет время в контроллере?
По моим наблюдениям, расхождение таймера ардуино Нано несколько секунд в сутки. От экземпляра конечно зависит, с расхождением более 1 минуты не припомню.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн johny74

  • *****
  • Сообщений: 1 760
  • Благодарностей: 136
    • Сообщения от johny74
Re: Arduino для начинающих: вопросы и ответы
« Ответ #131 : 30 Янв 2020 [11:47:47] »
Спасибо!
Как думаете внешние прерывания от энкодеров могут вносить дополнительную погрешность в отсчет времени?
LightBridge 16" push-to, nikon monarch 8x42, SRBC 10x50, nikon action 12x50

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Arduino для начинающих: вопросы и ответы
« Ответ #132 : 30 Янв 2020 [14:30:48] »
у меня был опыт держания в руках китайской ардуины, где 16МГц кварц имел погрешность порядка 2% от номинала, пришлось городить механизмы компенсации
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Iovch

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Re: Arduino для начинающих: вопросы и ответы
« Ответ #133 : 30 Янв 2020 [14:33:45] »
В литературе пишут, что правильность отсчета времени гарантируется, если не используются прерывания. Но не проверял, насколько критично это влияние.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Arduino для начинающих: вопросы и ответы
« Ответ #134 : 30 Янв 2020 [14:38:52] »
Не совсем так. Из-за того, что прерывания в атмегах не могут вытеснять друг друга, обработчик нового прерывания не может быть запущен до тех пор, пока выполняется текущий. Если он выполняется долго, будет задержка входа в следующий.
Это приводит к тому, что:
1. возможна задержка обработки текущего события
2. если в обработчике выполняется настройка следующего события, будет накопление задержек
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн johny74

  • *****
  • Сообщений: 1 760
  • Благодарностей: 136
    • Сообщения от johny74
Re: Arduino для начинающих: вопросы и ответы
« Ответ #135 : 01 Фев 2020 [15:38:28] »
Вопрос по функции, которая обрабатывает внешнее прерывание:

Вариант 1:
void encoder_1(){             
  int pin_19, pin_17;
  pin_19 = digitalRead(19);
  pin_17 = digitalRead(17);
  if ( pin_19 != pin_17 ){
   alt_new++;
  } else { alt_new--;
           };           
};

Вариант 2:
void encoder_1(){             
  if ( digitalRead(19) != digitalRead(17) ){
   alt_new++;
  } else { alt_new--;
           };           
};

Какой вариант предпочтительней по скорости, второй?
LightBridge 16" push-to, nikon monarch 8x42, SRBC 10x50, nikon action 12x50

Оффлайн Ol_Bams

  • ***
  • Сообщений: 144
  • Благодарностей: -1
  • Мне нравится этот форум!
    • Сообщения от Ol_Bams
Re: Arduino для начинающих: вопросы и ответы
« Ответ #136 : 01 Фев 2020 [16:07:56] »
Может так лучше?

void encoder_1()
{
    ( digitalRead(19) != digitalRead(17) ) ? alt_new++ : alt_new--;
};

Оффлайн johny74

  • *****
  • Сообщений: 1 760
  • Благодарностей: 136
    • Сообщения от johny74
Re: Arduino для начинающих: вопросы и ответы
« Ответ #137 : 01 Фев 2020 [16:12:03] »
? alt_new++ : alt_new--;
Этот синтаксис мне не знаком. Но я совсем не программист ))
Т.е. без переменных и присваиваний значений, должно быть быстрее?
Но в первом случае я сначала считываю статус обоих пинов и только потом сравниваю - вот я и не знаю что будет работать быстрее?
LightBridge 16" push-to, nikon monarch 8x42, SRBC 10x50, nikon action 12x50

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Arduino для начинающих: вопросы и ответы
« Ответ #138 : 01 Фев 2020 [16:16:41] »
Вопрос по функции, которая обрабатывает внешнее прерывание:
Имею основания считать, что они будут идентичными.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xdАвтор темы

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Arduino для начинающих: вопросы и ответы
« Ответ #139 : 01 Фев 2020 [16:17:42] »
Может так лучше?

void encoder_1()
{
    ( digitalRead(19) != digitalRead(17) ) ? alt_new++ : alt_new--;
};

Имхо лишнее усложнение читаемости без выигрыша в скорости.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/