0
Как передавать данные понял…
Но вот каскад категорически не хочет работать… подсоединил, как везде в инете показывается и как написано в последних строках этой статьи: «С каскадным подключением история такая же, как и с 74HC595, только здесь вывод QH второго регистра подключается к выводу SER первого и т.п.»… но данные не поступают со второго регистра…
Что-то нужно, я так понимаю изменить в коде… Но что?
avatar

conysSM

  • 25 июля 2017, 17:44
0
Здравствуйте!
не знаю отзовётесь ли вы… Встал вопрос о подсоединении каскадом, не могу найти как программу написать… и ещё нужно чтоб каждая кнопка отзывалась светодиодом… Как совместить входящий тригер с выходящим? Как передавать данные?
avatar

conysSM

  • 25 июля 2017, 12:22
0
Ничего не поменялось… так же выскакивает эта ошибка…

avatar

conysSM

  • 10 июня 2017, 12:01
0
у меня Arduino IDE 1.8.1… попробую сейчас обновить…
avatar

conysSM

  • 10 июня 2017, 11:34
0
Если библиотеку удаляю, ошибка исчезает… Что делать? Как запустить Расширитель портов?
avatar

conysSM

  • 10 июня 2017, 11:32
0
И теперь при компиляции любого скетча, выдаётся выше указанная ошибка…
avatar

conysSM

  • 10 июня 2017, 11:29
0
Здравствуйте!
Пытаюсь подключить расширитель портов вот такой https://www.dfrobot.com/wiki/index.php/IIC_to_GPIO_Shield_V2.0_SKU:_DFR0013
Библиотеку PCA9555 установил. Пробую использовать скетчи в которых ссылка на эту библиотеку, но при компиляции выдаётся ошибка: ВНИМАНИЕ: Категория 'Input / Output' в библиотеке PCA9555 не является действительной. Установка на 'Uncategorized'
Что делать и в каком направлении искать?
Спасибо заранее за помощь!
avatar

conysSM

  • 10 июня 2017, 11:21
0
Очень нравится Ваша панорама с морем =)
А где можно посмотреть на эту панораму?
avatar

conysSM

  • 12 ноября 2012, 14:18
0
Ещё не поздно в конкурс вступать или уже всё? А то как раз мне ещё одна миниардуинка нужна на следующий РИГ :)
avatar

conysSM

  • 26 мая 2012, 05:50
0
О, спасибо огромное, особенно за оперативность :)А то думал опять неделю ждать придётся, как год назад :)
avatar

conysSM

  • 16 марта 2012, 13:15
0
Здравствуйте. Помогите понять почему в новой версии arduino-1.0 при компиляции выдаётся вот такая ошибка:
In file included from Proverka_pde.cpp:1:
D:\Program Files\arduino-1.0-windows\arduino-1.0\libraries\SoftwareServo
/SoftwareServo.h:4:22: error: WProgram.h: No such file or directory.


Компилировал скетч который в этой статье в последнем примере. Также выдаются такие же ошибки в скетчах, где есть обращение в сторонние библиотеки. Делаю тоже самое в arduino-0022 — всё в порядке… В чём дело? помогите пожалуйста понять.
avatar

conysSM

  • 16 марта 2012, 08:01
0
может опишете своё решение — скетч, схема (в отдельном посте=)?

К сожалению это не моё решение и приписывать к себе я не буду :) Управление ИК портом фотоаппарата через Ардуину разработал Sebastian Setz я лишь взял готовое. Там у него всё подробно расписано.
А в целом о риге (тоже не моё изобритение :) ) в принципе можно, только нужно время чтоб собраться, хотя о нём всё и так уже расписано на форуме змеенавтов :) И не только о моём но о ригах других участников идут более подробные обсуждения.
avatar

conysSM

  • 1 апреля 2011, 14:40
+1
Всем огромное спасибо :) на все вопросы ответы нашёл результат достигнут

avatar

conysSM

  • 1 апреля 2011, 10:55
