Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC > Arduino
Ответ
 
Опции темы Опции просмотра
Старый 05.03.2017, 19:10   #1
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию Управление сервами от кнопок (для аналогового макета)

Дело было в выходной...
Делать было нечего...
Пусть и не складно, но по теме
Накидал скетч управления тремя сервами с трех кнопок с отображением положения стрелки.
Может и было уже, но интересно было самому поиграться, да и камрад на соседнем форуме озадачился таким девайсом для своего аналогового макета. В принципе, ничего не мешает и на цифровом его использовать, но без управления от КС.
При включении - сервы выворачивает в последнее состояние (если вдруг их свернули)
"Грабли" обнаружены одни, при переводе из положения 0 (угол не важен, при любых раскладах, когда запускается поворот на увеличение угла) сначала идет небольшой отскок назад.
Как говорил один мой знакомый: "Это баг, которы вовсе не баг, потому что в скрипах все правильно".
Грешу на сервы...
Сори, комменты кривые, особенно с реверсом, но думаю мысль понятна. Смысл тот же, что у местного ServoMotion.
Код:
//подключаемые библиотеки
#include <EEPROM.h>
#include <Bounce2.h>
#include <Servo.h>

//переменные конфигурации
int servoAngles[][2]={{0,90},{0,90},{0,90}}; // углы отклонения сервоприводов {"прямо", "в бок"}
byte servoReverce[]={0,0,0}; //реверс углов сервоприводов (если в положении "прямо" угол задан во втором элементе предыдущего массива, то поставить 1.)
int servoSpeed[]={10,10,10}; //скорость вращения сервопривода. указано количество миллисекунд поаорота на 1 градус

//переменные определяюще ножки подключения
int normalLed[]={8,10,12}; //ножки подключения светодиода показывающего прямое положение стрелки
int routeLed[]={9,11,13}; //ножки подключения светодиода показывающего положение стрелки "в бок"
int servoPins[]={3,5,6}; //ножки подключения провода управления сервопривода
int buttonPins[]={2,4,7}; //ножки подключения кнопок переключения

//переменные используемые при повороте сервопривода
byte CurrentPosition[]={0,0,0}; //текущее положение сервопривода. 0=прямо, 1=в бок.
int currentAngle[]={0,0,0};//текущий угол поворота сервопривода
unsigned long nextTime[]={0,0,0};// время следующего поворота на 1 градус
unsigned long currentTime; //текущее время
byte dir;// направление поворота сервопривода

//объекты сервоприводов и антидребезка кнопок
const int servos=sizeof(servoPins)/sizeof(int);
Servo servoServos[servos];
Bounce servoBouncer[servos];

void setup() {
  for(int i=0;i<servos;i++){
    pinMode(buttonPins[i], INPUT);
    servoBouncer[i] = Bounce();
    servoBouncer[i].attach(buttonPins[i]);
    servoBouncer[i].interval(5);
    pinMode(normalLed[i], OUTPUT);
    pinMode(routeLed[i], OUTPUT);
    if(EEPROM.read(i) > 1){
      EEPROM.update(i,0);
    }
    CurrentPosition[i]=EEPROM.read(i);
    digitalWrite(normalLed[i], !CurrentPosition[i]);
    digitalWrite(routeLed[i], CurrentPosition[i]);
    servoServos[i].attach(servoPins[i]);
    if(servoReverce[i]){
      servoServos[i].write(servoAngles[i][!CurrentPosition[i]]);
      currentAngle[i]=servoAngles[i][!CurrentPosition[i]];
    }
    else {
      servoServos[i].write(servoAngles[i][CurrentPosition[i]]);
      currentAngle[i]=servoAngles[i][CurrentPosition[i]];
    }
  }
  delay(1000);
  for(int i=0;i<servos;i++){
    servoServos[i].detach();
  }
}

