• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs Juli 2025.
    Thema: "Unscharf"

    Nur noch bis zum 31.07.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

Bastelanleitung: Arduino-basierter Lichtschranken-Trigger

Liebe Tropfengemeinde,

habe die Platine dankend erhalten und die Bauteile sauber aufgelötet.
Da steckt aber das Problem nicht. Mein Problem bezieht sich auf das Arduino Nano.
Ich bekomme den Programmcode von Niggoh nicht drauf. Andere Testcodes lassen sich wiederum ohne Probleme aufspielen.
Die Fehler werden vom Arduinoprogramm folgendermaßen angegeben:

crazymachine.cpp:128:89: error: CMmenus.h: No such file or directory
crazymachine:123: error: variable or field 'menu_event_change' declared void
crazymachine:123: error: 'MenuChangeEvent' was not declared in this scope
crazymachine:124: error: variable or field 'menu_event_use' declared void
crazymachine:124: error: 'MenuUseEvent' was not declared in this scope
crazymachine:301: error: 'MenuBackend' does not name a type
crazymachine:302: error: 'MenuItem' does not name a type
crazymachine:303: error: 'MenuItem' does not name a type
crazymachine:304: error: 'MenuItem' does not name a type
crazymachine:305: error: 'MenuItem' does not name a type
crazymachine:307: error: 'MenuItem' does not name a type
crazymachine:308: error: 'MenuItem' does not name a type
crazymachine:309: error: 'MenuItem' does not name a type
crazymachine:310: error: 'MenuItem' does not name a type
crazymachine:311: error: 'MenuItem' does not name a type
crazymachine:312: error: 'MenuItem' does not name a type
crazymachine:314: error: 'MenuItem' does not name a type
crazymachine:315: error: 'MenuItem' does not name a type
crazymachine:316: error: 'MenuItem' does not name a type
crazymachine:317: error: 'MenuItem' does not name a type
crazymachine:318: error: 'MenuItem' does not name a type
crazymachine:319: error: 'MenuItem' does not name a type
crazymachine:320: error: 'MenuItem' does not name a type
crazymachine:321: error: 'MenuItem' does not name a type
crazymachine:322: error: 'MenuItem' does not name a type
crazymachine:323: error: 'MenuItem' does not name a type
crazymachine:324: error: 'MenuItem' does not name a type
crazymachine:325: error: 'MenuItem' does not name a type
crazymachine:327: error: 'MenuItem' does not name a type
crazymachine:328: error: 'MenuItem' does not name a type
crazymachine:329: error: 'MenuItem' does not name a type
crazymachine:330: error: 'MenuItem' does not name a type
crazymachine:331: error: 'MenuItem' does not name a type
crazymachine:332: error: 'MenuItem' does not name a type
crazymachine:333: error: 'MenuItem' does not name a type
crazymachine:334: error: 'MenuItem' does not name a type
crazymachine:336: error: 'MenuItem' does not name a type
crazymachine:337: error: 'MenuItem' does not name a type
crazymachine:338: error: 'MenuItem' does not name a type
crazymachine:339: error: 'MenuItem' does not name a type
crazymachine:341: error: 'MenuItem' does not name a type
crazymachine:342: error: 'MenuItem' does not name a type
crazymachine:343: error: 'MenuItem' does not name a type
crazymachine:344: error: 'MenuItem' does not name a type
crazymachine:345: error: 'MenuItem' does not name a type
crazymachine:346: error: 'MenuItem' does not name a type
crazymachine:347: error: 'MenuItem' does not name a type
crazymachine:348: error: 'MenuItem' does not name a type
crazymachine:349: error: 'MenuItem' does not name a type
crazymachine:351: error: 'MenuItem' does not name a type
crazymachine:352: error: 'MenuItem' does not name a type
crazymachine.cpp: In function 'void navigate_menus()':
control_functions:5: error: 'menu' was not declared in this scope
crazymachine.cpp: In function 'void create_menu()':
menu_functions:4: error: 'menu' was not declared in this scope
menu_functions:4: error: 'mi_drop' was not declared in this scope
menu_functions:5: error: 'mi_drop_single' was not declared in this scope
menu_functions:5: error: 'mi_drop_series' was not declared in this scope
menu_functions:5: error: 'mi_drop_cleaningmode' was not declared in this scope
menu_functions:6: error: 'mi_timelapse' was not declared in this scope
menu_functions:6: error: 'mi_timelapse_start' was not declared in this scope
menu_functions:6: error: 'mi_timelapse_picturecount' was not declared in this scope
menu_functions:6: error: 'mi_timelapse_triggerdelay' was not declared in this scope
menu_functions:6: error: 'mi_timelapse_triggertime' was not declared in this scope
menu_functions:6: error: 'mi_timelapse_test' was not declared in this scope
menu_functions:7: error: 'mi_device' was not declared in this scope
menu_functions:7: error: 'mi_device_count' was not declared in this scope
menu_functions:7: error: 'mi_device_id' was not declared in this scope
menu_functions:7: error: 'mi_device_type' was not declared in this scope
menu_functions:7: error: 'mi_device_break_cycle' was not declared in this scope
menu_functions:7: error: 'mi_device_delay' was not declared in this scope
menu_functions:7: error: 'mi_device_active1' was not declared in this scope
menu_functions:7: error: 'mi_device_inactive1' was not declared in this scope
menu_functions:7: error: 'mi_device_active2' was not declared in this scope
menu_functions:7: error: 'mi_device_inactive2' was not declared in this scope
menu_functions:7: error: 'mi_device_active3' was not declared in this scope
menu_functions:7: error: 'mi_device_copy_times' was not declared in this scope
menu_functions:8: error: 'mi_sensor' was not declared in this scope
menu_functions:8: error: 'mi_sensor_use_sensors' was not declared in this scope
menu_functions:8: error: 'mi_sensor_count' was not declared in this scope
menu_functions:8: error: 'mi_sensor_id' was not declared in this scope
menu_functions:8: error: 'mi_sensor_type' was not declared in this scope
menu_functions:8: error: 'mi_sensor_mode' was not declared in this scope
menu_functions:8: error: 'mi_sensor_threshold' was not declared in this scope
menu_functions:8: error: 'mi_sensor_calibrate' was not declared in this scope
menu_functions:9: error: 'mi_preset' was not declared in this scope
menu_functions:9: error: 'mi_preset_choose' was not declared in this scope
menu_functions:9: error: 'mi_preset_load' was not declared in this scope
menu_functions:9: error: 'mi_preset_save' was not declared in this scope
menu_functions:10: error: 'mi_settings' was not declared in this scope
menu_functions:10: error: 'mi_load_defaults' was not declared in this scope
menu_functions:10: error: 'mi_single_picture_timeout' was not declared in this scope
menu_functions:10: error: 'mi_pictures_in_series' was not declared in this scope
menu_functions:10: error: 'mi_picture_delay_in_series' was not declared in this scope
menu_functions:10: error: 'mi_use_ir_trigger' was not declared in this scope
menu_functions:10: error: 'mi_use_mirror_lockup' was not declared in this scope
menu_functions:10: error: 'mi_mirror_lockup_time' was not declared in this scope
menu_functions:11: error: 'mi_pcmode' was not declared in this scope
menu_functions:11: error: 'mi_pcmode_start' was not declared in this scope
crazymachine.cpp: At global scope:
menu_functions:19: error: variable or field 'menu_event_change' declared void
menu_functions:19: error: 'MenuChangeEvent' was not declared in this scope
menu_functions:26: error: variable or field 'menu_event_use' declared void
menu_functions:26: error: 'MenuUseEvent' was not declared in this scope


