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
  Infrarot zu RS232 für Steuerung DG0JG 46 693 22.10.2016 11:35
Letzter Beitrag: hotsystems
  Slider Steuerung, Programmierung blueblack 21 622 16.10.2016 22:31
Letzter Beitrag: blueblack
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 123 14.10.2016 21:40
Letzter Beitrag: hotsystems
  Einfacher Tacho für niedrige Geschwindigkeiten – Code optimieren Bastelo 2 261 12.10.2016 20:31
Letzter Beitrag: Bastelo
  Code mit Verifikation über Keypad & LCD machnetz 5 216 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Wo kann ich hier noch Code spahren? (SPI-,Ethernet-,SD-,GSM-Library) avoid 4 384 05.06.2016 14:16
Letzter Beitrag: avoid
  Serial Monitor Eingabe über Code Maxi290997 4 523 12.05.2016 18:57
Letzter Beitrag: SkobyMobil
  Problem: RFID code mit Inhalt einer Textdatei auf einer SD Karte vergleichen MartinK 6 514 29.03.2016 16:45
Letzter Beitrag: MartinK
  OSC Arduino Code Fabian_Fabian 5 435 10.03.2016 23:23
Letzter Beitrag: hotsystems
  Hilfe bei Servo-steuerung Innocence 7 821 23.02.2016 11:00
Letzter Beitrag: hotsystems

Gehe zu:


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