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
Hilfe zur Programierung
22.02.2014, 09:37
Beitrag #1
Hilfe zur Programierung
Hallo ich bin neu bei Arduino.

Ich habe mir mit TTL eine Schaltung erstellt und wollte diese nun in eine Arduino-Platine umsetzen.
mein Problem ist das ich nicht weiß wie ich dem Arduino beibringen kann das 1 mal der Pin1 ein Ausgang und ein anderesmal ein Eingang ist.
Dies ist auch niht gleichzeitig sondern nach einander siehe Bericht.
Geht das überhaupt irgendwie?

Gruß an Alle

//Durchgangsprüfer

int EingangPin1 = 1;
int EingangPin2 = 2;
int EingangPin3 = 3;
int EingangPin4 = 4;
int EingangPin5 = 5;
int EingangPin6 = 6;
int EingangPin7 = 7;
int EingangPin8 = 8;
int LedPin9 = 9;
int LedPin10 = 10;


//Kanal 1-2
void setup() {
pinMode (EingangPin1, OUTPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, INPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, INPUT);
pinMode (EingangPin6, INPUT);
pinMode (EingangPin7, INPUT);
pinMode (EingangPin8, INPUT);
pinMode (LedPin9, OUTPUT);
pinMode (LedPin10, OUTPUT);

}
void loop(){
digitalWrite(1,HIGH);
if ((digitalRead(EingangPin1)&&digitalRead(EingangPin2)==HIGH)&&(digitalRead(EingangPin3)&&(EingangPin4)&&(EingangPin5)&&(EingangPin6)&&(EingangPin7)&&(EingangPin8)==LOW))


{ digitalWrite(9, HIGH);
}
else { digitalWrite (9, LOW);
}
}
/ END1


void setup() {
pinMode (EingangPin1, INPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, OUTPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, INPUT);
pinMode (EingangPin6, INPUT);
pinMode (EingangPin7, INPUT);
pinMode (EingangPin8, INPUT);
pinMode (LedPin9, OUTPUT);
pinMode (LedPin10, OUTPUT);

}
void loop(){
digitalWrite(3,HIGH);
if ((digitalRead(EingangPin3)&&digitalRead(EingangPin4)==HIGH)&&(digitalRead(EingangPin1)&&(EingangPin2)&&(EingangPin5)&&(EingangPin6)&&(EingangPin7)&&(EingangPin8)==LOW))


{ digitalWrite(9, HIGH);
}
else { digitalWrite (9, LOW);
}
}
END2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2014, 10:23
Beitrag #2
RE: Hilfe zur Programierung
Moin Stich73,
meinst du mit
Zitat:wie ich dem Arduino beibringen kann das 1 mal der Pin1 ein Ausgang und ein anderesmal ein Eingang ist.
das feststellen ob der Pin Input oder Output ist, oder das setzen des Pins?
Zum setzen gibts halt PinMode.
Um zu erfahren ob Pin 1 Input/Output ist kannst du die Konstante DDRD benutzen.
DDR - hat nix mit der Geschichte zu tun Smile , sondern ist das DataDirectionRegister.
DDRD - digital 0 - 7
DDRC - analog 0 -5
DDRB - digital 8 - 13
Die gebrauchte Konstante legst du auf eine Variable und wertest diese mit Bit(n) aus.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2014, 10:35
Beitrag #3
RE: Hilfe zur Programierung
OK das Verstehe ich nicht so wirklich.
Ich Erkläre mal ich möchte 1X auf Pin 1 Ausgangssignal 5V dann Abfragen ob bei Pin2 Eingang 5V ankommen, und wenn auf 3-8 auch 5V ankommen dann LED aus.
Nächster schritt Signal 5V soll auf Pin3 rausgehen und auf 4 solltes zurückkommen und wenn auf 1-2oder5-8 ein Signal kommt dann immernoch LED aus. usw.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2014, 15:17 (Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2014 15:18 von rkuehle.)
Beitrag #4
RE: Hilfe zur Programierung
Hallo Stich73,
Zitat: das ich nicht weiß wie ich dem Arduino beibringen kann das 1 mal der Pin1 ein Ausgang und ein anderesmal ein Eingang ist....

