Warum funktioniert der Arduino Code nicht?


31.05.2024, 16:58

fotos vom Aufbau:


31.05.2024, 23:50

neues ergänztes Foto

1 Antwort

Da sind ein par Syntax Fehler:

  1. Variablen werden mit Typ name = wert; zugewiesen also z.b. int motor_A = -5;
  2. Bei der Deklarierung der loop-Funktion fehlen die Klammern also müsste es so aussehen:
void loop() {
}

Allerdings müssten dir all diese Fehler mit Beschreibung was falsch ist in der Arduino IDE angezeigt werden.

Woher ich das weiß:Hobby

PaperHead 
Beitragsersteller
 31.05.2024, 16:40

Vielen dank, der Code weist jetzt keine Fehler mehr auf, jedoch dreht sich der Motor nicht.

Ich habe diesen Aufbau verwendet

https://www.youtube.com/watch?v=B0YmHIJInto

hast du vielleicht eine idee was ich falsch gemacht haben könnte oder wie ich das ohne diese h-brücke machen kann, da ich mir da nicht sicher bin ob ich das richtige bauteil habe?

0
Suiram1  31.05.2024, 16:45
@PaperHead

Hast du bei den Definitionen der Pins von IC (meine die "H-Brücke") noch eine negative Zahl stehen?

0
PaperHead 
Beitragsersteller
 31.05.2024, 16:46
@Suiram1

ich habe es noch so da stehen:

int motor_A = -5;

int motor_B = -6;

int motor_Speed = -3;

void setup(){

  pinMode(motor_A, OUTPUT);

  pinMode(motor_B, OUTPUT);

}

  void loop(){

  digitalWrite(motor_A, HIGH);

  digitalWrite(motor_B,LOW);

  analogWrite(motor_Speed, 100);

  delay(2000);

  analogWrite(motor_Speed,200);

  delay(2000);

  digitalWrite(motor_A, LOW);

  digitalWrite(motor_B,HIGH);

  analogWrite(motor_Speed, 100);

  delay(2000);

  analogWrite(motor_Speed,200);

  delay(2000);

   analogWrite(motor_Speed,0);

  delay(2000);

  }

0
Suiram1  31.05.2024, 16:52
@PaperHead

Gut, das geht so nicht. Erklärung:

Wenn du schreibst

int motor_A = -5;

dann deklarierst du eine Variable namens motor_A die einen integer (ganzzahligen Wert) kurz int enthält. Dieser Wert wird nun innerhalb des Codes genutzt um auszuwählen welcher Pin am Arduino genutzt werden soll und da es keinen Pin mit einer Bezeichnung wie -5 oder -6 gibt weiß das Arduino nicht welchen Pin es nutzen soll. Also müssen die Werte von motor_A und motor_B in dem Fall Positiv sein.

Ergänzung: Für motor_Speed gilt das auch aber das hat andere Gründe.

1
PaperHead 
Beitragsersteller
 31.05.2024, 16:54
@Suiram1

achso, es tut mir leid dass ich mich so anstelle, ich habe es geändert, der motor dreht sich dennoch noch nicht, kann der fehler nicht auch im aufbau liegen mit diesem "IC"?

0
Suiram1  31.05.2024, 16:54
@PaperHead

Ergänze mal ein Bild von deinem Aktuellen Aufbau zur Frage, dann kann ich mir das mal anschauen.

0
Suiram1  31.05.2024, 16:58
@PaperHead

Zu meinem vorherigen Kommentar hatte ich noch etwas ergänzt ganz kurz vor deinem:

Ergänzung: Für motor_Speed gilt das auch aber das hat andere Gründe.

Vielleicht liegt es daran.

0
PaperHead 
Beitragsersteller
 31.05.2024, 17:01
@Suiram1

Ich hatte das auch geändert, es funktioniert leider noch immer nicht.

0
PaperHead 
Beitragsersteller
 31.05.2024, 17:02
@PaperHead

Kennst du sonst vielleicht einen anderen Aufbau evtl. auch mit anderem Code der funktioniert?

0
Suiram1  31.05.2024, 17:08
@PaperHead

Du hast ein ULN2003A IC verbaut und im Video wurde ein L293D IC genutzt. Der ULN2003A kann nicht wie der L293D genutzt werden.

0
Suiram1  31.05.2024, 17:10
@PaperHead

Also am Code liegt es nicht und vom Anschließen her könnte es auch sein das du dir vielleicht den ULN20003A durchgebrannt hast, aber das ist nur möglich.

0
PaperHead 
Beitragsersteller
 31.05.2024, 17:11
@Suiram1

ich habe gehofft man kann es genauso verwenden, schade.

Ich hätte noch ein GB31HLX E4 da der funktioniert vermutlich auch nicht?

