INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Slider Steuerung, Programmierung
04.10.2016, 19:28
Beitrag #9
RE: Slider Steuerung, Programmierung
Danke, war auch ein hartes Stück Arbeit und viiiiel probieren und Testen und einige Schlaflose Nächte...
Aber warum nimmst du nen Externen Timer wenn Du doch alles mit dem Arduino machen kannst?
Ein Optokoppler ein Widerstand und einen passenden Stecker für Deine Kamera, welche hast Du?, und 1-2Meter Kabel.
Ja klar kannst Du mit setSpeed80 mehr Bilder machen aber du solltest ja die Bilder/Sliderlänge machen.
Angenommen Dein Slider ist 70cm lang und Du möchtest 1200 Bilder machen und für ein anderes Timelapse brauchst du nur 900 Fotos,dann kannst Du den Motor immer mit der Selben Geschwindigkeit betreiben aber mit Unterschiedlich vielen Stepps.
70cm~700mm/1200 = 0,58 mm muss der Schlitten zwischen jedem Bild fahren
und beim 2. Video währen es dann 700/900 = 0,7mm, und das immer mit der selben Speed nur mit unterschiedliche vielen Schritten.
Ich habe ja einen 27:1 Getriebe Motor(hoffe hab das jetzt Richtig herum geschrieben) und darauf ein Zahnrad mit 60Zähnen, ich kann meine 90cm in 10Min bei einem Intervall von 1Sec abfahren.
Und warum möchtest Du bei unter 3Sec Intervall den Motor im Dauerbetrieb fahren lassen?Meine Intervalle bewegen sich meist Zwischen 1-3Sec höchstens mal 5.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.10.2016, 22:29
Beitrag #10
RE: Slider Steuerung, Programmierung
Warum ich einen Externen Timer nehme kann ich dir sagen…
Da ich z.Zt. nicht mal in der Lage bin über ein Menü einen Motor zu Starten und zu Stoppen oder die Laufrichtung anzugeben.
Und dann sind da ja noch, die wie ich finde, schwierigeren Sachen wie Kamera Einstellungen, das Auslösen, das Intervall, die Berechnungen und und und…

Hinzu kommt das Elektrik/Elektronik und ich nicht die größten Freunde sind. Das Thema mit dem Optokoppler kenne ich auch aber ich wüsste nicht wie und wo ich Optokoppler und Widerstand am Arduino anschließen sollte. Durch Motor Shield und LCD Keypad Shield scheinen alle PINs belegt zu sein bzw. sind verbaut sprich man kommt da nicht dran. Und wo kommen die drei Kabel für ground, focus und shutter am Optokoppler hin? Wenn ich da etwas falsch zusammendrahte hätte ich immer schiss das irgendetwas abraucht. Die Kamera, ist übrigens eine Canon eos 70D, dürfte ja nicht kaputtgehen, da durch den Optokoppler die zwei Stromkreise getrennt sind.

Den Dauerbetrieb <3 Sekunden deshalb, weil ich denke, dass es schwierig wird bei einem kleinen Intervall die zwei Systeme synchron laufen zu lassen.

Ich glaube ich muss das ganze nochmal überdenken, denn je mehr ich mich hier mit dir austausche, umso unsinniger erscheint mir meine Lösung. Das sind alles nur halbgare Kompromisse. Ich denke aber, das ich wie du, die ganz harte Schule wählen werde. Der Winter steht ja vor der Tür...

