ESC Mit einem Arduino steuern

Moin zusammen,

Ich habe mir neulich einen ESC für einen Brushed Motor gekauft und wollte diesen dann mit einen Arduino steuern und so eine pumpe zu regulieren. habe dann ein paar Codes aus dem internet ausprobiert aber immer passiert nichts, der ESC Startete immer nur und blinkte dann vor sich hin.

konnte auch keine Lösung finden und deswegen wende ich mich jetzt an euch.

LG Timo

ESC

Code:

  #include <Servo.h>
  
  Servo esc; 
  
  
  int I = 0;
  
  void setup()
  
  {
  
  esc.attach(5); 
  Serial.begin(9600);
  }
  
  void loop()
  
  {
  
  if (I < 20){
    I += 1;
    esc.write(0);
    delay(800);
    Serial.print(I);
  }
  else{
    int val; 
  
    val= analogRead(A0); 
  
    val= map(val, 0, 699,0,100); 
    esc.write(val);
    Serial.print(val);
    
  }

Sorry aber das sagt nix, gib mal Link zu dem Teil und zum Motor.
Unsere Kristallkugeln sind alle Defekt .

Auf was wartest Du hier, das Du I 20 werden lässt?

Was hängt da an A0?

Solltest Du versuchen, damit die Stellung auszulessen, dann hast Du vorher mit 0 ausgebremst und es passiert nichts.

moin fony,

Link zu der pumpe habe ich nicht Aber der link zu dem esc steht oben drinnen

Wow Sogar Sketsch ist jetzt da :wink:

Ich warte dort 20 mal um eventuell eine schütz Stellungen von dem esc zu umgehen. Da ich dachte das er bei einer direkt gasstelleung sich nicht direkt freischaltet.

an A0 Hängt ein Poti zur regulierung der Drehzahl.

das mach 20*800ms = 16 Sekunden.
Dann damit ab ins setup() da ja nur einmal abgefragt.

Was mir noch nicht klar ist, warum mapst Du nur von 0 bis 699?
Wenn da ein R an A0 dran hängt, geht der normalerweise von VCC nach GND.
Die 100 wird vermutlich eine "prozentuale" Errechnung sein.
Dann sehe es bei mir so aus.

  • Alles geraten, da keinerlei Schimmer, was dein Controller kann oder macht...
#include <Servo.h>

Servo esc;

void setup()

{
  esc.attach(5);
  Serial.begin(9600);
  while (millis() < 15000)
  {
    esc.write(0);
  }
}

void loop()
{
  uint16_t val = analogRead(A0);
  esc.write(map(val, 0, 1023, 0, 100));
  Serial.print(map(val, 0, 1023, 0, 100));
}

Macht natürlich sinn.

jetzt funktioniert alles.

Vielen vielen Dank Hast echt mein Abend gerettet.

LG Timo

1 Like

Danke fürs rückmelden!
Der Abend ist noch lang.... :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.