Gibt es sonst eine alternative?

0
Suiram1  31.05.2024, 17:18
@PaperHead

unter dem namen find ich kein IC ist aber auch egal denn man sollte immer auf darauf achten das man den richtigen IC verwendet und wenn man ein anderen nutzt in dessen Datenblättern schaut inwiefern sich diese unterscheiden. IC sehen zwar oft gleich aus haben aber viele verschiedene Funktionen.

Als Anfänger wäre es wohl das beste sich so ein Starter-Kit zu holen da dort alle möglichen 'standard' ICs dabei sind (unteranderem auch der L293D) und vieles weitere.

0
PaperHead 
Beitragsersteller
 31.05.2024, 17:23
@Suiram1

dafür habe ich leider keine zeit mehr, außerdem habe ich mir bereits ein anderes Anfängen Starterkit gekauft, kann ich den Motor nicht sonst wie eine Led ansteuern nur noch zusätzlich mit einer externen Batterie?

0
Suiram1  31.05.2024, 17:36
@PaperHead

Geht theoretisch auch, allerdings macht man das nicht, da der Motor relativ viel Strom benötigt und möglicherweise das Arduino mit seinem Stromverbrauch beeinflusst.

noch zusätzlich mit einer externen Batterie?

Ich weißt nicht wie du das meinst, aber üblicherweise macht man das mit einem IC wie dem L293D. Was mich aber wundert ist das wenn das ein Arduino Starter-Kit ist das du hast kein L293D dabei ist da dieser so ziemlich der Standard IC dafür ist. Welches Kit hast du denn?

0
PaperHead 
Beitragsersteller
 31.05.2024, 17:40
@Suiram1

das heist irgendwie rfid starter kit, hat nur 30€ gekostet die anderen alle so 80€ ,das war mir zu teuer 😅

Ich habe aber einen Freund gefragt er hat das Teil wohl, ich probiere gleich mal das zu verbauen

0
Suiram1  31.05.2024, 17:44
@PaperHead

RFID sind diese Schlüsselkarten. Ganz schön gewagt als Anfänger xD.

0
PaperHead 
Beitragsersteller
 31.05.2024, 20:24
@PaperHead

Hab jetzt das teil von einem Freund, der Motor brummt, dreht sich aber nicht

0
Suiram1  31.05.2024, 21:13
@PaperHead

Wenn der Motor brummt dann macht er was. Hast du dich vergewissert das alles wieder richtig angeschlossen ist und der IC richtig ausgerichtet ist?

0
PaperHead 
Beitragsersteller
 31.05.2024, 22:14
@Suiram1

Der Motor hat sich kurzzeitig gedreht, ich glaube jedoch nicht so wie das Sketch es vorgegeben hat, jetzt dreht er sich nicht mehr und ich bekomme ihn auch nicht mehr dazu.

0
Suiram1  31.05.2024, 22:48
@PaperHead

Du könntest nochmal ein Bild ergänzen wie der IC jetzt angeschlossen ist, allerdings wenn man dort nichts findet wird es schwierig den Fehler zu finden.

0
Suiram1  01.06.2024, 00:01
@PaperHead

Ich hab das mal verglichen und soweit ist der IC richtig angeschlossen.

Mach mal eins der Motor Kabel ab und führ das Programm aus. Führ es dann erneut aus wieder mit angeschlossenem Motor. Beobachte mal dabei die LEDs am Arduino ob diese wenn der Motor angeschlossen ist Dunkler leuchten (oder gar aus sind) als wenn der Motor ab ist.

0
Suiram1  01.06.2024, 00:14
@Suiram1

Wenn ich nochmal drüber noch denke erscheint mir der Kommentar mit den LEDs am Arduino etwas quatschig da der L293D ja dafür da ist das zu verhindern.

Mal ein anderer Ansatz: Bist du dir sicher das deine Konstruktion mit dem 9V-Block auch funktioniert? Von der Polung kann ich nur raten ob diese richtig ist und selbst wenn ist die Frage wie gut die Kabel mit dem Klebeband dort festhalten. Und da kann ich aus eigener Erfahrung sagen das es nie gut geht wenn man in der Elektronik was mit Klebeband machen will.

0
PaperHead 
Beitragsersteller
 01.06.2024, 03:59
@Suiram1

hab das mit einem Messgerät getestet, das müsste funktionieren

0
Suiram1  01.06.2024, 10:03
@PaperHead

Dann bin ich einwenig ratlos. Du könntest noch probieren während das Programm läuft mit dem messgerät die verschiedenen Teile durchzumesssen. Also die Pins am Motor (dort wo die Kabel zum Motor übergehen). Du kannst auch die verschiedenen Pins am IC durchmessen ob dort vllt. was nicht ankommt.

0