Kannst du mir verraten was für einen Schrittmotor du genau verbaut hast und kannst du damit auch vertikale Fahrten machen ohne das die Kamera am Ende der Aufnahmen von oben runterrutscht (Stichwort Haltekraft)?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 11:38
Beitrag #11
RE: Slider Steuerung, Programmierung
Ok.....
An der Kamera macht der Arduino nicht's ausser auslösen!
Einstellungen musst du selbst vorher vornehmen, auch den Fokus und ihn dann Manuell stellen. Bei Canon hast du Glück, hab selbst die 70D, da brauchst du nur masse und Auslöser an den Optokoppler anschließen. Wie das geht ist auch recht einfach, ich schau mal ob ich heute Abend zuhause ein passendes Bild/link finde.
Dann muss ich wegen dem Motor schauen, ist ein nema 17 mit 0,4A und einem 27:1Getriebe, schau aber noch den genauen Link dann.
Ja der hält die Kamera auch oben aber nur solange er Strom hat!!! Darum fährt der Motor beim ersten Arduino Start auch kurz an das er den halte Strom bekommt.
Wegen der synchronität meine ich ja Kamera und Motor vom Arduino steuern lassen.
Ich Tu mein Sketch heut Abend mal hier rein dann kannst es ja mal testen, musst halt eventuell die PIN Belegung anpassen.
Motor Treiber hab ich ne normale Doppelte H-Brücke mit 4Eingang pins. Kenn deine jetzt nicht daher kein Plan wie da die pins belegt sind.
Wenn Display und Motor shield versorgt sind reicht für die Kamera 1pin zum auslösen mehr brauchst eigentlich nicht.
Weiß nicht ob du meinen Threat hier bei den Projekten gesehen hast, da ist ein Video dabei wo meine Steuerung genauer zu sehen ist.
Die 2gelben LED waren früher für den DC Motor für jede Richtung 1LED. Hab den SchrittMotor aber änderst abklemmen müssen daher sind die eigentlich überflüssig aber dachte nehme sie zum Richtungs anzeigen. Die rote LED ist zum auslösen, von der LED geht ein kabel zum optokoppler der dann die Kamera auslösen tut. Und die Grüne ist wenn das Programm fertig ist.
Die 2taster sind stillgelegten, bin nur zu faul zum raus löten.
Also eigentlich nur 1wichtiger PIN nötig.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 15:11
Beitrag #12
RE: Slider Steuerung, Programmierung
Hallo,
ich greife jetzt nur mal den Bereich Kameraauslösung auf.

Vorschlag:
Auf dieser Seite im Abschnitt "b) N3-Anschluss:" siehst du die Anschlussbelegung der Kamera welche auch für die 70D gelten sollte.
Einen Kabelauslöser gibt es mit passendem Stecker und Kabel für wenig Kohle in der Bucht.
Die Kontakte für "Fokus" und "Auslösen" die in der Zeichnung auf der "Traumflieger Seite" dargestellt sind kannst du jeweils durch einen Optokoppler SFH615 ersetzen. Als Strom durch die Sendediode des Optokopplers reicht 10mA und das kann der Arduino locker direkt ohne zusätzlichen Treiber.
Diese Schaltung funktioniert bei mir an einer ollen 20D einwandfrei.

Ich weiß nicht genau wie sich die 70D verhält.
Meine 20D geht jedenfalls nach einer gewissen Zeit in einen Ruhemodus.
Wenn man eine Auslösung versucht während sie im Ruhemodus ist, dauert es relativ lange bis die Kamera wirklich auslöst. Bei mir hat es geholfen erst mal zu Aufwecken das Signal "Fokus" zu senden und dann mit 10ms Verzögerung das Signal "Auslösen". So kommt meine 20D viel schneller aus dem Ruhemodus heraus und löst dann auch sofort aus.
Möglicherweise ist das bei der 70D mit dem Ruhemodus und dem wach werden auch noch so. Um das wach werden zu beschleunigen also erst mal "Fokus" senden.
Das Signal "Fokus" bleibt auch anstehen bis das Signal "Auslösen" weg geht.
Also "Fokus" einschalten, 10ms warten, "Auslösen" einschalten, 10ms warten, beides ausschalten. Ob 10ms reichen musst du ausprobieren.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 17:22
Beitrag #13
RE: Slider Steuerung, Programmierung
Also bei Canon muss kein Fokus Signal vor der eigentlichen Auslösung gesendet werden, bei Nikon schon- bei anderen Modellen weis ich nicht.
Ich habe nur Auslöser und Masse das reicht. Meine Kamera schaltet sich nach 30Sec oder 1Min selber aus, ich weis gerade nicht genau was eingestellt ist, aber da ja normalerweise Timelapse weit unter 30Sec Intervallen Aufgenommen werden geht sie auch nie aus;-) und wenn doch muss man halt an der Kamera die Ausschaltzeit ändern, finde ich ist die einfachste Lösung. Da man beim Timelapse den Fokus eh Manuell einstellt muss die Kamera ja auch kein Signal dafür bekommen, kann man sich etwas sparen.
Die Pinbelegung von der Traumflieger Seite stimmt auch. Solltest Du einen "leeren" Stecker kaufen um die Kabel selbst anzulöten musst Du beachten das Canon keinen 3,5mm Klinke hat sondern nur 2,5mm also fällt ein 0815 Stecker von einem alten Kopfhörer schon mal weg.