0
А вот управлять кнопкой затвора ИК диодом это в самый раз, меньше городить арматуру подвески.
Но вот с ним то как раз таки и возник вопрос. Весь прикол в этих импульсах. Есть конечно уже готовые решения например GentLED Shutter но когда я увидел цену меня чуть кикоз не скрутил, это ж надо люди десяти рублёвый диод за такие бабки продают, хотя бы уж какой нибудь корпусик соорудили да проводки, как на сервах спаяли бы в лапшу. Есть ещё один вариант (точнее варианты на ебау)http://viewitem.eim.ebay.ru/15M-Remote-Sony-NEX-5-A550-A380-A330-A850--RMTDSLR1/270697615827/item здесь уже более менее цена адекватная да и девайс по приличней :). Диод закрепить на стойке возле глазка фотоаппарата, платку спрятать вместе с Ардуинкой, ну и естественно подключит управление замыканием контактов кнопок.
Но вот всё таки хочу сначала попробовать сам собрать, но для этого нужно выяснить на какой чистоте идёт приём у фотоаппарата, каким образом добиться выдачу этой чистоты с Ардуинки. И какой импульс нужен для срабатывания в фотоаппарате затвора.
И ещё чем отличаются ИК-диоды в пультах от TSAL4400? Можно ли пультовые использовать? И почему они прозрачные в пультах, а TSAL4400 с голубоватым оттенком?
Про подключение на прямую я имел ввиду без того блочка который виднеется под кембриком у gentlesовцев. Кстати спасибо я понял теперь зачем транзистор: для усиления свечения диода. Это разуметься не нужно, диод в плотную будет стоять к ИК-порту.

Спасибо за оценку фоток :)
avatar

conysSM

  • 31 марта 2011, 10:33
0
Спасибо Zoltberg но на прошлые вопросы уже можно не отвечать :) на главный с прерыванием вы уже ответили, остальные я уже решил :) Если интересно приведу код который сейчас управляет ригом:
// Pekavet v4

#include <Servo.h> 

//----
int TimeDelayStart  = 300;                 // время задержки старта в секундах      

int Cycle           = 5;                   // количество полных циклов
int cycleStep;

Servo servosm;                             // создаём объект для контроля сервы затвора
int ZatvStep        = 10;                   // задержка между срабатываниями сервы затвора в шагах двигателя
int zatv;
unsigned long time;                        // переменная отсчитавающая время
int servosm_pin     = 5;                   // пин для сервы затвора

Servo servobig;                            // создаём объект для контроля сервы вертикального поворота
// 809, 2180
int min_servo       = 1200;
int max_servo       = 2180;

int LevelStep       = 4;                   // количество круговых уровней сделанных платформой
int levelval;                              // переменная для хранения количиства уровней
int servobig_pin    = 6;                   // пин для сервы вертекального поворота камеры
//----
int moto_pin        = 11;                  // пин для управления двигателем горизонтальногоразворота камеры
int motoIN2_pin     = 8;                   // пин для драйвера IN2 двигателем горизонтальногоразворота камеры
int motoIN1_pin     = 7;                   // пин для драйвера IN1 двигателем горизонтальногоразворота камеры
int motostep;                              // шаги двигателя
//---- 
int btnval;                                // переменная состояния концевика
int btn_pin         = 12;                  // пин для концевика 