Wo liegt mein Fehler?

Vielen Lieben Dank für eure Hilfe!
 
Zuletzt bearbeitet:
Hallo,
danke an Legy, Ralf und Brunoson. Das teste ich diese Woche noch.
Wäre doch gelacht wenn WIR dieses Teil nicht zum laufen kriegen.

mfg Stefan
 
So meine Crazy Machine funktioniert :top:
Die Kamera löst aus und die 3 Mv lassen sich ansteuern. Nochmals vielen Dank an Ralf.
Ein Problem habe ich allerdings noch. Wenn das Programm Startet löst die kamera sofort aus. Habe schon die Verzögerung angepasst, aber etwas will da nicht. Hat jemand einen Tipp? Benutzte eine Canon 450.
 
So hab es geschafft :top:
Die 3 MV lassen sich ansteueren und mit den Zeiten verzögert auslösen. Mit der Kamera hatte ich allerdings noch das Problem, dass diese immer sofort auslöste beim Tastendruck. Am Schluss lag es an der Spiegelvorauslösung, diese war aktiv und verhinderte die Verzögerung der Kamera. Habe diese auch gleich im Programm auf nicht aktiv gesetzt und auch gleich die 8 Geräte im Programm ausgewählt, statt wie im Originalprogramm deren 5.