void loop() {
  currentTime=millis();
  for(int i=0;i<servos;i++){
    if(nextTime[i]>0 && nextTime[i]<currentTime){
      if(currentAngle[i]>=servoAngles[i][0] && currentAngle[i]<=servoAngles[i][1]){
        nextTime[i]=currentTime+servoSpeed[i];
        if(servoReverce[i]){
          dir=!CurrentPosition[i];
        }
        else {
          dir=CurrentPosition[i];
        }
        if(dir){
          currentAngle[i]++;
        }
        else {
          currentAngle[i]--;
        }
        if(servoAngles[i][1]/currentAngle[i] == 2 || servoAngles[i][1]/currentAngle[i] == 2.5 ){
          digitalWrite(normalLed[i], !CurrentPosition[i]);
          digitalWrite(routeLed[i], CurrentPosition[i]);
        }
        servoServos[i].write(currentAngle[i]);
      }
      else{
        nextTime[i]=0;
        servoServos[i].detach();
      }
    }
    if(servoBouncer[i].update()){
      if(servoBouncer[i].read()==LOW){
        CurrentPosition[i]=!CurrentPosition[i];
        EEPROM.update(i,CurrentPosition[i]);
        nextTime[i]=currentTime;
        if(servoReverce[i]){
          currentAngle[i]=servoAngles[i][CurrentPosition[i]];
        }
        else {
          currentAngle[i]=servoAngles[i][!CurrentPosition[i]];
        }
        servoServos[i].attach(servoPins[i]);
      }
    }
  }
}
Схема
Нажмите на изображение для увеличения
Название: servo_bb.jpg
Просмотров: 1146
Размер:	160.6 Кб
ID:	140741
Можно и Arduino Pro Mini использовать, по ногам вроде как совпадает она с Uno.
Видео работы.
BNSF9399 вне форума   Вверх
15 пользователя(ей) сказали cпасибо:
Старый 05.03.2017, 19:38   #2
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 14.10.2014
Адрес: Москва
Сообщений: 627
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 9,085
Поблагодарили 1,425 раз(а) в 522 сообщениях
Репутация: этим человеком можно гордиться (1453)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
Накидал скетч управления тремя сервами с трех кнопок с отображением положения стрелки.
Может и было уже, но интересно было самому поиграться
То есть, была в хозяйстве плата Arduino Uno, но не было Аксессуарного декодера ServoMotion1 на 4 выхода?
Ваше решение весьма элегантно и вдобавок - экономия , так как местный стрелочный декодер стоит 1200 руб, а Arduino Uno на e-bay - почти в 4 раза меньше. Но я вот уже набрал себе нужное количество местных декодеров... И жаба не душит. Работают они неплохо.
Миниатюры:
Нажмите на изображение для увеличения
Название: Ручное управление сервоприводами.jpg
Просмотров: 1933
Размер:	85.3 Кб
ID:	140742
malevich вне форума   Вверх
3 пользователя(ей) сказали cпасибо:
Старый 05.03.2017, 19:53   #3
laba
Местный
 
Аватар для laba
 
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,598
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,686
Поблагодарили 4,672 раз(а) в 1,771 сообщениях
Репутация: репутация неоспорима (4956)
По умолчанию

В качестве улучшения проекта, можно добавить режимы программирования углов поворота по кнопке. Я такое делал на модуле управления переездом. А чтобы не заморачиваться с реализацией медленного перемещения на обычных серва на стандартной библиотеке, можно использовать "медленные" сервы. Разница в цене не особая.



__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB
С приветом из подземки!!!
laba вне форума   Вверх
8 пользователя(ей) сказали cпасибо:
Старый 05.03.2017, 20:09   #4
kudrdima
оффтопик
kudrdima на форуме   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Старый 05.03.2017, 20:18   #5
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от malevich Посмотреть сообщение
была в хозяйстве плата Arduino Uno, но не было
у мня в хозяйстве все есть но камраду за безнадобностью местный декодер да КС у него нет.чтобы настроить его. а по дефолту у него скорость с углами для HO

---------- Сообщение добавлено в 20:18 ---------- Предыдущие сообщение было в 20:16 ----------

