Motor über Stromschnelle stoppen?

Hallo,

ich versuche mich seit einigen Wochen in der Programmierung des Arduino uno und arbeite mich langsam voran.
Mehrere kleine 'Projekt' habe ich bereits erfolgreich getestet.

Bei meinem jetzigen 'Projekt' scheitere ich allerdings vergebens :slightly_frowning_face:

ich habe zu dem Arduino uno ein Arduino Motor Shield R3 und einen DC Getriebemotor (0,024A; 12V; 20,2 U/min; 0,15 NM).

lt. Motorshield hat dieses einen analogenPin 'A0' (Motor1) der zur Strommessung dienen soll.
Diesen möchte ich gerne dazu benutzen dass wenn eine gewisse mA-Schwelle erreicht, der Motor stoppt

ein versuch mit

int motor1_dir = 12;                   // Motor_Drehrichtung
int motor1_speed = 3;                 // Motor-Geschwindigkeit
int motor1_brake = 9;                 // Motor-Bremse
int motor1_sense = A0;                // Motor-Strommessung

void setup() {
  Serial.begin(9600);

  pinMode(motor1_dir, OUTPUT);
  pinMode(motor1_speed, OUTPUT);
  pinMode(motor1_brake, OUTPUT);
  pinMode(motor1_sense, INPUT);


}




void loop() {

  digitalWrite(motor1_dir, HIGH);
  analogWrite(motor1_speed, 255);
  analogRead(motor1_sense);
  Serial.println(motor1_sense, DEC);
  delay(2000);
}

zeigt mir im seriellen Monitor immer den wert 14 an.

nun meine 1. frage:

mit welcher Formel zeigt mir der monitor die mA an?

2.:

wenn ich den motor z.B.: mit der Hand etwas aufhalte, müsste doch die stromaufnahme steigen und der Wert (im meinem Fall 14) sich dementsprechend ändern?

LG

Ist die Lötbrücke SNS0 verbunden?

SNS0 ist verbunden, ja.

ev. muss ich hardware-seitig den pin A0 mit ?? verbinden?

wenn ich

Serial.print(analogRead(motor1_sense),DEC)

eingebe bekomme ich den Wert 956, der aber sich leider auch nicht verändert.

Messe ich da eventuell eine Spannung?

In den weiten des Internets finde ich dazu leider auch nichts hilfreiches :frowning:

LG

Mal abgesehen davon, dass du am Arduino immer eine Spannung misst, und 956 ca. (Vref==Vcc) * 93% bedeutet, ist natürlich die Frage, ob du das auch mit einem Multimeter am Pin A0 misst~~, und was du da angeschlossen hast.~~ (Sollte eigentlich über die SNS0 Brücke realisiert sein)

berti:
ev. muss ich hardware-seitig den pin A0 mit ?? verbinden?

Nein, das ist mittels SNS0 gemacht.

berti:
Messe ich da eventuell eine Spannung?

Ja, an A0 kann nur eine Spannung gemessen werden: 0 = 0V und 1023 = 5V; 956 = 4,6V

Bei maximalem Strom erhälst Du einen meßbaren Unterschied von (Quelle):

1.65V/A * 0,024A * 1023 / 5V = 0,0396V * 1023 / 5V = 8

Anders gesagt: Der Motor zieht zu wenig Strom, um den Stromsensor vom Shield nutzen zu können.

Danke für die Antworten,

so habe mal das ganze mit Kanal B versucht und siehe da, der wert (14) steigt wenn ich den motor per hand versuche anzuhalten.

wohlmöglich habe ich bei meinen versuchen irgendetwas im shield am kanal A zerstört
(mann sollte nicht einfach herumdoktern)!

Juhu, die Versuche können weitergehen! :slight_smile: