Go Down

Topic: TV Halterung mit Arduinosteuerung (Read 260 times) previous topic - next topic

Bellaou

Mar 12, 2018, 08:50 pm Last Edit: Mar 12, 2018, 09:00 pm by Bellaou
Hallo zusammen,

gleich zum Anfang ich bin neu auf dem Gebiet. Habe mir aber schon einige Sachen erlesen, bzw. angeschaut.

Ich möchte gerne den Schrittmotor eine noch unbekannte Anzahl an Steps fahren lassen bis er gegen einen Endschalter fährt und stop. Wenn der Fernseher dann wieder verstaut werden soll soll über die Funkfernbedinung das Startsignal kommen, wonach der Motor wieder zum nächsten anschlag fährt.
Nun mein Problem, wie binde ich die Endschalter in die den Code ein und ich würde gerne das der Motor nicht mit einem Schlag anfährt und stop, sondern sanft gegen die endschalter fährt.

Nun zu den vorhandenen Bauteilen:

Nema 23 mit 3A
Arduino Nano
Motor Endstufe TB6560
Spannung 12V

Diese Schaltung funktioniert bislang ohne Probleme:

Code: [Select]
#include "Stepper.h"
#include "IRremote.h"

#define STEPS  400  
int  Steps2Take;
int receiver = 2;

Stepper small_stepper(STEPS, 4,5,6,7);
IRrecv irrecv(receiver);    
decode_results results;    
void setup()
{
  irrecv.enableIRIn();
}
void loop()
{
if (irrecv.decode(&results))
  {
    switch(results.value)
    {
case 33441975:
                      small_stepper.setSpeed(800);
                      Steps2Take  =  40000;  
                      small_stepper.step(Steps2Take);
                      delay(2000);
                      break;
      case 33446055:
                      small_stepper.setSpeed(800);
                      Steps2Take  =  -40000;  
                      small_stepper.step(Steps2Take);
                      delay(2000);
                      break;            
    }
irrecv.resume();
  }  
}

Danke für eure Hilfe

Tommy56

Setze Deinen Sketch bitte in Codetags (</> Button oben links im Forumseditor). Dann ist er für alle gut lesbar.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

uxomm

Ich möchte gerne den Schrittmotor eine noch unbekannte Anzahl an Steps fahren lassen bis er gegen einen Endschalter fährt und stop. Wenn der Fernseher dann wieder verstaut werden soll soll über die Funkfernbedinung das Startsignal kommen, wonach der Motor wieder zum nächsten anschlag fährt.
Nun mein Problem, wie binde ich die Endschalter in die den Code ein und ich würde gerne das der Motor nicht mit einem Schlag anfährt und stop, sondern sanft gegen die endschalter fährt.
Ich vermute, dass irgendwann die Anzahl bekannt sein wird (zumindest ungefähr).
Wenn es soweit ist, dann lass den Schrittmotor eine bestimmte Anzahl an Steps zu Beginn langsamer fahren und erst danach mit "normaler" Geschwindigkeit fahren. Wenn gewünscht auch mehrere Geschwindigkeiten.
Am Ende der Strecke die umgekehrte Methode. Du weißt wieviele Stepps die volle Strecke braucht. Vor erreichen des Endpunktes langsamer werden...

Und falls du das nicht selbst programmieren willst - es gibt eine Library, die das kann: AccelStepper
Always decouple electronic circuitry.

Bellaou

Hallo Uxomm,

das mit dem AccelStepper hatte ich schon gelesen, wusste aber nicht ob es noch eine andere Variante gibt.

MaHa76

ZUm sanften Anfahren und stoppen kannst du einfach eine Fading- Funktion schreiben.

MiReu

Ich hätte da mal eine Verständnisfrage,
warum braucht man Endschalter, wenn man die Anzahl der Schritte kennt?

Und eine Frage zur Umsetzung,
ist es Soft- und Hardware technisch nicht einfacher mit einem "einfachen" Motor und vier Schaltern (bzw. Tastern) zu arbeiten?
Die Hardware stelle ich mir dabei wie folgt vor, an den Enden sind jeweils echte Trenner montiert, so dass es unter keinen Umständen zum "überfahren" der Endpunkte kommen kann, egal wo/wie ein Fehler/Defekt auftritt. Zwei weitere Kontaktstellen benden/starten die Anlauf-/Bremsphase. Zusätzlich kommt in die Zuleitung zum Motor eine Strommessung, um ein festsitzen zu erkennen.

Es ist jetzt nicht so, dass ich ein konkretes Projekt diesbezüglich im Kopf oder gar in Arbeit hätte, es ist mir nur gerade beim Lesen der Gedanke durch den Kopf gegangen.
Sollte es zu diesen Gedanken schon Ausführungen geben, so dürft ihr mich gerne dort hin verweisen.
Solltet ihr der Meinung sein, dies lenke vom Thema ab, dann sagt es und ich lösche diesen Beitrag wieder.

Gruß

MiReu
Wer nix macht, macht nix falsch, lernt aber auch nix.

Go Up