Цитата:
Сообщение от laba Посмотреть сообщение
А чтобы не заморачиваться
Проще пару цифр поменять и перезалить, чем специально сервы искать... КМК
BNSF9399 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 05.03.2017, 20:20   #6
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,833
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 605
Поблагодарили 1,742 раз(а) в 1,019 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1742)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
В принципе, ничего не мешает и на цифровом его использовать, но без управления от КС.
Если изменить скетч на управление от тумблера, то тогда и с КС можно управлять.
Alexmit вне форума   Вверх
Пользователь сказал cпасибо:
Старый 05.03.2017, 20:50   #7
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Если изменить скетч на управление от тумблера, то тогда и с КС можно управлять.
Не-не... в скетче как класс отсутствует DCC какие тумблера?
BNSF9399 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 05.03.2017, 20:58   #8
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,833
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 605
Поблагодарили 1,742 раз(а) в 1,019 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1742)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
какие тумблера?
Имелось в виду управление логическими уровнями.
0 - в одну сторону, 1 - в другую.
Alexmit вне форума   Вверх
Пользователь сказал cпасибо:
Старый 05.03.2017, 22:10   #9
Qvan22
Заглянувший
 
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 99
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 238
Поблагодарили 155 раз(а) в 63 сообщениях
Репутация: - весьма и весьма положительная личность (155)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
int servoPins[]={3,5,6}; //ножки подключения провода управления сервопривода
оффтопик
Qvan22 вне форума   Вверх
4 пользователя(ей) сказали cпасибо:
Старый 05.03.2017, 23:26   #10
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Qvan22 Посмотреть сообщение
Аппаратный шим все равно тут не используется.
Спасибо, не знал. В примерах просто везде на ШИМ повешены сервы.

---------- Сообщение добавлено в 23:26 ---------- Предыдущие сообщение было в 23:19 ----------

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Имелось в виду управление логическими уровнями.
0 - в одну сторону, 1 - в другую.
у автора ТЗ запрос был именно на кнопку и именно одну кнопку.
можно и тумблера, вместо переменной CurrentPosition считывать состояние входа тумблера.

Цитата:
Сообщение от Alexmit Посмотреть сообщение
на управление от тумблера, то тогда и с КС можно управлять.
я вот тут не смог найти взаимосвязи

если допиливать до DCC, то кнопки тут не помеха. Если стрелка перевелась по команде, меняете в переменной текущее положение и все. Дальше от кнопки все будет работать как надо. А вот с тумблерами какраз так не выйдет. Ибо обнаружив, что тумблер находится в положении "прямо", а только что с КС стрелка перевелась в бок, ее тут же вернет в прямое положение. Думаю именно по этой причине, местные декодеры работают либо от тумблеров, либо от КС.
BNSF9399 вне форума   Вверх
Старый 06.03.2017, 03:21   #11
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,833
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 605
Поблагодарили 1,742 раз(а) в 1,019 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1742)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
если допиливать до DCC,
А не надо до DCC допиливать.
Просто провода вместо тумблеров, цепляются напрямую к DCC++, например.
И ещё есть варианты.
Alexmit вне форума   Вверх
Старый 06.03.2017, 10:15   #12
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
цепляются напрямую к DCC++
в какое место?
BNSF9399 вне форума   Вверх
Старый 06.03.2017, 10:56   #13
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,833
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 605
Поблагодарили 1,742 раз(а) в 1,019 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1742)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
в какое место?
Заходим вот сюда http://wiki.rocrail.net/doku.php?id=dccpp:dccpp-en
И ищем G-ASH02.
Alexmit вне форума   Вверх
2 пользователя(ей) сказали cпасибо:
Старый 06.03.2017, 11:32   #14
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Цитировать
ааа.. понял. ну в принципе, почему бы и нет.
BNSF9399 вне форума   Вверх
Старый 13.03.2017, 00:16   #15
Andrew78
Заглянувший
 
