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
DC Motor und Hallsensor Zähler
11.05.2018, 14:47
Beitrag #1
DC Motor und Hallsensor Zähler
Hallo,

ich habe eine Frage. Ich möchte einen DC Motor nach X Umdrehungen anhalten. Die Umdrehungen werden mittels Hallsensor gezählt. Dazu habe ich folgenden Sketch:
Code:
int Led = 13 ; // define LED Interface
int SENSOR = 6 ; // define the Hall magnetic sensor interface
int val ;
int motor1_A=11;
int motor1_B=10;
int motor1_Speed=9;
int counter = 0;

void setup(){
  pinMode(motor1_A,OUTPUT);
  pinMode(motor1_B,OUTPUT);
  pinMode (SENSOR, INPUT) ;  
  pinMode (Led, OUTPUT) ;  
}

void loop(){

  val = digitalRead (SENSOR) ;
  if  (val  == LOW)  
  counter +1;
  
for (int i=0; i<256; i+=5){
    digitalWrite(motor1_A,LOW);
    digitalWrite(motor1_B,HIGH);
    analogWrite(motor1_Speed,i=200);
if (counter >= 5)
digitalWrite(motor1_B,LOW);


}
}

Leider Stoppt der Motor nicht nach X Umdrehungen. Ich wäre über eine Hilfe zur Realisierung sehr dankbar! VG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:04 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2018 15:05 von Tommy56.)
Beitrag #2
RE: DC Motor und Hallsensor Zähler
Du erhöhst zwar den Counter, weist das Ergebnis aber nirgend wohin.
Code:
// falsch
counter +1;

// richtig Variante 1
counter = counter +1;

// richtig Variante 2
counter += 1;

// richtig Variante 3
counter++;
Ansonsten hänge einfach eine serielle Ausgabe rein, damit Du siehst, was Dein counter macht.

Gruß Tommy

Edit: Das wird auch nicht machen, was Du denkst (Was soll das i=200 bedeuten?):
Code:
analogWrite(motor1_Speed,i=200);

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:14
Beitrag #3
RE: DC Motor und Hallsensor Zähler
Hi, trotzdem Funktioniert die Abschaltbedingung noch nicht. Das "i=200" soll die Geschwindigkeit regeln. Hier der überarbeitete Sketch:
Code:
int Led = 13 ; // define LED Interface
int SENSOR = 6 ; // define the Hall magnetic sensor interface
int val ;
int motor1_A=11;
int motor1_B=10;
int motor1_Speed=9;
int counter = 0;

void setup(){
  pinMode(motor1_A,OUTPUT);
  pinMode(motor1_B,OUTPUT);
  pinMode (SENSOR, INPUT) ;  
  pinMode (Led, OUTPUT) ;  
}

void loop(){

  val = digitalRead (SENSOR) ;
  if  (val  == LOW)  
  counter++;
  
for (int i=0; i<256; i+=5){
    digitalWrite(motor1_A,LOW);
    digitalWrite(motor1_B,HIGH);
    analogWrite(motor1_Speed, i=100);
if (counter >= 5)
digitalWrite(motor1_B,LOW);


}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:25
Beitrag #4
RE: DC Motor und Hallsensor Zähler
Wo sind die seriellen Ausgaben?
Für was soll die For-Schleife gut sein? Ihr Sinn erschließt sich mir nicht.
Dann gib 200 als Geschwindigkeit ein, nicht i=200. Damit setzt Du i auf 200 und die Schleife kommt nie zum Ende. Dein Code blockiert damit.

Die Endebedingung würde ich nicht in die for-Schleife packen, sondern direkt in den Loop.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:48
Beitrag #5
RE: DC Motor und Hallsensor Zähler
Hallo Tommy, könntest du mir konkret ein Sketchbeispiel nennen, ich habe es grade eigenständig weiter probiert ohne den Fehler gefunden zu haben, trotz deinen Tipps. VG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:51
Beitrag #6
RE: DC Motor und Hallsensor Zähler
(11.05.2018 15:48)Crazy schrieb:  Hallo Tommy, könntest du mir konkret ein Sketchbeispiel nennen, ich habe es grade eigenständig weiter probiert ohne den Fehler gefunden zu haben, trotz deinen Tipps. VG

Wofür? Für die Verwendung von seriellen Ausgaben?
Ich habe keine Motoren zum Ansteuern, also auch keinen Code dafür. Wo hast Du denn den Code her?
Hast Du mal einen Link zu dem Motor?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 15:55
Beitrag #7
RE: DC Motor und Hallsensor Zähler
Hier der Link zum Motor: Pollin

H-Brücke: 298N

Ich komme leider nicht weiter die Impule die der Hallsensor liefert auf die Abbruchbedingung für den Motor zu münzen. VG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 16:07
Beitrag #8
RE: DC Motor und Hallsensor Zähler
Ungetestet und nur auf Deinen Angaben aufbauend:

Code:
int Led = 13 ; // define LED Interface
int SENSOR = 6 ; // define the Hall magnetic sensor interface
int val ;
int motor1_A=11;
int motor1_B=10;
int motor1_Speed=9;
int counter = 0;

void setup(){
  Serial.begin(9600);
  Serial.println("Start");
  pinMode(motor1_A,OUTPUT);
  pinMode(motor1_B,OUTPUT);
  pinMode (SENSOR, INPUT) ;  
  pinMode (Led, OUTPUT) ;  
   // Motor an
    digitalWrite(motor1_A,LOW);
    digitalWrite(motor1_B,HIGH);
    analogWrite(motor1_Speed,100);
}

void loop() {
  val = digitalRead (SENSOR) ;
  if  (val  == LOW) {
    counter++;
    Serial.print("Counter: ");
    Serial.println(counter);
  }
  if (counter >= 5) {
    // ausschalten
    Serial.println("Ausschalten");
    digitalWrite(motor1_B,LOW);
  }  
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Per Tastendruck Stepper-Motor eine bestimmte Drehung machen lassen Chef_2 2 111 09.10.2018 21:59
Letzter Beitrag: Chef_2
  Motor läuft nicht. Uwe1475 8 655 19.08.2018 14:43
Letzter Beitrag: Uwe1475
  Stepper Motor (Ansteuerung) pm96 6 654 30.06.2018 20:29
Letzter Beitrag: pm96
  Anzahl Umdrehungen DC Motor Crazy 5 580 01.05.2018 13:01
Letzter Beitrag: Tommy56
  Stepper Treiber A4988 - Nema 17 Motor Crazy 3 565 27.04.2018 22:07
Letzter Beitrag: GuaAck
  Einmalige Servo Motor Ausführung BanditBandeh 29 3.678 12.04.2018 12:04
Letzter Beitrag: MicroBahner
  Einen Startwert für den Millis() Zähler einstellen?? Franz54 9 1.026 01.04.2018 17:01
Letzter Beitrag: Franz54
  Motor Shield V3 Analog Digital Converter Nextero 5 858 19.12.2017 10:54
Letzter Beitrag: Nextero
  Neuling Projekt Zähler Feuersturm84 2 622 16.11.2017 19:50
Letzter Beitrag: Chopp
  Motor Steuerung durch Sensoren Werte Zerebrator 14 2.152 12.06.2017 14:36
Letzter Beitrag: Franz54

Gehe zu:


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