boolean btn_block = false;                 // контроль концевика от удержания
boolean foto_go = false;
int kadr;
//------------------------------------------------------------------------------------------------------
void setup() 
{ 
  //----
  pinMode(motoIN2_pin, OUTPUT);                         // назначение выход 8-му пину для IN2 драйвера двигателя
  pinMode(motoIN1_pin, OUTPUT);                         // назначение выход 7-му пину для IN1 драйвера двигателя
  digitalWrite(motoIN2_pin, LOW);                       // назначение направление движения
  digitalWrite(motoIN1_pin, HIGH);                      // для двигателя
  analogWrite(moto_pin,0);
  //----
  pinMode(btn_pin, INPUT);                              // назначение входа для концевика
  //----     
  Serial.begin(9600);                                   // инициализация работы с COM-портом
} 
//------------------------------------------------------------------------------------------------------
void loop() 
{
  //-----------------------
  if(cycleStep > Cycle-1)                                                   // если циклы пройдены полностью то останавливаем программу  
  {
    ServoBig (809);
    return;
  }   
  //-----------------------
  if(TimeDelayStart > 0)                                                   // задержка работы перед стартом для поднятия камеры
  {
    delay(1000);  
    TimeDelayStart--;
    ServoBig (2000);
    kadr++;
    if(kadr>=30)
    {
      kadr=0;
      ServoSmall();
    }
  }
  else 
  {
    //-----------------------                                                     // запуск двигателя
    Moto ();
    //-----------------------
    btnval = digitalRead(btn_pin);                                                // узнаём состояние концевика
    if(btnval==HIGH && btn_block==false)                                          // если концевик зажат и не стоит блокировка
    {
      if(levelval==LevelStep)                                                     // подсчитываем уровни и циклы
      { 
        levelval=0;
        cycleStep++; 
      }
      if(levelval <LevelStep)
      { 
        analogWrite(moto_pin,0);

        levelval++;
        ServoBig (min_servo + ((max_servo-min_servo)/(LevelStep-1))*(levelval-1));    // выставление вертикальной сервы на угол согластно уровня 
        ServoSmall();                                                                 // делаем снимок 
        foto_go=true;                                                                 // разрешаем делать съёмку
      }

      btn_block=true;                                                                 // ставим блокировку от зажима концевика
    }
    if(btnval==LOW)                                                                   // если концевик отпущен
    {
      btn_block=false;                                                                // снимаем блокировку
    }

    //-----------------------
    if(foto_go==true)
    {
      motostep++;
      if(levelval==1 || levelval==LevelStep)
      {
        zatv=ZatvStep*3;
      }
      if(levelval>1 && levelval<LevelStep)
      {
        zatv=ZatvStep;
      }

      if(motostep >= zatv)                                // если наступил момент для срабатывания сервы для затвора
      {
        ServoSmall();                                         // делаем снимок
        motostep=0;
      }
    }
    //-----------------------
  }
}
//------------------------------------------------------------------------------------------------------
void Moto()
{
  int dpos;
  for(dpos=0; dpos<255; dpos+=5)
  {
    analogWrite(moto_pin,dpos);
  }
  delay(10);
  for(dpos=255; dpos>0; dpos-=5)
  {
    analogWrite(moto_pin,dpos);
  }
  delay(10);
}

//------------------------------------------------------------------------------------------------------
void ServoBig (int posAngle)                       // функция поворота вертикальной сервы
{
  servobig.attach(servobig_pin, min_servo, max_servo); 
  int pos = servobig.readMicroseconds();           // определение положения сервы вертикального наклона
  while(pos > posAngle)
  {
    pos--;
    delay(5);
    servobig.writeMicroseconds(pos);
  }
  while(pos < posAngle)
  {
    pos++;
    delay(5);
    servobig.writeMicroseconds(pos);
  }
  servobig.detach();                               // отключаем серву
}
//------------------------------------------------------------------------------------------------------
void ServoSmall()                                  // функция поворота сервы затвора
{  
  servosm.attach(servosm_pin);                     // подключаем серву кнопки затвора к 5-му пину
  int pos;
  //----
  for(pos = 580; pos <= 800; pos +=5)              // делаем нажим на кнопку затвора
  {                                                // здесь нужно проработать код 
    servosm.writeMicroseconds(pos);                // для подстройки к параметрам фотоаппарата 
    delay(5);
  }
  delay(700);  
  //----
  for(pos = 800; pos >= 580; pos -=5)              // делаем нажим на кнопку затвора
  {                                                // здесь нужно проработать код 
    servosm.writeMicroseconds(pos);                // для подстройки к параметрам фотоаппарата 
    delay(5);
  }
  //----
  servosm.detach();                                // отключаем серву
}