Регистрация: 15.01.2012
Адрес: Минск
Сообщений: 30
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 7
Поблагодарили 11 раз(а) в 6 сообщениях
Репутация: на пути к лучшему (11)
По умолчанию

Подскажите пожалуйста такую вещь. Замутил пока такую схему (пока тренируюсь, нажимаю левую кнопку, загорается правый диод и сервы поворачиваются в одну сторону, нажимаю правую - загорается правый диод и сервы поворачиваютчя в другую сторону). После поворота сервы часто гудят. Из за чего это может быть?
Миниатюры:
Нажмите на изображение для увеличения
Название: ServoButtonLed_bb.png
Просмотров: 1694
Размер:	187.4 Кб
ID:	141037
Andrew78 вне форума   Вверх
Старый 13.03.2017, 01:00   #16
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Andrew78 Посмотреть сообщение
После поворота сервы часто гудят. Из за чего это может быть?
а почему бы им не гудеть? они пытаются встать в правильное положение. чем дешевле серва - тем более выражен будет ждиттер.
после поворота нужно делать detach()
BNSF9399 вне форума   Вверх
Старый 13.03.2017, 01:25   #17
Andrew78
Заглянувший
 
Регистрация: 15.01.2012
Адрес: Минск
Сообщений: 30
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 7
Поблагодарили 11 раз(а) в 6 сообщениях
Репутация: на пути к лучшему (11)
По умолчанию

Завтра уже проверю. А delay() надо делать перед detach(), что бы сервы успели занять свое положение?
Andrew78 вне форума   Вверх
Старый 13.03.2017, 01:32   #18
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от Andrew78 Посмотреть сообщение
А delay() надо делать перед detach(),
безусловно.
но я не сторонние пауз. посмотрите как это реализовано в моем скетче.
и не забудьте перед началом поворота attach сделать
BNSF9399 вне форума   Вверх
Старый 13.03.2017, 14:21   #19
kuli
Заглянувший
 
Регистрация: 09.01.2016
Адрес: Санкт-Петербург
Сообщений: 103
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 305
Поблагодарили 50 раз(а) в 29 сообщениях
Репутация: скоро придёт к известности (50)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
управления тремя сервами
День добрый.
В вопросе ардуино ничего не понимаю. Какая то тупость наподает
А если на 15 серв? Реально?
kuli вне форума   Вверх
Старый 13.03.2017, 14:56   #20
BNSF9399
Местный
 
Аватар для BNSF9399
 
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,715 раз(а) в 754 сообщениях
Репутация: репутация неоспорима (2714)
По умолчанию

Цитата:
Сообщение от kuli Посмотреть сообщение
А если на 15 серв? Реально?
а почему нет? возможно.
1 плата = 3 сервы
15/3 = 5 плат
и будет 15 серв
BNSF9399 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 13.03.2017, 15:08   #21
Dampflok
Заглянувший
 
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 205
Поблагодарили 329 раз(а) в 99 сообщениях
Репутация: как роза среди колючек (329)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
5 плат - 15 серв
Зачем так человека пугаете!
Цитата:
Сообщение от kuli Посмотреть сообщение
День добрый.
А если на 15 серв? Реально?
И Вам тоже Доброго времени!
И на 15 серв с одной платы возможно. Только, пожалуй, не с одновременным срабатыванием.
Иначе, как говорят, "просядет" напряжение
Цитата:
Сообщение от kuli Посмотреть сообщение
В вопросе ардуино ничего не понимаю. Какая то тупость наподает
Не бойтесь!
Главная истина: не нужно быть "электронщиком" для того,
чтобы научиться играть с ардуиной и её принадлежностями (датчиками, сервомоторами и прочими компонентами)
Dampflok вне форума   Вверх
Пользователь сказал cпасибо:
Старый 13.03.2017, 15:16   #22
мистер И.К.С.
Ĩ.Ĉ.Šҧрѻҫҭҩ мӥҫҭҿӄѣ Ӥ.Ҟ.Ҫ
 
Аватар для мистер И.К.С.
 
