Samsung Remote here we come


Also erst mal herzlichen Dank dafür, daß ihr die Seite so fleißig beobachtet. Die Statistik hilft mir die Beiträge in kürzeren Abständen zu bringen. Also hier der aktuelle Stand meiner Samsung Fernbedienung.

Die Teileliste:

  • Arduino Pro Mini
  • 2 Taster
  • 5 LEDs (bei mir Orange)
  • 2 Optokoppler (ich hatte noch SFH611-2 rumliegen)
  • ein paar Widerstände
  • 2 Knopfzellenhalter
  • 1 Schalter
  • 1 Handgehäuse
  • Micro-USB Stecker

Hier die Prototyp-Verkabelung (Kompliment an Fritzing):

samsung-remote_Steckplatine

 

und hier noch der Sourcecode (Nicht optimiert und aus Beispielen zusammengebastelt aber ich bin ein wenig eingerostet in C):


/* LEDs auf Pins 12,11,10,9,8
Optokoppler auf 4 (shuter) und 5 (Fokus)
Taster auf 2 (Modus) und 3 (Auslöser)
Modus 0 nur Fernauslöser
Modus 1 fuer 0,5 Sek warten
Modus 2 fuer 1 Sek Warten
Modus 3 fuer 5 Sek Warten
Modus 4 fuer 20 Sek Warten
*/
const int selectPin = 2;    // the number of the pushbutton pin
const int shutterPin = 3;    // the number of the pushbutton pin
int modus=0;
long lastDebounceTime = 0;  // the last time the output pin was toggled
long debounceDelay = 50;    // the debounce time; increase if the output flickers
int pinArray[] = {12, 11, 10, 9, 8,4,5};
int count = 0;
int buttonState;             // the current reading from the input pin
int lastButtonState = HIGH;   // the previous reading from the input pin
int warten=500;
//
void setup() {
// put your setup code here, to run once:
pinMode(selectPin, INPUT);
for (count=0;count<7;count++) {
pinMode(pinArray[count], OUTPUT);
}
// set initial LED state
//
for (count=0;count<5;count++) {
if ( count == modus )
{
digitalWrite(pinArray[count], HIGH);
}
else
{
digitalWrite(pinArray[count], LOW);
}
}
modus++;
//
//Shuter
digitalWrite(pinArray[5],LOW);
digitalWrite(pinArray[6],LOW);
}
//
void shoot (int shootmode) {
//shootonce
if ( shootmode ==0)
{
digitalWrite(5,HIGH);
delay (50);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(50);
digitalWrite(5,LOW);
}
else
{
switch (shootmode) {
case 1:
warten=500;
break;
case 2:
warten=1000;
break;
case 3:
warten=5000;
break;
case 4:
warten=20000;
break;
}
while (true)
{
digitalWrite(5,HIGH);
delay (50);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(50);
digitalWrite(5,LOW);
delay(warten);
}
}
//debounce
delay (100);
}
void loop() {
// put your main code here, to run repeatedly:
int reading = digitalRead(selectPin);
int shutter = digitalRead(shutterPin);
if (reading != lastButtonState) {
// reset the debouncing timer
lastDebounceTime = millis();
}
//
if ((millis() - lastDebounceTime) > debounceDelay) {
// whatever the reading is at, it's been there for longer
// than the debounce delay, so take it as the actual current state:
// if the button state has changed:
if (reading != buttonState) {
buttonState = reading;
// only toggle the LED if the new button state is HIGH
if (buttonState == LOW) {
for (count=0;count<5;count++) {
if ( count == modus )
{
digitalWrite(pinArray[count], HIGH);
}
else
{
digitalWrite(pinArray[count], LOW);
}
}
modus++;
if (modus >4 ) {
modus =0;
}
}
}
}
lastButtonState = reading;
if (shutter = LOW)
{
shoot (modus);
}
}

Erklärung:

Es gibt 2 Taster und einen Einschalter. Der Einschalter ist klar. Die Taster haben entsprechende Funktionen: 1. Taster wählen des Modus, 2. Taster Auslöser. Leuchtet die 1.LED, wird nur scharf gestellt und die Kamera ausgelöst. Bei der allen anderen Modi geht der Arduino in eine Endlosschleife, die dann eben entsprechend des gewählten Modus alle 0,5 , 1, 5 oder 20 Sekunden auslöst. Die vier Verzögerungen kann man in der Case Anweisung einstellen.

Mir fallen beim durchschauen des Codes gleich ein paar Verbesserungen ein, aber im Moment ist es noch ein Prototyp.  Z.B. könnte man die LEDs auch nachdem man den Auslöser drückt ausmachen. Die fressen nicht nur die Batterie auf, sondern machen auch noch Luftverschmutzung, wenn man z.B. bei Nacht fotografiert.

Advertisements

Über arduphototobot

Ich wollte einfach nur meine Erlebnisse dokumentieren, die ich beim Aufbau eines Automatischen Photo-Robotes mit einem Arduino gehabt habe.
Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s