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
Code für kleine Steuerung
09.09.2014, 20:47
Beitrag #1
Code für kleine Steuerung
Hallo Arduinoforum Gemeinde, ich bin neu hier und bräuchte mal eure Hilfe. Ich habe vor über 2Jahren eine Steuerung mit Arduino gebaut, welche auch gut funktioniert. Beim Code wurde mir auch geholfen, heisst ich stecke nicht besonders tief in der Materie Programmierung drin. Bin mehr der Elektrobastler. Der Arduino Mega steuert über eine Relaisplatine Magnetschalter an, welche wiederum Hydraulik steuern.
Ich bräuchte mal einen Code für folgende Funktion: Taster1 drücken - Relais1 5sec High dann Low, Taster1 wieder betätigen - Relais2 5sec High dann Low. Beim erneuten betätigen von Taster1 dann halt wider Relais1 steuern. In der Praxis soll das dann so funktionieren. Taster1 drücken Hydraulikkolben fährt vor (benötigt ca 5sec dafür) Magnetschalter1 aus, Taster1 nochmal drücken Hydraulikkolben fährt zurück und dann Magnetschalter2 wieder aus. Also ich möchte einen Hydraulikkolben mit einen Taster Steuern, er soll beim jeweiligen betätigen des Tasters in die andere Richtung fahren.
Für erfahrene Programierer wie Euch sicher eine Kleinigkeit oder evtl. hat jemand sowas schon fertig da. Dann hätte ich schonmal einen Anfang um meinen Code umzubauen.
Ich würde mich über Eure Hilfe sehr freuen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.09.2014, 21:16
Beitrag #2
RE: Code für kleine Steuerung
Bitteschön:
Zitat:const int taster = 2;
const int relais[] = {3,4};
int i = 0;

void setup() {
  pinMode(taster, INPUT);
  pinMode(relais[0], OUTPUT);
  pinMode(relais[1], OUTPUT);
}

void loop(){
  if (digitalRead(taster)) {
    digitalWrite(relais[i], HIGH);
    delay(5000);
    digitalWrite(relais[i], LOW);
    i=i?0:1; 
  }
}
gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.09.2014, 21:39
Beitrag #3
RE: Code für kleine Steuerung
Oh Vielen Herzlichen Dank für den Code. Werde den Morgen gl mal probieren
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.09.2014, 17:57
Beitrag #4
RE: Code für kleine Steuerung
Hallo, Danke noch mal der Code hat super funktioniert. Ich habe ihn mal auf 4 Taster 8 Relais erweitert per Copy&Paste Programmierung Rolleyes aber anders kann ich es halt nicht. Es funktioniert, ist aber bestimmt nicht die feine Art der Programmierung. Ich weiss das man sowas auch einkürzen kann. Falls einer einen Tip hat wie es "eleganter" geht, ich freue mich über jede Anregung.
Code:
const int taster1 = 2;
const int taster2 = 3;
const int taster3 = 4;
const int taster4 = 5;
const int Kolben1[] = {4,5};
const int Kolben2[] = {6,7};
const int Kolben3[] = {8,9};
const int Kolben4[] = {10,11};
int i = 0;
void setup() {
  pinMode(taster1, INPUT);
  pinMode(taster2, INPUT);
  pinMode(taster3, INPUT);
  pinMode(taster4, INPUT);  
  pinMode(Kolben1[0], OUTPUT);
  pinMode(Kolben1[1], OUTPUT);
  pinMode(Kolben2[0], OUTPUT);
  pinMode(Kolben2[1], OUTPUT);
  pinMode(Kolben3[0], OUTPUT);
  pinMode(Kolben3[1], OUTPUT);
  pinMode(Kolben4[0], OUTPUT);
  pinMode(Kolben4[1], OUTPUT);
}
void loop(){
  if (digitalRead(taster1)) {
    digitalWrite(Kolben1[i], HIGH);
    delay(5000);
    digitalWrite(Kolben1[i], LOW);
    i=i?0:1;
   }  
  if (digitalRead(taster2)) {
    digitalWrite(Kolben2[i], HIGH);
    delay(5000);
    digitalWrite(Kolben2[i], LOW);
    i=i?0:1;
     }  
  if (digitalRead(taster3)) {
    digitalWrite(Kolben3[i], HIGH);
    delay(5000);
    digitalWrite(Kolben3[i], LOW);
    i=i?0:1;    
     }  
  if (digitalRead(taster4)) {
    digitalWrite(Kolben4[i], HIGH);
    delay(5000);
    digitalWrite(Kolben4[i], LOW);
    i=i?0:1;    
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.09.2014, 19:40
Beitrag #5
RE: Code für kleine Steuerung
sieht doch soweit ganz gut aus. einziges Problem ist, dass du für jeden kolben die selbe Variable i benutzt.
wenn du jetzt bsw. Taster1 einmal Drückst, und dann Taster2 versucht er den Kolben von Taster2 einzufahren.

gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.09.2014, 20:54
Beitrag #6
RE: Code für kleine Steuerung
Hallo, hab noch n Fehler entdeckt, hatte für Kolben1 und Taster 3 und 4 die gleichen Arduino Pins vergeben.Copy&Paste halt Rolleyes Stimmt Du hast Recht Lorenz, ist mir noch gar nicht aufgefallen. Wie kann man das ändern?
Code:
const int taster1 = 2;
const int taster2 = 3;
const int taster3 = 4;
const int taster4 = 5;
const int Kolben1[] = {6,7};
const int Kolben2[] = {8,9};
const int Kolben3[] = {10,11};
const int Kolben4[] = {12,13};
int i = 0;

void setup() {
  pinMode(taster1, INPUT);
  pinMode(taster2, INPUT);
  pinMode(taster3, INPUT);
  pinMode(taster4, INPUT);  
  pinMode(Kolben1[0], OUTPUT);
  pinMode(Kolben1[1], OUTPUT);
  pinMode(Kolben2[0], OUTPUT);
  pinMode(Kolben2[1], OUTPUT);
  pinMode(Kolben3[0], OUTPUT);
  pinMode(Kolben3[1], OUTPUT);
  pinMode(Kolben4[0], OUTPUT);
  pinMode(Kolben4[1], OUTPUT);
}
void loop(){
  if (digitalRead(taster1)) {
    digitalWrite(Kolben1[i], HIGH);
    delay(5000);
    digitalWrite(Kolben1[i], LOW);
    i=i?0:1;
   }  
  if (digitalRead(taster2)) {
    digitalWrite(Kolben2[i], HIGH);
    delay(5000);
    digitalWrite(Kolben2[i], LOW);
    i=i?0:1;
     }  
  if (digitalRead(taster3)) {
    digitalWrite(Kolben3[i], HIGH);
    delay(5000);
    digitalWrite(Kolben3[i], LOW);
    i=i?0:1;    
     }  
  if (digitalRead(taster4)) {
    digitalWrite(Kolben4[i], HIGH);
    delay(5000);
    digitalWrite(Kolben4[i], LOW);
    i=i?0:1;    
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.09.2014, 03:07
Beitrag #7
RE: Code für kleine Steuerung
war mir gar nicht aufgefallen mit den Pins...
Wenn jeder Kolben seine eigene Zustandsflag bekommt kannst du sie in beliebiger Reihenfolge ein und ausfahren:
Code:
const int taster1 = 2;
const int taster2 = 3;
const int taster3 = 4;
const int taster4 = 5;
const int Kolben1[] = {6,7};
const int Kolben2[] = {8,9};
const int Kolben3[] = {10,11};
const int Kolben4[] = {12,13};
boolean f1=0;
boolean f2=0;
boolean f3=0;
boolean f4=0;

void setup() {
  pinMode(taster1, INPUT);
  pinMode(taster2, INPUT);
  pinMode(taster3, INPUT);
  pinMode(taster4, INPUT);  
  pinMode(Kolben1[0], OUTPUT);
  pinMode(Kolben1[1], OUTPUT);
  pinMode(Kolben2[0], OUTPUT);
  pinMode(Kolben2[1], OUTPUT);
  pinMode(Kolben3[0], OUTPUT);
  pinMode(Kolben3[1], OUTPUT);
  pinMode(Kolben4[0], OUTPUT);
  pinMode(Kolben4[1], OUTPUT);
}
void loop(){
  if (digitalRead(taster1)) {
    digitalWrite(Kolben1[f1], HIGH);
    delay(5000);
    digitalWrite(Kolben1[f1], LOW);
    f1=f1?0:1;
   }  
  if (digitalRead(taster2)) {
    digitalWrite(Kolben2[f2], HIGH);
    delay(5000);
    digitalWrite(Kolben2[f2], LOW);
    f2=f2?0:1;
     }  
  if (digitalRead(taster3)) {
    digitalWrite(Kolben3[f3], HIGH);
    delay(5000);
    digitalWrite(Kolben3[f3], LOW);
    f3=f3?0:1;    
     }  
  if (digitalRead(taster4)) {
    digitalWrite(Kolben4[f4], HIGH);
    delay(5000);
    digitalWrite(Kolben4[f4], LOW);
    f4=f4?0:1;    
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.09.2014, 13:53
Beitrag #8
RE: Code für kleine Steuerung
Hallo, Vielen Dank! Jetzt funktioniert es so wie es soll Shy Muss es nur noch auf die richtigen Pins des Arduino Maga in der Anlage ändern.
Mal sehen ob ich das in den eigentlichen Code mit der Automatiksteuerung mit eingebunden bekomme, oder ob es vielleicht sogar ein seperates Programm zur Handsteuerung bleibt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Motor Steuerung durch Sensoren Werte Zerebrator 14 383 12.06.2017 14:36
Letzter Beitrag: Franz54
  delay(...) im Code ok? donut 4 187 08.06.2017 20:16
Letzter Beitrag: donut
  Textdokument in Arduino Code umwandeln Tellen 9 325 03.06.2017 16:30
Letzter Beitrag: Tellen
  LED-RGB Steuerung mit IR-Fernbedienung Royal-mit-Käse 59 2.003 29.05.2017 22:00
Letzter Beitrag: Royal-mit-Käse
  TFT Pixel to Code oOSpikeOo 5 282 06.04.2017 18:49
Letzter Beitrag: Tommy56
  Infrarot zu RS232 für Steuerung DG0JG 71 2.080 13.03.2017 19:15
Letzter Beitrag: Tommy56
  Tri-State Code ?? Franz54 3 229 12.02.2017 19:23
Letzter Beitrag: Franz54
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 547 02.02.2017 12:16
Letzter Beitrag: Tommy56
  Infrarot zu RS232 für Steuerung DG0JG 2 240 08.01.2017 23:58
Letzter Beitrag: DG0JG
  Slider Steuerung, Programmierung blueblack 21 1.462 16.10.2016 22:31
Letzter Beitrag: blueblack

Gehe zu:


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