Регистрация: 10.07.2006
Адрес: 13 верста У.Г.Ж.Д.
Сообщений: 1,400
Сказал(а) 'не согласен(а)'!: 336
Сказали 'не согласен'! 110 раз(а) в 103 сообщениях
Сказал(а) спасибо: 2,605
Поблагодарили 5,892 раз(а) в 2,272 сообщениях
Репутация: репутация неоспорима (6525)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
1 плата = 3 сервы 15/3 = 5 плат и будет 15 серв
у вас разве атмега8 ?

Цитата:
У старых Ардуин, укомплектованных мегой 8, имеется всего три ШИМ вывода (digital 9,10,11), у Ардуин укомплектованных мегой 168 или 328 их шесть (digital 3,5,6,9,10,11). Семейство Arduino MEGA имеет на своем борту целых 14 ШИМ выводов.
это если напрямую, а если с дополнительной платой то на каждой плате 16 штук. но не все одновременно.
мистер И.К.С. вне форума   Вверх
Старый 13.03.2017, 15:17   #23
kuli
Заглянувший
 
Регистрация: 09.01.2016
Адрес: Санкт-Петербург
Сообщений: 103
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 305
Поблагодарили 50 раз(а) в 29 сообщениях
Репутация: скоро придёт к известности (50)
По умолчанию

Цитата:
Сообщение от BNSF9399 Посмотреть сообщение
1 плата = 3 сервы
3 ардуины?
Цитата:
Сообщение от Dampflok Посмотреть сообщение
не с одновременным срабатыванием
естественно. А как не научите?
kuli вне форума   Вверх
Старый 13.03.2017, 15:20   #24
kudrdima
Местный
 
Аватар для kudrdima
 
Регистрация: 14.02.2014
Адрес: Санкт-Петербург, Пушкин, Александровская
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 99
Сказали 'не согласен'! 27 раз(а) в 23 сообщениях
Сказал(а) спасибо: 2,659
Поблагодарили 5,074 раз(а) в 1,058 сообщениях
Репутация: репутация неоспорима (5061)
По умолчанию

Цитата:
Сообщение от Dampflok Посмотреть сообщение
И на 15 серв с одной платы возможно. Только, пожалуй, не с одновременным срабатыванием.
Иначе, как говорят, "просядет" напряжение
Если Вы внимательно посмотреть на предложенный скетч, то видно, что в каждый момент времени обращение идёт лишь к одной серве, и повернув её на 1 градус, "ардуина" обращается к следующей.
kudrdima на форуме   Вверх
Старый 13.03.2017, 15:22   #25
Andrew78
Заглянувший
 
Регистрация: 15.01.2012
Адрес: Минск
Сообщений: 30
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 7
Поблагодарили 11 раз(а) в 6 сообщениях
Репутация: на пути к лучшему (11)
По умолчанию

Так по идее надо просто на питание серв отдельную "шину" кинуть, а не с платы ардуино брать. Главное что бы хватило самих пинов для управления сервами, кнопками и диодами.
А такое количество плат нужно потому что у УНО - 14 выходов, Если управлять одной кнопкой, то надо пин на кнопку, 2 пина на диоды, пин на серву. Итого 4 пина на серву.
В итоге 14/4 = 3.5, или 3 сервы на УНО, и 54/3 = 18 серв на Мегу.

ЗЫ. У меня 2 сервы одновременно крутились. Там по идее одномоментно пустил сигнал на поворот и приступил к следующей серве. Вечером попробую видео снять.
Andrew78 вне форума   Вверх
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой блок управления освещением аналогового макета на базе Ардуино Нано morshamenn Arduino 12 27.11.2019 21:59
Пульт аналогового управления макетом SergiyW Электрика и DCC 46 10.05.2016 00:00
Управление траверсером Crown Электрика и DCC 34 13.11.2012 22:35
Управление на ик лучах GOGA Электрика и DCC 38 29.12.2008 00:56
Цифровое управление Илья Электрика и DCC 26 15.07.2008 19:52


Текущее время: 10:34. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -