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
Ansteuerung DC-Motor + Schrittmotor mit Lichtschranke und Taster
10.08.2019, 21:19
Beitrag #33
RE: Ansteuerung DC-Motor + Schrittmotor mit Lichtschranke und Taster
(10.08.2019 16:25)D1_ schrieb:  
Zitat:Und der LED an Pin13 fehlt der Vorwiderstand.
Stimmt natürlich aber habe dann einfach eine blaue LED genommen, die solche Spannungen eher verträgt.

Das kann ins Auge gehen.
Eine Led nimmt sich den Strom, den sie kriegen kann. Da ist der Vorwiderstand als Strombegrenzung sehr wichtig. Ohne den ist der Ausgangspin schnell mal defekt.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.08.2019, 21:28 (Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2019 21:29 von MicroBahner.)
Beitrag #34
RE: Ansteuerung DC-Motor + Schrittmotor mit Lichtschranke und Taster
(10.08.2019 18:13)D1_ schrieb:  Der Stepper wird nach einer Weile recht warm, wenn er am MotorShield hängt. Liegt das am Haltestrom und wenn ja, ist das normal bzw. verträgt der Motor das ohne Probleme? Kann man die Stromstärke eventuell auch im Code regeln?
Ja, ein Stepper wird im Betrieb immer recht warm, da ja auch im Stillstand ein Strom fließt. Bei 12V/0,35A sind das immerhin 4,2W/Spule. Wenn er für diesen Strom/Spannung ausgelegt ist muss er das auch aushalten. Temperaturmäßig hält er auf jeden Fall mehr aus als deine Finger.
Im Stillstand kannst Du den Strom aber auch mit der release-Methode der Lib abschalten. Haltemoment hat er dann aber keins mehr.

(10.08.2019 21:19)hotsystems schrieb:  Das kann ins Auge gehen.
Hallo Dieter,
im letzten Fritzing Bildchen hat er den Widerstand schon drin Wink

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.08.2019, 21:33
Beitrag #35
RE: Ansteuerung DC-Motor + Schrittmotor mit Lichtschranke und Taster
(10.08.2019 21:28)MicroBahner schrieb:  
(10.08.2019 21:19)hotsystems schrieb:  Das kann ins Auge gehen.
Hallo Dieter,
im letzten Fritzing Bildchen hat er den Widerstand schon drin Wink

Hallo Franz-Peter,
habe ich gesehen, wollte nur noch seine Erklärung dazu entkräften.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.08.2019, 08:27 (Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2019 11:44 von D1_.)
Beitrag #36
RE: Ansteuerung DC-Motor + Schrittmotor mit Lichtschranke und Taster
Zitat: Wenn er für diesen Strom/Spannung ausgelegt ist muss er das auch aushalten.
Das Netzteil liefert 12V/0,6A. Und heißer als meine Finger vertragen wurde der Stepper bis jetzt mal nicht Wink. Ein Haltemoment sollte er schon haben.

Zitat:habe ich gesehen, wollte nur noch seine Erklärung dazu entkräften.
In Ordnung, ich werde es auch nie wieder tun Angel

Ich habe nun nach einigen Stunden des Rumprobierens folgenden Code erarbeitet, der soweit auch funktioniert. Ich kann mir aber durchaus vorstellen, dass dies nicht die eleganteste Möglichkeit ist Big Grin, trotzdem möchte ich ihn euch natürlich nicht vorenthalten und eventuell hat ja jemand noch Verbesserungsvorschläge.

Code:
#include <Wire.h>
#include <Adafruit_MotorShield.h>

Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor *motor1= AFMS.getMotor (1);
Adafruit_StepperMotor *motor2 = AFMS.getStepper (200, 2);

int Taster =11;
int LEDrot =13;
int LEDgruen =12;
int Schranke =A0;
int SchrankeWert =0;
int Motorzustand =0;

void setup() {
  Serial.begin(9600);
  
AFMS.begin ();
motor1->setSpeed (80);
motor2->setSpeed (100);

pinMode (Taster, INPUT);
pinMode (LEDrot, OUTPUT);
pinMode (LEDgruen, OUTPUT);

}
void loop()
{
digitalWrite (LEDgruen, HIGH);

if (Motorzustand==0)
  {
    if (digitalRead(Taster)==HIGH)
    {
      digitalWrite (LEDrot, HIGH);
      digitalWrite (LEDgruen, LOW);
      SchrankeWert= analogRead(Schranke);
      Serial.println (SchrankeWert);
      while (SchrankeWert < 1000)
      {
        SchrankeWert= analogRead(Schranke);
        Serial.println (SchrankeWert);
        motor1->run (FORWARD);
          if (SchrankeWert >=1000)
          {
           SchrankeWert= analogRead(Schranke);
           Serial.println (SchrankeWert);
           motor1->run(FORWARD);
           delay(1000);
           motor1->run (RELEASE);
           Motorzustand=1;
          }
       }    
    }
  if (Motorzustand==1)
   {
      motor2->step (300,FORWARD);
      delay(2000);
      motor2->step (300,BACKWARD);
      delay(3000);
      digitalWrite (LEDrot, LOW);    
      Motorzustand=0;
   }
  }
}

Ich habe den Ablauf nun nochmal abgeändert, da es so, so glaube ich, einfacher zu programmieren war und sogar besser zur Anwendung passt. Hier fährt der DC-Motor erst komplett seine Bewegung ab und danach der Stepper.
Also nicht wie vorher angedacht Stepper(FORWARD)->DC->Stepper(BACKWARD), sondern DC->Stepper(FORWARD)->Stepper(BACKWARD).

Der delay (1000) in Motorzustand=0 soll dabei den Motor noch 1s weiterfahren lassen nachdem das Signal von der Lichtschranke kam, damit das Stoppobjekt auch wieder aus der Lichtschranke herausfährt und erst kurz danach anhält. Sonst habe ich das Problem, dass das Stoppobjekt in der Schranke stehen bleibt und der Ablauf nicht erneut durchläuft, da kein "SchrankeWert <1000" mehr zustande kommt (keine allzu saubere Methode, wie ich vermute).

Also falls jemand Verbesserungsvorschläge hat, gerne her damit Smile.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Smile Brushless-motor Steuerung Meyer.F 10 6.539 02.09.2018 19:23
Letzter Beitrag: Tommy56
  3 Taster über einen Analogen eingang Steve39 17 6.475 14.05.2017 18:42
Letzter Beitrag: georg01
  Schrittmotor NEMA 17 luj1990 9 9.359 14.04.2017 22:04
Letzter Beitrag: georg01
  CNC-Fräse, Schrittmotor und Treiber hardyy 9 16.959 13.04.2017 16:50
Letzter Beitrag: Alex75
  Servo Seilwinde mit 2 Taster steuern SomosTres 17 9.343 13.02.2017 05:19
Letzter Beitrag: Binatone
  Tauchbeschichtungsanlage / Arduino UNO / Schrittmotor Drummerboy 26 6.342 01.12.2016 15:29
Letzter Beitrag: Bitklopfer
  motor shield hankewitz 2 2.710 24.11.2016 08:11
Letzter Beitrag: Binatone
  Motor-Parameter-TFT im Auto ChristianK 10 4.854 22.12.2015 11:44
Letzter Beitrag: aef
  Ferngesteuerter Motor Kreativlos 3 3.083 27.11.2015 22:22
Letzter Beitrag: hotsystems
Bug Segway / Self Balancing Robot DIY mit Gyro, Accel, Sabertooth 2x60 und My1020z2 Motor Wampo 17 35.652 30.10.2015 16:46
Letzter Beitrag: wsm

Gehe zu:


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