Ich hoffe das Bild geht, habe es gegoogelt geht das ok?
[Bild: slide_13.jpg]

Hier siehst Du wie der Optokoppler Angeschlossen wird, allerdings ist die PIN Belegung Links am Schaltbild Falsch, so wie ich mich erinnere!
Pin 1 und 2 Stimmen, an Pin 1 Kommt vom Arduino das Steuersignal, mit Vorwiderstand, und Pin 2 geht am Arduino auf Masse.
Pin 3 und 4 müsste, wenn Du so einen wie Rechts auf dem Bild nimmst 7 und 8 sein. An Pin 7 Kommt das Kabel vom Auslöser hin und an Pin 8 das Masse vom Auslöser/Kamera.
Wenn dann der Arduino den Optokoppler Ansteuert Schaltet dieser Pin 7 und 8 und die Kamera Löst aus. Die Kamera löst ja im Prinzip durch einen "Kurzschluss" aus und nicht durch irgend einen Strom.
Möchtest Du den Fokus doch anschließen einfach mit Pin 3/4 an den Arduino und 5/6 an die Kamera.

Diesen Motor habe ich verwendet und dazu ein Zahnrad mit 60 Zähnen und das ganze dann per Zahnriemen angetrieben.
Mein Stepper Motor
Zahnrad
Zahnriemen

Und hier jetzt mein Sketch, ich hoffe habe ihn gut Kommentiert.
Hier und da musst vielleicht deine Pinbelegung anpassen!!!

Nicht wundern über LED4 = 10... Pin 10 wird eigentlich vom LCD Shield benutzt für die Display Beleuchtung, ich habe sie unten im Sketch per PWM geregelt das das Display während der Aufnahme etwas Dunkler wird. Pin 10 ist also eigentlich Belegt auch wenn er nicht bei "LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Auswahl der LCD Kontakte" auftaucht.
Auch über eventuell mehrmals auftauchende oder auskommentierte "unsigned long c = millis();" oder "unsigned long d = millis();" nicht wundern die sind für den Timer an dem ich gerade noch Experimentiere und das ich das nicht jedes mal neu schreiben muss wenn ich den Befehl an eine andere stelle mache tue ich ihn Kommentieren das er nicht beachtet wird.

Ich hoffe das Hilft Dir ein wenig weiter.
Und für den Fall das ein Profi hier einen Fehler findet, oder die Lösung zu meinem Timer Problem, siehe
https://www.arduinoforum.de/arduino-Thre...imer--5525
möge er sich doch bitte Melden ;-)

Code:
#include <Arduino.h>
#include <LiquidCrystal.h>
#include <sainsmartkeypad.h>
#include <Stepper.h>


SainsmartKeypad keypad(0);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);    // Auswahl der LCD Kontakte
uint8_t key;

#define STEPS 200                       // Schrittweite vom Motor 1,8° * 200 = 360
Stepper stepper(STEPS, 19, 18, 17, 16); // Pins für die Stepper Motoren PIN A B C D

byte Menu = 2;        // Menü Startet bei Menüpunkt 3
// Werte und Zähler
int Slider = 90;      // Slider Strecke in cm
int wertS = 5;        // Wert für Slider strecke in cm
float Intervall = 1.0;// Zähler Intervall in Sec
float wertI = .5;     // Wert für Intervall in Sec
float Verschluss = 0.25; //Zähler für Verschlusszeit
float wertV = .25;    // Wert für Verschlusszeit
int Dauer = 10;       // Zähler Dauer in Min
int wertD = 5;        // Wert für Dauer in Min
int Motor = 0;
int Ease = 0;
int wertJ = 1;
int wertN = 2;
int i = 0 ;
int X = 0 ;
int pause = 0;
// Pins
int wertL = (-200);   // Motor Richtung L<-
int wertR = (200);    // Motor Richtung R->
int ledL = 11;        // LED Gelb Motor Links
int ledR = 3;         // LED Gelb Motor Rechts
int ledA = 12 ;       // LED Rot Auslöser
int ledF = 13;        // LED Grün Fertig mit Summer
int led4 = 10;        // Display Dimmen
int led = 0;

void setup() {

  pinMode(ledA, OUTPUT);
  pinMode(ledF, OUTPUT);
  pinMode(ledL, OUTPUT);
  pinMode(ledR, OUTPUT);

  byte downpfeil[8] = {B00000, B10001, B11011, B01010, B01110, B00100, B00100, B00000};
  lcd.createChar (1, downpfeil); // Erstellt ein nach unten gerichtetes Pfeildreieck
  stepper.setSpeed(200);

  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("SELBST TEST");
  lcd.setCursor(0, 2);
  lcd.print("VERSION 1.0");
  digitalWrite (ledL, HIGH);
  digitalWrite (ledR, HIGH);
  digitalWrite (ledA, HIGH);
  digitalWrite (ledF, HIGH);
  delay (500);
  digitalWrite (ledL, LOW);
  digitalWrite (ledR, LOW);
  digitalWrite (ledA, LOW);
  digitalWrite (ledF, LOW);
  delay (250);
  digitalWrite (ledL, HIGH);
  stepper.step(-200);
  delay (500);
  digitalWrite (ledL, LOW);
  digitalWrite (ledR, HIGH);
  stepper.step(200);
  delay (500);
  digitalWrite (ledR, LOW);

  lcd.clear();
  lcd.setCursor(0, 0); // Cursor position 1. Feld 1. Zeile
  lcd.print("Slidersteuerung");
  lcd.setCursor(2, 1); // Cursor position 3. Feld 2. Zeile
  lcd.write(1); // zeigt das erstellte Pfeildreieck an
  lcd.print(" Uwe1475 ");
  lcd.write(1); // zeigt das erstellte Pfeildreieck an

}
void loop() {

  int Bilder = (60 / Intervall * Dauer) ;                       // Bilder menge ausrechnen
  float Vorschub = ((Slider * 10) / (60 / Intervall * Dauer)); // Slide pro Bild, Sliderlänge 10 - 90 CM
  stepper.setSpeed(200);
  float steps = ((Motor / 4.5) * Vorschub);                     // Nötige Schritte anhand vom Vorschub errechnen

  if (Motor == wertL) {
    led = ledL;
  }
  if (Motor == wertR) {
    led = ledR;
  }

  if ( Ease == wertJ) {
    Vorschub = ((Slider * 10) / (60 / Intervall * Dauer - 180));
  }


  key = keypad.getKey_fastscroll();                             // Anzeige wird nur nach einer Tastenbetätigung aktualisiert
  if (key != SAMPLE_WAIT) {
    switch (key)
    {
      case UP_KEY:
        Menu--;
        if (Menu < 1) Menu = 1;
        lcd.clear();
        break;
      case DOWN_KEY:
        Menu++;
        if (Menu > 9) Menu = 9;
        lcd.clear();
        break;
    }
    switch (Menu) {
      case 1:
        lcd.setCursor(0, 0);
        lcd.print("Manuell Schnell");
        lcd.setCursor(0, 1);
        lcd.print("<<<<<<L  R>>>>>>");
        if (key == LEFT_KEY) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Manuell Schnell");
          lcd.setCursor(0, 1);
          lcd.print("<<<<<<L");
          digitalWrite (ledL, HIGH);
          stepper.step(-1400);
          digitalWrite (ledL, LOW);
        }
        if (key == RIGHT_KEY) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Manuell Schnell");
          lcd.setCursor(0, 1);
          lcd.print("         R>>>>>>");
          digitalWrite (ledR, HIGH);
          stepper.step(1400);
          digitalWrite (ledR, LOW);
        }
        break;

      case 2:

        lcd.setCursor(0, 0);
        lcd.print("Manuell Langsam");
        lcd.setCursor(0, 1);
        lcd.print("   <<<L  R>>>");

        if (key == LEFT_KEY) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Manuell Langsam");
          lcd.setCursor(0, 1);
          lcd.print("   <<<L");
          digitalWrite (ledL, HIGH);
          stepper.step(-200);
          digitalWrite (ledL, LOW);
        }
        if (key == RIGHT_KEY) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Manuell Langsam");
          lcd.setCursor(0, 1);
          lcd.print("         R>>>");
          digitalWrite (ledR, HIGH);
          stepper.step(200);
          digitalWrite (ledR, LOW);
        }
        break;

      case 3:
        lcd.setCursor(0, 0);
        lcd.print("Sliderlaenge");
        lcd.setCursor(10, 1);
        lcd.print("cm");

        if (key == LEFT_KEY) {
          Slider = Slider - wertS;
        }
        if (key == RIGHT_KEY) {
          Slider = Slider + wertS;
        }
        if (Slider < 10) {
          Slider = 10; // Slider kann nicht unter 10 cm eingestellt werden
        }
        if (Slider > 90) {
          Slider = 90; // Slider kann nicht über 90 cm eingestellt werden
        }
        else {
          lcd.setCursor(7, 1);
          lcd.print(Slider);
        }
        if (Slider > 10) {
          lcd.setCursor (7, 1);
          lcd.print (Slider);
        }
        if (Slider < 10) {
          lcd.setCursor (8, 1);
          lcd.print(Slider);
          lcd.setCursor(7, 1);
          lcd.print(" ");
        }
        break;

      case 4:                   //Slider Richtung festlegen
        lcd.setCursor(0, 0);
        lcd.print("Slider Richtung");
        lcd.setCursor(0, 1);
        if (Motor == 0) lcd.print("<<<<<<L  R>>>>>>");
        if (Motor == wertL) lcd.print("<<<<<<L         ");
        if (Motor == wertR) lcd.print("         R>>>>>>");

        if (key == LEFT_KEY) {
          Motor = wertL;
          digitalWrite (ledL, HIGH);
          digitalWrite (ledR, LOW);
        }
        if (key == RIGHT_KEY) {
          Motor = wertR;
          digitalWrite (ledR, HIGH);
          digitalWrite (ledL, LOW);
        }
        break;

      case 5:
        lcd.setCursor(0, 0);
        lcd.print("Ease In/Out");
        lcd.setCursor(0, 1);
        if (Ease == 0)     lcd.print("     JA/NEIN    ");
        if (Ease == wertJ) lcd.print("     JA         ");
        if (Ease == wertN) lcd.print("        NEIN    ");

        if (key == LEFT_KEY) {
          Ease = wertJ;
        }
        if ( key == RIGHT_KEY) {
          Ease = wertN;
        }
        break;

      case 6:
        lcd.setCursor(0, 0);
        lcd.print("Dauer");
        lcd.setCursor(10, 1);
        lcd.print("Min");

        if (key == LEFT_KEY) {
          Dauer = Dauer - wertD;
        }
        if (key == RIGHT_KEY) {
          Dauer = Dauer + wertD;
        }
        if (Dauer < 10) {
          Dauer = 10; // Dauer kann nicht unter 10 Min eingestellt werden
        }
        else {
          lcd.setCursor(7, 1);
          lcd.print(Dauer);
        }
        if (Dauer > 95) {
          lcd.setCursor (6, 1);
          lcd.print (Dauer);
          lcd.setCursor(9, 1);
          lcd.print(" ");
        }
        if (Dauer < 100) {
          lcd.setCursor (6, 1);
          lcd.print(" ");
        }
        break;

      case 7:
        lcd.setCursor(0, 0);
        lcd.print("Intervallzeit");
        lcd.setCursor(10 , 1);
        lcd.print("Sec");

        if (key == LEFT_KEY) {
          Intervall = Intervall - wertI;
        }
        if (key == RIGHT_KEY) {
          Intervall = Intervall + wertI;
        }
        if (Intervall < 1) {
          Intervall = 1; // Intervall kann nicht unter 1 S eingestellt werden
        }
        else {
          lcd.setCursor(6, 1);
          lcd.print(Intervall , 1);
        }
        if (Intervall > 9.5) {
          lcd.setCursor (5, 1);
          lcd.print (Intervall , 1);
          lcd.setCursor(9, 1);
          lcd.print(" ");
        }
        if (Intervall < 10) {
          lcd.setCursor (5, 1);
          lcd.print(" ");
        }
        break;

      case 8:
        lcd.setCursor(0, 0);
        lcd.print("Verschlusszeit");
        lcd.setCursor(10 , 1);
        lcd.print("Sec");

        if (key == LEFT_KEY) {
          Verschluss = Verschluss - wertV;
        }
        if (key == RIGHT_KEY) {
          Verschluss = Verschluss + wertV;
        }
        if (Verschluss < 0.25) {
          Verschluss = 0.25; // Verschlusszeit kann nicht unter 0,25 S eingestellt werden
        }
        if (Verschluss > 30) {
          Verschluss = 30; // Verschlusszeit kann nicht über 30 sec eingestellt werden
        }
        else {
          lcd.setCursor(6, 1);
          lcd.print(Verschluss);
        }
        if (Verschluss > 9.75) {
          lcd.setCursor (5, 1);
          lcd.print (Verschluss);
          lcd.setCursor(10, 1);
          lcd.print("S");
        }
        if (Verschluss < 10) {
          lcd.setCursor (5, 1);
          lcd.print(" ");
        }
        break;

      case 9:                   // Von den gewählten Einstellungen wird der Vorschub,die Anzahl der Bilder und die Clip Länge bei 30/fps Angezeigt
        lcd.setCursor(0, 0);
        if (Intervall <= Verschluss) lcd.print("     KEINE      ");
        lcd.print("B ");
        if (Bilder < 1000) lcd.print("0");
        if (Bilder <  100) lcd.print("0");
        if (Bilder <   10) lcd.print("0");
        lcd.print(Bilder);                 // Anzahl der Bilder
        lcd.print(" C ");
        if ((Bilder / 30) < 10) lcd.print("0");
        lcd.print(Bilder / 30);     // Cliplänge in Sec bei 30FPS
        lcd.print(" s");
        lcd.setCursor(0, 1);
        if (Intervall <= Verschluss) lcd.print("     PAUSE      ");
        break;
    }

    if (key == SELECT_KEY) {
      digitalWrite(led, LOW);
      analogWrite(led4, 32);
      lcd.clear();
      //for (i = 0; i < 5 ; i++) {          // Test-Schleife
      for (i = 0; i < Bilder ; i++) {       // Intervall-Schleife
        unsigned long c = millis();                                  // Startet Zeitmessung für Intervall
        lcd.setCursor(0, 0);
        lcd.print("Noch ");
        if ((Bilder) - (i + 1) < 1000) lcd.print("0");
        if ((Bilder) - (i + 1) <  100) lcd.print("0");
        if ((Bilder) - (i + 1) <   10) lcd.print("0");
        lcd.print((Bilder) - (i + 1));      // Restbilder von
        lcd.setCursor(10, 0);
        if ((Dauer - X) <  100) lcd.print("0");
        if ((Dauer - X) <   10) lcd.print("0");
        lcd.print( Dauer - X);
        lcd.setCursor (1, 1);
        lcd.print("von ");
        if (Bilder < 1000) lcd.print("0");
        if (Bilder <  100) lcd.print("0");
        if (Bilder <   10) lcd.print("0");
        lcd.print(Bilder);                  // Gesamtbilder
        lcd.setCursor(10, 1);
        if ((Dauer) <  100) lcd.print("0");
        if ((Dauer) <   10) lcd.print("0");
        lcd.print(Dauer);

        if (Ease == wertJ) {
          if ((Bilder) - (i + 1) > (Bilder - 90)) {
            steps = 0;
                      }
          if ((Bilder) - (i + 1) < (Bilder - 90)) {
            steps = ((Motor / 4.5) * Vorschub);
          }
          if ((Bilder) - (i + 1) < (Bilder - Bilder + 90)) {
            steps = 0;
          }
        }

        if (Ease == wertN) {
        }

        //unsigned long c = millis();                                  // Startet Zeitmessung für Intervall
        digitalWrite(ledA, HIGH);                                    // schaltet Kamera ein
        delay(150);                                                  // Auslösezeit der Kamera
        digitalWrite(ledA, LOW);                                     // schaltet Kamera aus
        delay(Verschluss * 1000);                                    // Max Verschlusszeit 30Sec
        if ((Bilder) - (i + 1) == 0) break;                          // Unterbricht Schleife bei 0 Bilder, da sonst Motor noch 1x Läuft
        digitalWrite(led, HIGH);                                     // Schaltet Motor Richtungs LED an
        unsigned long a = millis();                                  // Startet Zeitmessung wie lange der Motor läuft
        stepper.step(steps);                                         // Motor Lauf
        unsigned long b = millis();                                  // Beendet Zeitmessung wie lange der Motor läuft
        a = (b - a);                                                 // Berechnet die Motor Lauf Zeit
        digitalWrite(led, LOW);                                      // Schaltet Morot Richtungs LED ab
        delay((Intervall * 1000) - (Verschluss * 1000) - (150) - a); // Restlicher Intervall
        //unsigned long d = millis();                                // Beendet Zeitmessung für Intervall
        X = (c / 60000) ;                                           // Berechnet Zeit für Timer
      }


      analogWrite(led4, 255);
      digitalWrite(ledF, HIGH);     // END LED und SUMMER AN
      lcd.clear();                  // Sind alle Intervalle abgearbeitet wird Anzeige gelöscht
      lcd.setCursor(1, 0);          // und Programm Ende anzeigen
      lcd.print("Programm Ende");
      lcd.setCursor(4, 1);
      lcd.print("Uwe1475");
      delay(500);
      digitalWrite(ledF, LOW);
      delay(500);
      digitalWrite(ledF, HIGH);
      delay(500);
      digitalWrite(ledF, LOW);
      delay(500);
      digitalWrite(ledF, HIGH);
      delay(1000);
      digitalWrite(ledF, LOW);  // END LED und SUMMER AUS
      lcd.clear();              // dann wird wieder die Zeitdauer und Intervallzeit angezeigt
    }
  }
}

