OpenScan Community

Hier können alle Fragen zum Thema 3D Scannen ausführlich diskutiert werden!

Apr. 19

Fernauslösung über Optokoppler

10 Kommentare

Hallo Community,

 

ich habe mir das Platinenkit (inkl. Kleinteile) gekauft und den Rest wie Arduino, Driver,

Motoren usw. aus Asien bezogen und die Teile auf meinem Prusa gedruckt.

Habe den Scanner perfekt am laufen - soweit alles prima!

Allerdings schaffe ich es nicht, die empfohlenen Fernauslöser (Bluetooth bzw. Kabel FB)

über den Optokoppler auszulösen.

Habe auch bereits den Optokoppler durchgemessen und messe auf Primär Diodenseite 1V im Durchlass was okay zu sein scheint.

Messe ich allerdings am Arduino selber, dann bekomme ich über mein Oszi auf dem Pin 3 kein Signal gemessen. Auch nach dem Tausch des Arduino keine Besserung. Selbst wenn ich parallel zum Optokoppler eine LED einlöte (denke das die beiden Platinenbohrungen dafür gedacht waren :) ) sehe ich kein Signal! In der Software ist die Zuweisung des Pin 3 augenscheinlich in Ordnung und auch die Klassifizierung als OUTPUT sollte stimmen! Was hat es mit der Auswahl unterschiedlicher Kameramodelle auf sich? Was bedeutet es wenn der Ausgang auf DIRECT steht?

 

Vielen Dank für euren Support!!

 

Dirk

Ich habe auch das gleiche Problem. alles funktioniert außer dem Auslösen der Kamera. Ich habe die gleichen Tests des Optokopplers und der Ausgabe von Pin 3 des Nano durchgeführt und habe dieselben Ergebnisse. Daher bin ich bestrebt, eine Lösung zu finden.

 

meine appoligies Ich habe Google benutzt, um Englisch in Deutsch zu übersetzen. ich hoffe das ist lesbar.

 

Danke für Ihre Unterstützung

Tony

Eine Sache, die mir aufgefallen ist, dass die Anleitung anders war, war ein Nano-Arduino, das nur mit dem ATmega328P-Programm programmiert wurde und nicht mit dem alten Bootloader hochgeladen werden konnte. Ich frage mich, ob ich eine chinesische Version des Nano hätte verwenden sollen.

 

Jede Hilfe bei diesem Prolem wird sehr geschätzt

 

Tony

Hallo,

ich nutze einen sehr günstigen Arduino Nano aus Asien und muss in der IDE auf ‘alten Bootloader’ schalten. Damit funktioniert der Upload aber ohne Probleme.

Habe ein kleines Programm geschrieben um die Funktion der Hardware bzw. Optokopplers zu testen. Ausgangsseitig ist alles okay, daher scheint es mir das es einen Fehler in der Software gibt. Aus diesem Grund habe ich das Programm kurzerhand modifiziert indem ich bei der Routine die das Display kurz verdunkelt den Befehl ‘Ausgang HIGH’ eingefügt. Jetzt funktioniert die Auslösung wie erwartet. Da der Optokoppler aber eher schlecht mit externen Auslösern zu koppeln ist habe ich stattdessen ein Arduino Relay an den Ausgang gekoppelt was jetzt perfekt mit allen Arten von Auslösern funktioniert.

Hab zudem noch eben alle Texte ins Deutsche übersetzt. :)

 

Vielen Dank, ich werde es heute Abend versuchen. Ich hatte vermutet, dass es sich um ein Softwareproblem handelt.

Prost

Hallo, vielen Dank für Ihre bisherige Hilfe. Ich bin mir nicht sicher, wo Sie den Befehl 'Output HIGH' in die dim LCD-Routine einfügen sollen. Könnten Sie bitte eine Momentaufnahme der Stelle, an der Sie den Code bearbeitet haben, posten? Hier ist der Text der Quelle, an der ich denke, dass Sie meinen, aber ich bin unklar, welche Ausgabe im Setting vorliegt

 

 

void AUSLOESEN () {

#define address I2C

LiquidCrystal_I2C lcd(address, 2, 1, 0, 4, 5, 6, 7);

lcd.begin (20, 4);

lcd.setBacklightPin(3, POSITIVE);

lcd.setBacklight(HIGH);

lcd.home ();

 

 

lcd.clear();

lcd.setCursor(2, 1);

val2 = val2 + 1;

lcd.print("Photo ");

lcd.print(val2);

lcd.print(" of ");

lcd.print(totalphotos);

 

if(val4==1){

digitalWrite(photopin1, HIGH);

 

 

 

Vielen Dank für Ihre Zeit

Apr. 26Bearbeitet: Apr. 26

Hallo,

 

freue mich wenn ich helfen kann!

Anbei der Part Code mit entsprechender Modifikation:

 

void AUSLOESEN () {

#define address I2C

LiquidCrystal_I2C lcd(address, 2, 1, 0, 4, 5, 6, 7);

lcd.begin (20, 4);

lcd.setBacklightPin(3, POSITIVE);

lcd.setBacklight(HIGH);

digitalWrite(photopin1, HIGH); // Modification by Dirk Schreckenbach 24.09.2019

lcd.home ();

 

 

lcd.clear();

lcd.setCursor(2, 1); ...

 

Bitte zudem bei Verwendung eines Auslösers für das iPhone (Bluetooth) folgende Zeile beachten:

-> int releasetime = 300; // 1500ms for cam and 300 for iphone

 

Diese Zeile hält den Ausgang für 300 ms HIGH und gibt somit mehr Zeit für externe Geräte zum Auslösen.

Die Funktion im Programm welche die Pausen zwischen zwei Bildern steuert ist weiterhin aktiv!

 

Da mir der Optokoppler zu unflexibel war habe ich den kurzerhand gegen ein Arduino Relais ausgetauscht. Somit kann ich alle Arten von Auslösern (aktive und passive) verwenden ohne die

Spezifikation des Optokopplers zu beachten.

 

Ein Bild anbei:

 

 

Mit freundlichen Grüßen

Dirk Schreckenbach

 

 

Danke, das ist sehr hilfreich. Ich werde es versuchen, sobald ich von der Arbeit nach Hause komme

 

Prost

 

Tony

Vielen Dank Dirk, ich habe mit dieser Ausgabe zu kämpfen. Ich habe es mit Ihrem Code arbeiten lassen und ein Relais hinzugefügt, um meine Kamera auszulösen.

 

Ich habe die kleine Schaltung auf einer Platine mit Leiterplatte aus dieser Verbindung erstellt.

 

https://circuitdigest.com/microcontroller-projects/arduino-relay-control

 

Zum Glück habe ich die Teile in meiner Ersatzkiste.

 

Du bist ein Star.

 

Prost

 

Tony

Hey Tony,

 

it's a pleasure to help you!

I'm glad that it's working for you, too!

 

Please keep me updated regarding your first 3D scanning results!

 

Best regards,

Dirk

Hallo Dirk Hier ist ein Bild von meinem ersten fast erfolgreichen Scan. es ist ein etruskischer Helm. Das Original ist etwa 60 mm groß und war ein Andenken aus Rom.

 

 

 

 

Ich muss die Belichtung verfeinern und ermitteln, um die Brennweite in den Metadaten der Bilder zu speichern.

 

Insgesamt bin ich aber mit den bisherigen Ergebnissen sehr zufrieden

 

Ich möchte auch Ihre Scan-Ergebnisse sehen und wie sie für Sie arbeiten

 

Prost

Tony

Aktuelle Beiträge
  • Hi, ich habe die Vermutung, dass bei meiner selbst geätzten Platine etwas nicht stimmt. Gibt es irgendwo einen Schaltplan zu der Platine? Ich würde anhand derer gerne überprüfen, ob die Verbindungen auf der Platine allesamt passen. Könnte außerdem jemand mal seine gerber files hochladen? Dann könnte ich die mit denen, die bei mir aus fritzing rausgefallen sind, vergleichen. LG Yannik
  • Hallo, Die Platine, die Thomas anbietet, ist natürlich eine schöne(re) Lösung - aber ich hatte noch einen Uno mit CNC Shield v3 rumliegen, und dachte, ich probiere mal mein Glück. Hier sind die Einstellungen, falls das auch mal jemand sucht. Ich habe die Endstops als Buttons genutzt, und den Spindle Enable als Auslöser. X ist Table, Y ist Rotor. int buttonUP = 11; //pin for button up == Z LIM int buttonDOWN = 10; //pin for button == Y LIM int buttonOK = 9; //pin for button ok == X LIM int photopin1 = 12; //CameraPin == SPINDLE ENABLE int step1dirpin = 5; //Stepper1 direction pin == X Stepper int step2dirpin = 6; //Stepper2 direction pin == Y Stepper int step1steppin = 2; //Stepper1 step pin == X Stepper int step2steppin = 3; //Stepper2 step pin == Y Stepper step1startpin und step2startpin werden nirgendwo im Sketch verwendet, die habe ich entsprechend weggelassen. Eine Kleinigkeit muss man allerdings noch beachten: Beim CNC Shield v3 ist der Enable Pin (8) auf High gepullt, so dass die Motoren per default auf disabled stehen. (Danke an https://forum.arduino.cc/index.php?topic=611943.0 für den Hinweis). Daher einfach das hier am Anfang von setup() einfügen: const byte enablePin = 8; pinMode(enablePin, OUTPUT); digitalWrite(enablePin, LOW); Jetzt warte ich nur noch darauf, dass der Drucker fertig wird :) Grüße Marco

Newsletter

  • Grey Facebook Icon
  • Grey YouTube Icon
  • Grey Instagram Icon

© 2018 Copyright OpenScan.eu, Thomas Megel. Alle Rechte vorbehalten.

0