Jetzt muss ich noch die MV aufeinander abstimmen, dass die Tropfen sich auch treffen :rolleyes:
Wenn das Wetter so mitspielt :( werde ich schon bald die ersten Bilder machen.
 
Hallo Niggoh,

kann ich bitte auf Dein Angebot meine Crazymachine zu programmieren zurückkommen. Mit meinem Latein bin ich am Ende. Alles probiert. Auch das mit den Wiederständen. Immer das Gleiche: reset zeigt crazymachine 0.3c dann rennt er über eine paar Einstellparameter und bleibt bei PC Modus hängen.

ich weiß nicht mehr weiter.

Gruß Stefan
 
Hallo Stefan,

schaue mal bitte nach, wie die analogen Pins auf dem Arduino Nano beziffert sind: ausgehend vom USB Anschluss, A0 bis A7 oder A7 bis A0? Beim ersten würde nämlich die Zuordnung im Scetch nicht passen, es scheinen aber beide Nano-Versionen vorzukommen...

Gruß

Bruno
 
Kann man mit der enthaltenen Software auch den Fototransistor als Gewitterblitz-Trigger missbrauchen? Wenn ja, wo stellt man das ein? Ich habe schon die Bauteile für die Selbstbau-Version. Software ist auch schon auf dem Arduino und das Keypad Display läuft auch. Warte nur noch auf das Schraubshield und dann kanns ans Löten gehen.
Ich würde die Crazymaschine vorrangig als Timelaps und Sensor-Trigger missbrauchen wollen. Das tröpplen wäre bei mir nur 2.rangig;)
 
@ Stefan: Hast du den Code zum testen der Widerstände durchlaufen lassen? Stimmen die Werte.
Bei mir war es ähnlich, hatte einen kurzen, bzw. einen falschen Widerstand eingelötet (vieeeeel zu klein).

Gruß

(auch) Stefan
 
@Omek: Geht bestimmt, müsstest nur den Sensor entsprechend einstellen, könnte sogar ohne große Veränderungen in der Software funktionieren. Bei mir fehlt momentan leider die Zeit für die Bastelei, deswegen habe ich das selbst noch nicht ausprobieren können.
Ich würde zum Testen erstmal den ganz banalen Lichtschrankencode (evtl. mit Selbstkalibrierung) benutzen, musst nur die Kamera bei Überschreitung eines Schwellenwertes auslösen (also im Wesentlichen ein < und > austauschen).

@Stefan: Ja, das klingt wie andere Widerstände. Ralf hatte irgendwo hier im Thread mal ein kleines Testprogramm dafür gepostet, schau mal ein paar Seiten zurück, könnten aber mehr als 20 sein. Falls Du wider Erwarten nicht fündig wirst, melde Dich hier nochmal, dann schreibe ich Dir nochmal eins.
 
@ Stefanw 52

Das Problem hatte ich auch mit dem durchlauf bis PC Modus. Ich musste im Programm die Wiederstandswerte der Tasten ändern, wie ich dir schon vorher geschrieben habe und die analogen Pins vertauschen, siehe Zitat von Ralf.

"Vertausche mal im Programm A0 mit A7, A1 mit A6, A2 mit A5.... Bei manchen Nanos sin die analogen Pins verdreht"

So wie es aussieht gibt es verschiedene Arduinos.

Jetzt funktioniert alles.

Gruss Michi
 
So, heute sind nun meine letzten Bauteile für die Platine eingetroffen die ich natürlich gleich verlötete.
Ich habe den Verlauf verfolgt und mitbekommen, dass es verschiedene Nano-Versionen geben soll. Ich habe die die vom USB aus mit A0 anfängt.
Das heißt ich muss im Code was ändern.
"Vertausche mal im Programm A0 mit A7, A1 mit A6, A2 mit A5.... Bei manchen Nanos sin die analogen Pins verdreht"
Habe leider bisher noch nicht die Stelle gefunden.
Außerdem zeigt mir das Display trotz 5k Poti für den Kontrast nichts an. Hat jmd eine Idee an was es u.U liegen könnte.

Eine gute (erste Schul)woche
 
Um nochmal die Problematik mit den vertauschten Pins bei verschiedenen Arduino Nanos aufzugreifen.

Es gibt in der Tat (mindestens) zwei verschiedene Versionen vom Arduino Nano, je nach Hersteller. Diese unterscheiden sich u.a. in der Anordnung der Analog-Pins. Bei manchen ist A0 "oben" (siehe angehängtes Foto), bei manchen A7 (davon hab ich auch eins, ist aber momentan nicht auffindbar). Das führt natürlich zu Schwierigkeiten mit der Software, die nicht wissen kann, wo die Pins liegen und demnach den falschen Pin abfragt. Normalerweise sollte der Knopf-Pin A0 sein, wenn die Anschlüsse vertauscht sind, ist es aber stattdessen A7.

Um das Problem zu beheben, muss man einfach die Pinbelegungen der Software verändern. In der crazymachine.ino gibt es irgendwo in der unteren Hälfte einige Befehle, in denen u.a. die ganzen Pins festgelegt werden. Sofern man ein paar Brocken Englisch versteht, sollten die Variablennamen halbwegs logisch erscheinen, ich habe auch relativ umfangreich kommentiert.

Man muss die Reihenfolge der Pins in der Software umkehren, damit der richtige Pin auf der Platine angesprochen wird.
A0 wird zu A7
A1 wird zu A6
A2 wird zu A5
A3 wird zu A4
A4 wird zu A3
A5 wird zu A2
A6 wird zu A1
A7 wird zu A0

In der 0.4beta sehen die entsprechenden Programmzeilen im Original so aus:
Code:
/////////////////////////////////////////////////////////////
// Einige Dinge, die nur mit Bedacht verändert werden sollten
/////////////////////////////////////////////////////////////
#ifdef USE_NANO_PCB
  // Pins und einige andere Änderungen bei Benutzung von Ralfs Platine einstellen
  #define MAX_DEVICE_COUNT 8 // maximale Anzahl Geräte
  #define MAX_SENSOR_COUNT 2 // maximale Anzahl Sensoren
  LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  #define BUTTON_PIN A0
  const byte device_pin[MAX_DEVICE_COUNT] = {13, 12, A2, A3, A4, 3, 2, 11}; // Pins für Geräte
  const byte sensor_pin[MAX_SENSOR_COUNT] = {A6, A5}; // Pins für Sensoren
  // Knopf-Messwerte für crazyMachine Platine: // Rechts: 0 // Oben: 132 // Unten: 321 // Links: 488 // Select: 725 // keiner: 1023
  #define BUTTONVALUE_RIGHT 0
  #define BUTTONVALUE_UP 132
  #define BUTTONVALUE_DOWN 321
  #define BUTTONVALUE_LEFT 488
  #define BUTTONVALUE_SELECT 725
  #define BUTTONVALUE_NONE 1023
#else
  // Ansonsten alles wie in Version 0.2x einstellen (z.B. für Benutzung von DFRobot LCD Shield
  #define MAX_DEVICE_COUNT 8 // maximale Anzahl Geräte
  #define MAX_SENSOR_COUNT 4 // maximale Anzahl Sensoren  
  LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Pins für die LCD-Ansteuerung
  // Pin für die Knöpfe am LCD-Shield
  #define BUTTON_PIN A0 
  const byte device_pin[MAX_DEVICE_COUNT] = {13, 12, 11, 3, 2, 1, 0, A5}; // Pins für Geräte
  const byte sensor_pin[MAX_SENSOR_COUNT] = {A1, A2, A3, A4}; // Pins für Sensoren
  // Knopf-Messwerte für DFRobot LCD Shield: // Rechts: 0 // Oben: 142 // Unten: 328 // Links: 504 // Select: 741 // keiner: 1023
  #define BUTTONVALUE_RIGHT 0
  #define BUTTONVALUE_UP 142
  #define BUTTONVALUE_DOWN 328
  #define BUTTONVALUE_LEFT 504
  #define BUTTONVALUE_SELECT 741
  #define BUTTONVALUE_NONE 1023
#endif

Ich hoffe, das Problem damit hinreichend genau erklärt zu haben.

Die Anpassungen der Werte für die einzelnen Knöpfe (je nach verwendeten Widerständen) geht übrigens auch hier.
 
Zuletzt bearbeitet:
Hallo
Ich wollte mir auch bald eine Lichtschranke bauen.
Habe nur noch nicht die passenden Dioden.
Könnte man auch die aus einem alten Sat Receiver + Fernbedienung verwenden?
 
Geht bestimmt, überfordert aber mein technisches Verständnis und spart auch nicht so übertrieben viel Geld, dass ich mir selbiges dafür anlesen würde. Wir reden hier von Teilen, die je nach Bezugsquelle zusammen etwa 70 Cent kosten...
 
stimmt schon nur ich bräuchte momentan nur die Dioden und Con.. möchte fast 8€ versand incl nachnahme ;)
Dann versuch ichs erstmal mit dem receiver
 
@ Stefan: Hast du den Code zum testen der Widerstände durchlaufen lassen? Stimmen die Werte.
Bei mir war es ähnlich, hatte einen kurzen, bzw. einen falschen Widerstand eingelötet (vieeeeel zu klein).

Gruß

(auch) Stefan

habs versucht da passiert garnichts, oder ich mache was falsch.



@ Stefanw 52

Das Problem hatte ich auch mit dem durchlauf bis PC Modus. Ich musste im Programm die Wiederstandswerte der Tasten ändern, wie ich dir schon vorher geschrieben habe und die analogen Pins vertauschen, siehe Zitat von Ralf.

"Vertausche mal im Programm A0 mit A7, A1 mit A6, A2 mit A5.... Bei manchen Nanos sin die analogen Pins verdreht"

So wie es aussieht gibt es verschiedene Arduinos.

Jetzt funktioniert alles.

Gruss Michi

auch das habe ich versucht. alles geändert. hochgeladen. Gleicher Effekt wie vorher. Dann habe ich nochmal alle Widerstände geprüft, auch hier habe ich keinen Fehler gefunden. WAs mich wundert ist dass das Testprogramm für die Widerstände bei mir nicht läuft. Kann es sein das ich bei der hochladerei was falsch mache. Wenn ich die Arduino exe aufmache lade ich automatisch einen Sketch_jun11a. Ist das vielleicht schon falsch.

ansonsten bin ich am Ende und habe keinen Plan mehr.

Danke für Eure Hilfe.

Gruß Stefan
 
Es geht, kommt jedoch auf den Empfänger an. Wenn dieser selbst demoduliert, dann musst du einen Träger senden. Kannst du einfach erzeugen (NAND oder z.B. NE555), jedoch würde ich aufgrund des großen Öffnungskegels zu einem sehr schwachen IR Laser mitsamt Phototransistor greifen. Der Sensor hat sowieso einen IR Sperrfilter, daher unkritisch, ich übernehme dennoch keinerlei Haftung.

Bei Fernbedienungssystemen hast du immer eine Modulation zur Störsicherheit. Daher brauchst du mindestens noch eine Taktquelle. Hast du so etwas da? Logik IC mit NAND/NOR oder etwas ala NE555, dazu Widerstand und Kondensator.

http://www.produktinfo.conrad.com/d...07-da-01-en-IR_Empfaenger_Modul_TSOP_4836.pdf


Es gibt Elektronikversender mit geringen Versandkosten (CSD Electronics, braucht aber aufgrund der Pfingstaktion recht lang zur Zeit) und viele weitere. Solche Teile kannst du auch bei eBay aus England oder China kaufen.
 
Zuletzt bearbeitet:
WERBUNG
Zurück
Oben Unten