Lichtschranke zur Abschaltung eines Motors

Bitte immer angeben:
calliope mini2.0
win10
open roberta

Schönen guten Tag ich hab bezüglich meines Projektes eine frage

Und zwar geht es darum ein SchiebeFenster mit einem 12volt hub motor öffnen und zu schließen.

für den Anschluss des motors am calliope benutze ich dieses relay

das relay wird gespeist mit 5v externer Stromversorgung relay is an den pins motor a und b angeschlossen und an den anschlussklemmen am relay liegen die 12v an.
Das Relay 1 wird angezogen über signal 1 für mit Befehl starte motor 100 relay zieht an motor läuft.
Bevor relay 2 schaltet muss signal 1 (motor stoppen,bremsen ) dann warte 1000ms schalte über signal 2 das relay 2 durch umpolung läuft der motor andersrum.

Die Stoppung der Motoren habe ich mit ganz einfachen Endschaltern gelöst wenn fenster zu Endschalter schaltet kontakt durch zu pin 1 mit einer led das man sieht Endschalter ist betätigt und stoppt den motor.

Das ganze funktioniert auch soweit gut soweit .

Meine eigentlich frage ist sobald ich sage mal die hand zwischen stecke läuft der motor ja trotzdem heisst quetsch Gefahr. gibt es für den calliope mini so eine art Lichtschranke am besten ein grove modul das ich verbauen kann das wenn der strahl unterbrochen motor stoppt und fährt in Sicherheitstellung auf

vielleicht könnt ihr mir helfen steh im moment ein wenig auf dem schlauch

Hey ist jetzt keine Lichtschranke aber der Groove Ultraschall-Sensor funktioniert am Calliope mini super :slight_smile:

Habe ihn bisher immer über Makecode genutzt aber im Open Roberta Lab sollte es auch einen passenden Block geben.

Den könntest du seitlich am Fensterrahmen anbringen und sobald die Entfernung kleiner der Fensterbreite ist stoppt der Motor :slight_smile:

hi robin Dankeschön das heisst wenn ich diesen Ultraschall sensor anschließe misst er mir ein Objekt das z.b wegen mir 1m entfernt ist und gibt mir den wert 100cm zurück das heisst wenn ich dem sage mit nem mathematischen operator gib wert Ultraschall dann wertet er 100cm aus und setze < 95cm stoppe motor A.

Wie oft misst der Ultraschall sensor die daten aus ? mein Programm läuft bsp über wiederhole unendlich oft mit wenn /mache/sonst wenn/mache /Sonst wenn mache usw…

Bin jetzt leider nicht zuhause sonst würde ich mal ein Abzug meines Programmes hier posten

genau so :slight_smile:
wenn (gemessene Distanz < 95 )
dann Motor Stoppen

Schau mal hier


Da findest du noch mehr technische Daten zum Sensor. Mit welcher Frequenz der ausgelesen werden kann weiß ich aus dem Kopf grade nicht. Lässt sich aber sicher googeln oder berechnen aber bestimmt mind. so alle 100ms :slight_smile:

wenn es eine kleinere Distanz (max. 30cm wäre ) ginge es auch mit so einem https://wiki.eprolabs.com/index.php?title=IR_Obstacle_Sensor für rund 1€ das wäre ähnlich einer Lichtschranke. (eig kannst du den auch auseinander nehmen und Sensor und IR LED gegenüber platzieren aber keine Ahnung wie genau das wird bei 100cm)

ahhhh super danke schön wird das mal mit dem sensor ausprobieren ansonsten mal das andere ich werde berichten . danke dir nochmals

Professionelll wird sowas über eine indirekte Strommessung des Motors über einen Widerstand gemacht (auch bei Autos)

Wie viel Strom nimmt der Motor maximal auf?

Du könntest in der Masse/Minusleitung der Relaisplatine zur Stromversorgung (Batterie/Akku/Netzteil) des Fensterhebermotors einen Widerstand von 0,47 Ohm (je nach Stromaufnahme des Motors auch kleiner oder größer) schalten und den Anschluß vom Widerstand/Relaisplatine über einen Widerstand von 1 KOhm mit einem Analag-Eingang vom Calliope verbinden. Dann noch eine Diode(1N4148) am Analogeingang nach GND vom Calliope (diese verhindert das bei blockiertem Motor die Spannung am Analogeingang zu hoch wird und den Calliope zerstört) Zusätlich musst du den Masse/Minus-Anschluß von der Stromquelle für den Motor noch mit dem Minus/GND vom Calliope verbinden.

Unter "Roboterkonfiguration musst du noch den Analog-Eingang festlegen.

3,3V entsprechen einem Wert von 1023, 1V einem Wert von etwa 310.

Bei 1A Motorstrom und einem 0,47 Ohm-Widerstand eine Spannung von 0,47 Volt am Widerstand entsprechend einem Wert von etwa 145. Je nach Motorstrom musst du den Widerstand anpassen

So kannst du den Motorstrom ermitteln und bei einem mechanischen Widerstand (Motorstrom steigt über einen vorgegebenen Wert) den Motor stoppen und revidieren.

Du brauchst aber auch einen gewissen Strom um den Fensterheber sicher schließen zu lassen. Bei Fensterhebersteuerungen wird das dadurch realisiert, das bei einem starken Stromanstieg (Endanschläge) der Motor nur gestoppt wird, bei einer geringen Stromüberschreitung der Motor stoppt und revidiert. Andere Möglichkeiten sind auch das Stopp bzw Revisionsverhalten innherhalb eines Zeitfensters unterscheidlich zu steueren, entwerder über vorgegebene Zeitwerte oder anhand von selbst ermittelten Werten aus Lernfahrten. Bedenke bei den Zeitkonstanten, das der Fensterheber je nach Außentemperatur (Viskosität des Schmierfetts, Eis/Schnee im Winter) unterschiedlich leicht und schnell fährt, ebenso bei unterschiedlichen Batteriespannungen. (Batteriespannung des Motors könnte man auch über einen Analogeingang erfassen und in die Zeitkonstanten einfließen lassen (Da brauchst du auch wieder einen Spannungsteiler aus Widerständen, der Calliope kann maximal 3,3V verarbeiten)

Viel Spaß beim Experimentieren!!!