Ich Erkläre mal....
Mein Glück, das erspart mir den Weiterbildungskurs in Sprachdeutung Big Grin
Wenn ich dich beim Wort nehme dann könnte das so aussehen:
Code:
// variablen
int EPin1 = 1;
int EPin2 = 2;
int EPin3 = 3;
int EPin4 = 4;
int EPin5 = 5;
int EPin6 = 6;
int EPin7 = 7;
int EPin8 = 8;
int LPin9 = 9;
int LPin10 = 10;
//Kanal 1-2
void setup() {

  pinMode (LPin9, OUTPUT);
  pinMode (LPin10, OUTPUT);
}
void loop(){
  pinMode (EPin1, OUTPUT);
  pinMode (EPin2, INPUT);
  pinMode (EPin3, INPUT);
  pinMode (EPin4, INPUT);
  pinMode (EPin5, INPUT);
  pinMode (EPin6, INPUT);
  pinMode (EPin7, INPUT);
  pinMode (EPin8, INPUT);
  //  1X auf Pin 1 Ausgangssignal 5V
  digitalWrite(EPin1,HIGH);
  // dann Abfragen ob bei Pin2 Eingang 5V ankommen,
  if (digitalRead(EPin2)==HIGH)
  {
    // und wenn auf 3-8 auch 5V ankommen
    if (digitalRead(EPin3)== HIGH && digitalRead(EPin4) == HIGH && digitalRead(EPin5) == HIGH && digitalRead(EPin6) == HIGH && digitalRead(EPin7) == HIGH && digitalRead(EPin8) ==HIGH )
    {
      // dann LED aus.
      digitalWrite(9,LOW);
      goto ende;
    }
  }
  // Nächster schritt
  pinMode (EPin1, INPUT);
  pinMode (EPin2, INPUT);
  pinMode (EPin3, OUTPUT);
  pinMode (EPin4, INPUT);
  pinMode (EPin5, INPUT);
  pinMode (EPin6, INPUT);
  pinMode (EPin7, INPUT);
  pinMode (EPin8, INPUT);
  // Signal 5V soll auf Pin3 rausgehen
  digitalWrite(EPin3,HIGH);
  // und auf 4 solltes zurückkommen
  if (digitalRead(EPin4)==HIGH)
  {
    // und wenn auf 1-2 oder 5-8 ein Signal kommt dann immernoch LED aus.
    if ((digitalRead(EPin1)== HIGH && digitalRead(EPin2) == HIGH) || (digitalRead(EPin5) == HIGH && digitalRead(EPin6) == HIGH && digitalRead(EPin7) == HIGH && digitalRead(EPin8) ==HIGH ))
    {
      digitalWrite(9,LOW);
    }
  }
ende:
;
}

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2014, 19:17
Beitrag #5
RE: Hilfe zur Programierung
Danke,
ich habe das mal so mit meinen Verständniss in die Anweisung gebracht.
Kurze Frage geht der digitalWrite der jeweiligen Abfrage nach ende der Abfrage oder beim Start der nächsten von allein auf LOW?

//Durchgangsprüfer

int EingangPin1 = 1;
int EingangPin2 = 2;
int EingangPin3 = 3;
int EingangPin4 = 4;
int EingangPin5 = 5;
int EingangPin6 = 6;
int EingangPin7 = 7;
int EingangPin8 = 8;
int LedPin9 = 9;
int LedPin10 = 10;


//Kanal 1-2
void setup() {
pinMode (LedPin9, OUTPUT);
pinMode (LedPin10, OUTPUT);

}
void loop(){
pinMode (EingangPin1, OUTPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, INPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, INPUT);
pinMode (EingangPin6, INPUT);
pinMode (EingangPin7, INPUT);
pinMode (EingangPin8, INPUT);
digitalWrite(1,HIGH);
if ((digitalRead(EingangPin1)==HIGH&&digitalRead(EingangPin2)==HIGH)&&(digitalRead(EingangPin3)==LOW||(EingangPin4)==LOW||(EingangPin5)==LOW||(Ein​gangPin7)==LOW||(EingangPin6)==LOW||(EingangPin8)==LOW))


{ digitalWrite(9, HIGH);
delay(1000);
}
else { digitalWrite (10, HIGH);
delay(3000);
}

// END1


//Kanal3-4
pinMode (EingangPin1, INPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, OUTPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, INPUT);
pinMode (EingangPin6, INPUT);
pinMode (EingangPin7, INPUT);
pinMode (EingangPin8, INPUT);
digitalWrite(3,HIGH);
if ((digitalRead(EingangPin3)==HIGH&&digitalRead(EingangPin4)==HIGH)&&(digitalRead(EingangPin1)==LOW||(EingangPin2)==LOW||(EingangPin5)==LOW||(Ein​gangPin7)==LOW||(EingangPin6)==LOW||(EingangPin8)==LOW))


{ digitalWrite(9, HIGH);
delay(1000);
}
else { digitalWrite (10, HIGH);
delay(3000);
}

//END Kanal 4-5

//Kanal5-6
pinMode (EingangPin1, INPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, INPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, OUTPUT);
pinMode (EingangPin6, INPUT);
pinMode (EingangPin7, INPUT);
pinMode (EingangPin8, INPUT);
digitalWrite(5,HIGH);
if ((digitalRead(EingangPin5)==HIGH&&digitalRead(EingangPin6)==HIGH)&&(digitalRead(EingangPin1)==LOW||(EingangPin2)==LOW||(EingangPin3)==LOW||(Ein​gangPin4)==LOW||(EingangPin7)==LOW||(EingangPin8)==LOW))


{ digitalWrite(9, HIGH);
delay(1000);
}
else { digitalWrite (10, HIGH);
delay(3000);
}

//END Kanal 5-6


//Kanal7-8
pinMode (EingangPin1, INPUT);
pinMode (EingangPin2, INPUT);
pinMode (EingangPin3, INPUT);
pinMode (EingangPin4, INPUT);
pinMode (EingangPin5, INPUT);
pinMode (EingangPin8, INPUT);
pinMode (EingangPin7, OUTPUT);
pinMode (EingangPin8, INPUT);
digitalWrite(7,HIGH);
if ((digitalRead(EingangPin7)==HIGH&&digitalRead(EingangPin8)==HIGH)&&(digitalRead(EingangPin1)==LOW||(EingangPin2)==LOW||(EingangPin3)==LOW||(Ein​gangPin4)==LOW||(EingangPin5)==LOW||(EingangPin6)==LOW))


{ digitalWrite(9, HIGH);
delay(1000);
}
else { digitalWrite (10, HIGH);
delay(3000);
}


// END Kanal 7-8

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 122 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 235 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 249 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 287 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 453 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 181 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 547 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 459 05.06.2016 11:28
Letzter Beitrag: rpt007
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 535 23.04.2016 10:26
Letzter Beitrag: rkuehle
  Hilfe bei RTC und SD baron007 21 1.590 13.03.2016 17:36
Letzter Beitrag: hotsystems

Gehe zu:


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