В коде пока реализована задержка на срабатывание кода для того чтоб успеть поднять камеру на высоту. Скоро должны придти передатчики на 300 метров и тогда перепишу уже код. Управлять стартом диодом может и можно было бы но
не на большое расстояние, поэтому как-то сразу откинул.
avatar

conysSM

  • 31 марта 2011, 10:32
0
Я так и знал что про меня забыли :) вот и стал ножками стучать чтоб меня увидели :)
Не могу понять как же это пропустил статью про прерывания… а я решил эту часть с помощью разбивки на шаги движение двигателя. Хотя может и моё решение лучше (?) было по причине того, что на морозе двигатель отказывался крутиться, если на него подавалось небольшое напряжение, при уменьшении скорости его движения. Скажем при подаче от 200 и ниже двигатель отказывался крутиться (может смазка замерзала не знаю, но в тепле начинал двигаться) А так как мне надо было регулировать скорость поворота платформы то я просто стал его разбивать на импульсы с полной подачей напряжения. Можно было менять скорость разворота платформы, отсчитывать также, опираясь на шаги двигателя, количество раз нажимания на затвор в круге. А чтоб двигатель не дёргал платформу и не протягивался, подача импульса происходит с плавным нарастанием/убыванием, используется for():
void Moto()
{
  int dpos;
  for(dpos=0; dpos<255; dpos+=5)
  {
    analogWrite(moto_pin,dpos);
  }
  delay(10);
  for(dpos=255; dpos>0; dpos-=5)
  {
    analogWrite(moto_pin,dpos);
  }
  delay(10);
}

Естественно в момент остановки проверяется замкнуты ли контакты геркона(за место концевика поставил геркон) если замкнуты то производиться действие, и фиксируется запрет на дальнейшую проверку геркона на замыкание, пока платформа не выйдет в разомкнутую зону. При выходе — запрет снимается.
avatar

conysSM

  • 31 марта 2011, 10:32
0
О как зацепило то :) Ну тогда может у кого нибудь найдётся немного времени на меня? Про управление инфракрасниками здесь на сайте есть темы но они немного не о том… У меня в фотоаппарате находиться датчик инфракрасный, который предназначен чтоб управлять фотоаппаратом с пульта. Хочу отказаться от сервы которая нажимает на кнопку затвора и поставить инфракрасный диод(?)
Напрямую к ардуинко я так понимаю диод не подключишь… тогда что за блочёк нужен, какая схема? Что за сигнал нужно подавать с ардуино? Ну и может что-то ещё не знаю… Буду очень благодарен за помощь. Спасибо.
avatar

conysSM

  • 30 марта 2011, 11:17
0
Прошу прощение, что очень долго не отвечал, я думал что мой топик ни кто не читает ну и сам перестал здесь появляться :)
Да все вопросы решил сам. Код переписал полностью по другому, была переделана серва под 180гр и ещё очень чего много.
«Боевые» испытания прошёл и уже во всю хожу снимаю :)
kitevlad.ucoz.ru/forum/29-157-1
kitevlad.ucoz.ru/forum/29-158-2932-16-1300896505
kitevlad.ucoz.ru/forum/29-152-1

Сейчас новый вопрос возник, а задавать здесь уже боюсь… похоже здесь на вопросы отвечать не любят :)
avatar

conysSM

  • 30 марта 2011, 06:56
0
Вот что получилось у меня :) kitevlad.ucoz.ru/forum/14-43-2603-16-1298625439
avatar

conysSM

  • 25 февраля 2011, 12:35
0
Отвечать не надо уже нашёл. С левой стороны кнопка «виртуальные инструменты», нажав на неё появиться список меню, в нём и есть «виртуальный терминал».
avatar

conysSM

  • 2 февраля 2011, 08:30