Motor Relaisteuerung Richtungswechsel

Das wäre sicher sehr hilfreich danke dafür werde ich auch machen, das problem ist nur das das Projekt nicht für mich ist und ich das eigentlich dieses Wochenende Abschließen wollte :sweat_smile:

Muss ich nach const int eigentlich noch OUTPUT vergeben ?weil das wäre ja dann in Setup oder ?

Vergiss es. So bissl Grundlagen brauchst Du dafür.
Und nein, ich kann Dir nicht alles liefern :wink:

Ach schau, doch schon was gelernt... :slight_smile:
Ja.
Und bitte mach Dir gleich ein Serial.begin rein und eine erste Ausgabe, damit Du siehst das Dein Code auch anläuft. Bei mir:

void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));

Ich habe gar kein Aktuelles Sketch, ich weiß nicht wie ich das ändern muss :grimacing:

const int sensorPin = 13;
const int motor1Pin = 4;
const int motor2Pin = 5;
const int motor3Pin = 6;
const int motor4Pin = 7;

unsigned long timeMark;

void setup()
{
Serial.begin(115200);
Serial.println(F("Start..."));
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(13,INPUT);
}



void loop() {
if (digitalRead(sensorPin) == LOW) {
timeMark = millis();
digitalWrite(motor1Pin, LOW);
digitalWrite(motor2Pin, LOW);
digitalWrite(motor3Pin, HIGH);
digitalWrite(motor4Pin, HIGH);
}
else if (millis()- timeMark <= 4000 ) {
digitalWrite(motor1Pin, HIGH);
digitalWrite(motor2Pin, HIGH);
digitalWrite(motor3Pin, LOW);
digitalWrite(motor4Pin, LOW);
}
else {
digitalWrite(motor1Pin, HIGH);
digitalWrite(motor2Pin, HIGH);
digitalWrite(motor3Pin, HIGH);
digitalWrite(motor4Pin, HIGH);
}
}

Habe es geschaft :muscle:

Danke euch allen für eure Hilfe :sweat_smile:
Werde dann von fertigen Projekt ein Bild Posten :+1:

Danke an dich ganz besonders, werde mir die PDF jetzt Stück für Stück durchlesen :smiley:

Mfg

Das ist massiv unglücklich.
2 Dinge: Pin 13 ist auf'm UNO die Onboard-LED. Das könnte kontraproduktiv sein, den alsEingang zu nutzen.
Und wenn Du schon PIN's deklarierst, VERWENDE DAS!

pinMode(motor1Pin,OUTPUT)

naja, hast noch viel vor.
PS: Das Umschalten ohne kurzen Halt macht das System anfällig.

Oke aber 12 schon ??

Mit Delay darf ich das jetzt erfahrungsweiße nicht machen oder ??

Aber doch nicht bei einem UNO.

Ja. 2,3, oder 8 gehen auch.

Das ist erfahrungsgemäß nicht gut gelöst.

Dein Stichpunkt: Schrittkette.
Schau in das pdf unter switch/case.
Hast ja noch die Nacht zeit - und morgen den halben Tag zum bauen :wink:

Ja. Aber wenn ich den später als Kontrolle verwenden will... Ich weiss, wie Projekte wachsen :slight_smile: Aber ok.

Einigen wir uns daß beim UNO pin 13 auch gut als Eingang funktioniert weil die LED mittels Optokoppler Operationsverstärker entkoppelt ist, Aber in einem späteren, ausgebauten Moment als einfaches Userinterfaces für etwaige einfachste Signalgabe verwendet werden kann.

Wenn man dann 13 frei hat dann kann man es auch mal auf die schnelle zum debuggen verwenden ohne irgendwo an einem freien PIN eine LEd hinfummeln zu müssen.

Grüße Uwe

1 Like

Es ist ein Opamp. Eine LED mit Optokoppler entkoppeln macht irgendwie keinen Sinn.

Sie ist entkoppelt.
Und um das abzuschliessen:
Es ging mir einzig darum, das PIN 13 am UNO schon eine Doppelverwendung hat und das später auf die Füsse fällt, wenn gebraucht.
Nicht weniger. Nicht mehr. Unglücklich rüber gebracht für die "eingefleischten" - aber ich versuche dem Fragesteller entgegen zu kommen.

Ende der Diskussion.

Und genau das ist falsch! Die Entkopplung ist rückwirkungsfrei, kann keinen Einfluß auf das Signal am Pin haben.

Jawoll!
Meine Bewunderung hast du dir verdient, für die unangefochtene Fähigkeit Diskussionen zu leiten.

Übrigens:

Für quasi jeden Pin gibts die Möglichkeit ihn verschiedentlich einzusetzen. Gerne auch dreifach und vierfach.
Ist also kein Alleinstellungsmerkmal des Pin 13

Wenn ich SCL brauche, ist LED_BUILTIN (als aussagekräftiges Medium) nicht zu gebrauchen.
NOCHMAL:

Mannomann, Du machst einen sehr verwirrten Eindruck :frowning:

Pin 13 ist SCK, nicht SCL.

Zur Erinnerung:

Wenn SPI benutzt wird, kann Pin 13 nicht als Eingang benutzt werden. Das ist aber kein Alleinstellungsmerkmal dieses Pins, dann sind nämlich Pins 11-13 gleichermaßen festgelegt und können nicht mehr anderweitig verwendet werden.

Wenn SPI nicht benötigt wird und man einen Eingang mit LED-Anzeige haben möchte, ist Pin 13 genau richtig. Man kann ihn sogar ohne Code verwenden, einfach nur zur hochohmigen Anzeige irgendeines Signalpegels.

Genau das habe ich beim Schreiben gedacht und trotzdem was anderes geschrieben.

Danke fürs korrigieren.

Grüße Uwe

Habe aber jetzt eh ein Problem, sobald ich Spannung anlege schaltet der Arduino am Anfang alle 4 Relais kurz danach läuft das Programm, das Problem ist aber das die Relais mir ja dann einen Kurzschluss hineinbringen wegen der Drehrichtungsschaltung.

Wie könnte ich das ändern??

Danke,
Mfg

Ein Versuch wäre die OUTPUT-Pin gleich zu setzen:

void setup()
{
Serial.begin(115200);
Serial.println(F("Start..."));
pinMode(4,OUTPUT);
digitalWrite(4, HIGH);
pinMode(5,OUTPUT);
digitalWrite(5,HIGH);
pinMode(6,OUTPUT);
digitalWrite(6,HIGH)
pinMode(7,OUTPUT);
digitalWrite(7,HIGH)
pinMode(13,INPUT);
}

Die Dinger sind LOW-Aktiv.