MfG
Uwe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 17:47
Beitrag #14
RE: Slider Steuerung, Programmierung
@Uwe1475

Grundsätzlich hast du recht, man muss das Fokus Signal nicht verwenden. Es geht auch ohne. Ich habe aber auch nicht gesagt dass man das Fokus Signal braucht.
Meine Erfahrung ist nur dass die Kamera schneller aus dem Schlafmodus heraus auslöst wenn man das Fokus Signal voraus schickt. Für die Timelapse Aufnahmen mag das aber auch irrelevant zu sein ob es 30ms oder 500ms dauert bis wirklich ausgelöst wird.
Wenn die Kamera bei Timelapse Aufnahmen aber nie in den "Schlafmodus" kommt ist das mit dem Fokus Signal kein Thema. Das Fokus Signal weckt die Kamera nur schneller auf. Es ist dabei unerheblich ob sie auf "AF" oder "MF" steht.

blueblack hat eine EOS xxD und keine EOS xxxD. Deshalb passt der 2,5mm Klinkerstecker dort nicht.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 17:54
Beitrag #15
RE: Slider Steuerung, Programmierung
(05.10.2016 17:47)ardu_arne schrieb:  @Uwe1475

Grundsätzlich hast du recht, man muss das Fokus Signal nicht verwenden. Es geht auch ohne. Ich habe aber auch nicht gesagt dass man das Fokus Signal braucht.
Meine Erfahrung ist nur dass die Kamera schneller aus dem Schlafmodus heraus auslöst wenn man das Fokus Signal voraus schickt. Für die Timelapse Aufnahmen mag das aber auch irrelevant zu sein ob es 30ms oder 500ms dauert bis wirklich ausgelöst wird.
Wenn die Kamera bei Timelapse Aufnahmen aber nie in den "Schlafmodus" kommt ist das mit dem Fokus Signal kein Thema. Das Fokus Signal weckt die Kamera nur schneller auf. Es ist dabei unerheblich ob sie auf "AF" oder "MF" steht.

blueblack hat eine EOS xxD und keine EOS xxxD. Deshalb passt der 2,5mm Klinkerstecker dort nicht.

Gruß
Arne

Stimmt hast Du nicht gesagt, wollte es nur noch mal erwähnen für den fall das noch andere das Interessiert.
Klar ist es da egal ob die Kamera schneller oder Langsamer aufgeweckt wird, aber normal kommt es gar nicht soweit das sie abschaltet.

Doch bei der XXD, XXXD, und XXXXD passt der Klinke nur bei den XD nicht.
Hatte mal eine 400D und hab den Kabelauslöser von der auch für meine 70D nehmen können.

MfG
Uwe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.10.2016, 19:21
Beitrag #16
RE: Slider Steuerung, Programmierung
(05.10.2016 17:54)Uwe1475 schrieb:  ...
Doch bei der XXD, XXXD, und XXXXD passt der Klinke nur bei den XD nicht.
...

Wobei es dann bei der xxD mindestens eine Ausnahme gibt.
Bei meiner Cam passt nur der N3-Stecker und kein Klinkenstecker. Smile

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Infrarot zu RS232 für Steuerung DG0JG 46 683 22.10.2016 11:35
Letzter Beitrag: hotsystems
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 117 14.10.2016 21:40
Letzter Beitrag: hotsystems
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 347 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Hilfe bei Servo-steuerung Innocence 7 802 23.02.2016 11:00
Letzter Beitrag: hotsystems
  Neuling PWM Programmierung Gerald_Z 6 2.484 21.02.2016 22:23
Letzter Beitrag: reiner_liebold
  Steuerung eines Remotekopfes mit Joystick, 2Stck DC Motore und Arduino max123 6 607 30.12.2015 14:56
Letzter Beitrag: max123
  Milight Openmili Steuerung gronph 22 3.417 23.12.2015 11:18
Letzter Beitrag: Phil333
  propleme beim programmieren einer steuerung für funksteckdosen purzele06 18 3.620 19.11.2015 11:06
Letzter Beitrag: Phil94
  Steuerung von mehreren Programmabläufen TimF 21 1.402 04.11.2015 23:28
Letzter Beitrag: hotsystems
  Programmierung für Projektarbeit (Spektrometer) ProVeN 4 1.262 02.11.2015 12:18
Letzter Beitrag: ProVeN

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste