pinMode(OUTPUT/INPUT);

OP #4112974
Lesenswert?

Hallo zusammen, ich versteh den Zusammenhang zwischen pinMode(); und 
digitalWrite(); nicht, genauer gesagt wie verhält sich das Programm, 
wenn ich pinMode(pin 2, OUTPUT); im void setup definiere und 
anschließend in der loop dann die Funktion digitalWrite(pin 2, HIGH oder 
LOW); schreibe und genau das gleiche mit pinMode(pin 2, INPUT); wie 
verhalten sich HIGH und LOW jeweils zu INPUT oder OUTPUT ?
Hier ein Programmabschnitt den ich nicht mehr versteh
1
void setup() {
2
  pinMode (HCSR04_SchallPin, OUTPUT);
3
  pinMode (HCSR04_EchoPin, INPUT);
4
...
5

6
{
7
  Robot.digitalWrite(HCSR04_SchallPin, HIGH);
8
  delayMicroseconds(10);   
9
  Robot.digitalWrite(HCSR04_SchallPin, LOW);      
10
  Dauer = pulseIn(HCSR04_EchoPin, HIGH);
11
  Dauer = Dauer/2;
12
  Entfernung = Dauer / 29;          
13
}
Persönliche Seite #4112978
Lesenswert?

Soweit ich mich erinnern kann, bedeutet INPUT übersetzt "Eingang". An 
einem Eingang kann man keinen Ausgangszustand setzen.

Ich kenne Arduino nicht, und weiß daher nicht, ob das Schreiben an einen 
Eingang trotzdem funktioniert - in diesem Fall würde aber nur der Pullup 
ein- bzw ausgeschaltet. Das kann man für einige Anwendungsgebiete aber 
auch gebrauchen.

Es kann aber auch sein, dass ich Deine Frage nicht ganz verstehe.
Gast #4112989
Lesenswert?

void setup() {
  pinMode (HCSR04_SchallPin, OUTPUT);   Dieser PIN ist ein Ausgang
  pinMode (HCSR04_EchoPin, INPUT);      Dieser PIN ist ein Eingang
...

{
  Robot.digitalWrite(HCSR04_SchallPin, HIGH);  Ausgang=1 setzten
  delayMicroseconds(10);                       10us warten
  Robot.digitalWrite(HCSR04_SchallPin, LOW);   Ausgang=0 setzen
  Dauer = pulseIn(HCSR04_EchoPin, HIGH);       Am Eingangspin Pulsdauer 
messen

  Dauer = Dauer/2;
  Entfernung = Dauer / 29;
}
Gast #4112991
Lesenswert?

Hallo Daniel,

ich gehe mal davon aus, dass du von einem Arduino redest...

Mit pinMode() legst du fest, ob der Pin als Eingang oder Ausgang 
verwendet werden soll, also ob er z.B. eine LED schalten soll (-> 
Ausgang, OUTPUT) oder ob du z.B. abfragen möchtest, ob eine LED (welche 
über einen Taster o.ä. geschalten wird) an ist oder nicht (-> Eingang, 
INPUT).

digitalWrite() brauchst du i.d.R. wenn du den Pin als Ausgang definierst 
und seinen Zustand ändern möchtest (HIGH = 5V bzw. LOW = 0V).

Wenn du den Pin als Eingang festgelegt hast, kannst du mit digitalRead() 
den Zustand abfragen (Rückgabewert 1 bedeutet HIGH, 0 heißt LOW).

In deinem Codebeispiel wird der HCSR04_SchallPin auf 5V Ausgangsspannung 
gesetzt und nach 10 Mikrosekunden wieder auf 0V ("ausgeschaltet").

Ich hoffe, dass es etwas weiter hilft :)

Gruß,
Sam

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren