Как замкнуть 3 контакта

roma095
Offline
Зарегистрирован: 15.03.2015

Всем привет. У меня есть фотоаппарат никон. Чтобы сделать кадр с помощью шнурка автоспуска, надо замкнуть 3 контакта между собой. 

Я могу как то сделать это средствами ардуино, кроме как ставить реле на 5 вольт и закорачивать через 13 ножку?

 

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Во-первых, закорачивать можно не только через 13 ножку. Через любую.

Во-вторых, вопрос, ножки именно закорачиваются между собой ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

три провода скорее всего это 1-GND , 2-сигнал "фокусировка" , 3-сигнал "экспозиция" ( коротить все три - снимок будет без фокусировки, наверное замыкать 1-2 , через полсекунды 1-3
....из железа нужно - ардуина, два резистора, два транзистора

здесь поищите, чел делал проект таймера для съёмки каждые 10 сек ...... 5 мин в течении 1 ..... 10 часов, не помню как это называется :(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012
SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

просмотрите весь ролик, там есть схема - ардуина, резистор, оптопара

http://www.youtube.com/watch?v=rKcvwzKYLkA

// фото таймер для съемки таймлапсов 
// http://youtu.be/rKcvwzKYLkA

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

byte shotPin = 15; // пин на затвор камеры

byte key(){
 int val = analogRead(0);
  if (val < 50) return 5;
  else if (val < 150) return 3;
  else if (val < 350) return 4;
  else if (val < 500) return 2;
  else if (val < 800) return 1;
  else return 0;  
}
// --- конец функции кнопок

void startMenu(){
  byte menuPos = 1;
  char menuTxt[3][16] = {" Down to Set", "TimeLapse", "B timer"};
   do{                  
       lcd.clear();  // выводим инфу на экран
       lcd.setCursor(0, 0);
       lcd.print(menuPos);
       lcd.print(".");
       lcd.print(menuTxt[menuPos]); 
       lcd.setCursor(14, 0);
       lcd.print("<>");   
       lcd.setCursor(0, 1);
       lcd.print(menuTxt[0]);
    
       if (key() == 2) menuPos--; // если нажата назад
       else if (key() == 5) menuPos++;  // если нажата вперед  
       else if (key() == 4) { // если нажата вниз
             if (menuPos == 1) menuTimeLap();
             else if (menuPos == 2) menuB();
       }
       else if (key() == 1) analogWrite(10, 255);
       if (menuPos > 2) menuPos = 1; // проверка дабы не вылезти за меню
       if (menuPos < 1) menuPos = 2;
     delay(250);
   }while(1);
}
// --- 

void menuTimeLap() {
  float delayTime = 2600;
  float shot = 160;  
  do {
      lcd.clear();
      lcd.setCursor(0, 0); 
      lcd.print("Tm:");
      lcd.print(delayTime/1000);
      lcd.print("s|");
      lcd.print(((delayTime*shot)/1000)/60);
      lcd.print("min");
      lcd.setCursor(0, 1); 
      lcd.print("shot:");
      lcd.print(int(shot));
      lcd.print("|");
      lcd.print(shot/25);
      lcd.print("sec");      
      
    if (key() == 3) {// up 
      if (delayTime < 3500) delayTime += 100;
      else if (delayTime < 5000) delayTime += 250;
      else if (delayTime < 10000) delayTime += 500;
      else delayTime += 1000;
    } 
    else if (key() == 4) { // down  
      if (delayTime < 3500) delayTime -= 100;
      else if (delayTime < 5000) delayTime -= 250;
      else if(delayTime < 10000) delayTime -= 500;
      else delayTime -= 1000;
    } 
    else if (key() == 5) shot += 10;  // right 
    else if (key() == 2) shot -= 10; // left     
    else if (key() == 1) timeLap(delayTime, shot);
    
    if (delayTime < 1500) delayTime = 30000;
    if (delayTime > 30000) delayTime = 1500;
    if (shot < 120) shot = 1500;
    if (shot > 1500) shot = 120;
    delay(200);  
  } while(1);  
}
// 

void menuB(){ 
int BulbTimerMin = 3; // время по умолчанию
do{
    lcd.clear();
    lcd.print("BulbTimer");  
    lcd.print(" set");
    lcd.setCursor(2, 1);
    lcd.print("min:");
    lcd.print(BulbTimerMin);
      
     byte k = key();
       if (k == 3 || k == 2) BulbTimerMin--;// up         
       else if (k == 4 || k == 5) BulbTimerMin++;  // down  
       else if (k == 1)  Bulp(BulbTimerMin); // set   
       
      if (BulbTimerMin > 59) BulbTimerMin = 1; 
      if (BulbTimerMin < 1) BulbTimerMin = 59;
       
      lcd.setCursor(6, 1);
      lcd.print(BulbTimerMin);         

       delay(250);
    } while (1);
}
////////////////

void Bulp(int min1){
  digitalWrite(shotPin, HIGH); // включаем 
  
  unsigned long int previousMillis = 0;  
  int sek = 0;
  do  { 
   if (millis() - previousMillis > 1000) {   
     previousMillis = millis();   
     sek--;       
   if(sek == -1) {
     sek=59; 
     min1--; 
   }       

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("* Bulb Timer *");  
    lcd.setCursor(2, 1); 
    lcd.print(min1);
    lcd.setCursor(4, 1);
    lcd.print(":");
    lcd.print(sek);   
   }
   
  } while (sek != 0 || min1 != 0); 

 digitalWrite(shotPin, LOW); // выключаем
}
/////////////

void timeLap(unsigned int delayTime, int shot){
   unsigned long prMillis = 0;  
   float shotAll = shot; 
    
   do  {    
     if (millis() - prMillis > delayTime)  {  
       prMillis = millis();   
       shot--;
   
         lcd.clear();
         lcd.setCursor(0, 0);
         lcd.print("***TimeLapse***");
         lcd.setCursor(0, 1);  
         lcd.print(int(shotAll));
         lcd.print(" "); 
         lcd.print(shot);
         lcd.print(" ");   
         lcd.print(int(shot/shotAll*100)); // показываем проценты
         lcd.print("%"); 
   
   digitalWrite(shotPin, HIGH); // включаем 
   digitalWrite(13, HIGH);  
   delay(200);
   digitalWrite(shotPin, LOW); // выключаем 
   digitalWrite(13, LOW);  
  }       
 } while (shot != 0);
}

void setup() {
    lcd.begin(16, 2);  
    lcd.clear();
    pinMode(shotPin, OUTPUT);
    pinMode(13, OUTPUT);    
//    analogWrite(10, 50);
}

void loop() {
//timeLap(2000, 230);
  startMenu();
 
}

 

Kolchugin
Offline
Зарегистрирован: 15.12.2013

roma095 пишет:

Всем привет. У меня есть фотоаппарат никон. Чтобы сделать кадр с помощью шнурка автоспуска, надо замкнуть 3 контакта между собой. 

Я могу как то сделать это средствами ардуино, кроме как ставить реле на 5 вольт и закорачивать через 13 ножку?

Можете поставить пару оптронов (PC817), один на затвор, второй на фокусировку. 

Вот посмотрите ещё здесь: http://arduino.ru/projects/flash_controlled_by_Arduino

Только вместо вспышки по схеме, подключаете камеру (допустим затвор), добавляете второй оптрон и его 3 ножку соединяете вместе с 3 первого оптрона, 4 на фокусировку, а 1 на свободный пин ардуины. 

roma095
Offline
Зарегистрирован: 15.03.2015

Спасибо за ответы. Фокус мне не нужен, у меня ручная настройка. Просто закоротить на мгновение

 

roma095
Offline
Зарегистрирован: 15.03.2015

Yarik.Yar пишет:

Во-первых, закорачивать можно не только через 13 ножку. Через любую.

Во-вторых, вопрос, ножки именно закорачиваются между собой ?

Да, контакты на фотике именно закорачиваются.

 

roma095
Offline
Зарегистрирован: 15.03.2015

Получается мне нужно две оптопары PC817, которые я вешаю на 13,14 ногу + земля и при подачи напряжения на них у меня закоротятся контакты? (прошу извинить за нубство, никогда в руках оптопару не держал).

Или может вот это оптореле подойдет? http://lib.chipdip.ru/271/DOC000271063.pdf

Или может вот эта оптопара подойдет http://www.platan.ru/pdf/optoelectronica_158.pdf

Если подключить ее по схеме 1. Она как раз получается 3 контакта коротит.

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

PC817 - 18 р. , на других остальных цены - не знаю....
первая ссылка - надо две штуки PRAB31S или одна штука PRAC31S 
вторая ссылка - надо две штуки по схеме 5 или одна штука по схеме 6

схема 1 не "коротит" три провода....

что за сигналы по трём проводам ? 

.....которые я вешаю на 13,14 ногу....
ноги без проблем можно брать 2....9 , A0.....A5,
а вообще - любые :)

нумерация ног оптопары и сама оптопара - фуфельные !!! ( в эмуляторе нету PC817 )

roma095
Offline
Зарегистрирован: 15.03.2015

Там не сигналы. Просто при замыкании фотоаппарат делает кадр

SU-27-16, спасибо большое!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

1-2 коротим = кадр , а зачем ещё 1-3 ??????????
попробуй на фотике земля-1 и земля-2 раздельно....
одно должно быть - фокусировка , второе - кадр ( экспозиция )
если фокусировка ручная - то достаточно "коротить" ДВА провода , которые делают кадр , одним резистором и PC817 меньше :)-
...что делаешь-то ? зачем ардуина ? что программа будет делать ?

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Там не сигналы.
постоянный ноль , постоянное +5 V , быстрое или медленное изменение - это ВСЁ сигнал :)

Kolchugin
Offline
Зарегистрирован: 15.12.2013

SU-27-16.

По схеме. Сопротивление резистора на оптрон 1 ком, не много?  Обычно ставил 220-330 ом.
На некоторых фотокамерах (sony к примеру) нужно "коротить" фокусировку, даже если она и в ручном режиме, иначе затвор не сработает.
 

roma095
Offline
Зарегистрирован: 15.03.2015

У меня срабатывает только если сразу 3. А по скольку у меня ручной фокус, то мне только надо снять кадр

 

Kolchugin
Offline
Зарегистрирован: 15.12.2013

Как вариант соединить вместе фокус и затвор и использовать в схеме один оптрон с резистором. По идее должно работать, но я бы так делать не стал, поставил бы оптрон на фокус и на затвор (как по схеме SU-27-16)

Вот ваша схема, с правильной распиновкой PC817:

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Kolchugin пишет:

SU-27-16.

По схеме. Сопротивление резистора на оптрон 1 ком, не много?  Обычно ставил 220-330 ом.
На некоторых фотокамерах (sony к примеру) нужно "коротить" фокусировку, даже если она и в ручном режиме, иначе затвор не сработает.

...думаю что и 5 mA хватит

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Kolchugin пишет:

Как вариант соединить вместе фокус и затвор и использовать в схеме один оптрон с резистором. По идее должно работать, но я бы так делать не стал, поставил бы оптрон на фокус и на затвор (как по схеме SU-27-16)

....моя думает , что параллелить их физически - не правильно :(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Kolchugin пишет:

Как вариант соединить вместе фокус и затвор и использовать в схеме один оптрон с резистором. По идее должно работать, но я бы так делать не стал, поставил бы оптрон на фокус и на затвор (как по схеме SU-27-16)

Вот ваша схема, с правильной распиновкой PC817:

....и фотодиоды распосследовать через резистор поменьше - хватит одного пина ардуины

Kolchugin
Offline
Зарегистрирован: 15.12.2013

SU-27-16 пишет:

....моя думает , что параллелить их физически - не правильно :(

....и фотодиоды распосследовать через резистор поменьше - хватит одного пина ардуины

1. Вариант поставить между затвором и фокусом диод. Правда не понятно куда анод, а куда катод подключать :)

2. Это на случай если не будет их хватать, а так... 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Kolchugin  , ДВА диода ! жопками к проводкам фокус и затвор , носиками в общую точку которая на коллектор выходного фототранзистора оптопары :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Kolchugin
Offline
Зарегистрирован: 15.12.2013

SU-27-16 пишет:

Kolchugin  , ДВА диода ! жопками к проводкам фокус и затвор , носиками в общую точку которая на коллектор выходного фототранзистора оптопары :)

Действительно! Решение-то простое, моя не додумалась до этого :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Действительно! Решение-то простое, моя не додумалась до этого :)
...зато моей подсказал :)