Probleme mit den digitalen Pins

Hallo miteinander,
ich habe ein Problem mit den Nutzen der digitalen Pins als Input. Wenn ich irgendeinen Pin als Output nutze bekomme ich meine 5V. Wenn ich aber einen als Input deklariere und 5V/20mA darauf gebe wird dieser im Programm nicht erkannt und ich habe auch keine Eingangsspannung. Meine Spannungsversorgung liefert die gewünschte Spannung, wenn ich diese an einen Ground anschließe. Ich arbeite erst seit kurzem mit Arduino und nutze einen Mega 2560 R3. Weis jemand von euch was ich falsch mache oder ob der Arduino kaputt ist? Vielen Dank schon mal im voraus.

Sicherlich. Wir sehen ja genau auf deinen Arbeitsplatz. Du hast etwas falsch verkabelt. Mit etwas Glück ist der Mega noch nicht kaputt.

Also einen Button liest du so aus:
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button

Bau das mal exakt nach.
Reagiert der Eingang?
Wenn nicht,

  • poste deinen Schaltplan - kann auch eine Papierzeichnung sein.
  • poste ein Klares Bild von deinem Aufbau aus dem wir wirklich jedes Kabel - jedes Element eindeutig erkennen.
  • Poste deinen Sketch in Code Tags.
  • Poste die Ausgabe der Seriellen Schnittstelle in Code Tags.

Sollte es wider erwarten wirklich nicht funktionieren, braucht es diese 4 Punkte um dir weiter helfen zu können.

Das ist ja normal, alle Module brauchen ein gemeinsames Bezugspotential, meist Gnd. Es heißt nicht umsonst Stromkreis.

5V ist okay, 20mA nicht. Von hier aus läßt sich nicht feststellen, was Du (noch) nicht verstanden hast.

Ich weiß zwar nicht, wie du das mit den 20mA machst, aber bei 5Volt hast du ein HIGH am Eingang. Gibst du GND drauf ist das LOW. Das kannst du mit digitalRead einlesen.
Beispiele dazu findest du in der IDE.

Ich kann leider keine Anhänge verschicken, da ich mich erst vor kurzem angemeldet habe und ich anscheinend deshalb keine schicken kann. Aber mein vorheriger aufbau war mit einem 5v Netzteil->Schalter->10kohm Widerstand->und dann auf einen Pin.
Beim Code soll er bei einem Eingangssignal soll serial.print("Hi"); und bei else serial.print("bye");. Und ich habe es so aufgebaut wie bei deinem Link allerdings bekam ich dauerhaft ein Signal, selbst beim Loslassen oder drücken des Tasters.

Ich habe mich verschrieben ich habe 2mA gemeint.

Dann hast du immer 5Volt (HIGH) am Pin. Du musst den Widerstand auf einer Seite am Pin, auf der anderen Seite gegen GND schalten.
Dann ist bei gedrücktem Taster HIGH, losgelassen LOW am Pin.

Auch das macht keinen Sinn, da der Eingang sehr hochohmig ist.
Du solltest dir die Grunlagen besser noch einmal durchlesen.

Ich habe mich oben verschrieben und meinte 2mA. Allerdings weis ich nicht weshalb ich keine Spannung habe wenn ich es auf einen Eingang leite. Da ich mich erst vor kurzem Registriert habe kann ich keine Dateien(Bilder oder Code) hochladen.

Dann fehlt mindestens GND

                 300ohm
                 -----
PIN2 Arduino #---|   |--+--- # +5V Netzteil
                 -----  |   
                       | |
                       | | 10Kohm
                       | |
                        |
GND Arduino  #----------+--- # GND (-) Netzteil

Ich habe es jetzt mal so Aufgebaut.
Code:
pinMode (3, INPUT);
pinMode(4,OUTPUT);

If (digital.read(3,HIGH))
{digitalWrite(4,HIGH);}
else
{digitalWrite(4,LOW);}

Allerdings habe ich dauerhaft ein HIGH Signal auch wenn ich nichts an Pin3 angeschlossen habe.

Das ist nicht ungewöhnlich.
Las mal Dein Netzteil und das ganze drumrum extern weg.
Steck mal ein Kabel auf dem Arduino von GND auf den PIN3
Noch immer HIGH?

Setze deine Sketche bitte in Code-Tags. Im Editor der Button </>.
Und so liest man keine Pins.
Das geht so:
int Value = digitalRead(3);

Bitte sieh dir die Beispiele in der IDE an !!

Pin 3 hab ich an GND angeschlossen und habe auch mal das Kabel von pin 6 weggemacht und habe immernoch ein HIGH Signal. Momentan habe ich auch mein Netzteil nicht in gebrauch sondern nehme die vom Arduino.

Wo er recht hat.
@gowithmag Machen!
Alternativ if (digitalRead(3) == HIGH)

#define Eingang 6
#define Ausgang 3

int Value = digitalRead(Ausgang);

void setup() {
pinMode (Ausgang, OUTPUT);
pinMode (Eingang, INPUT);
Serial.begin(9600);
}

void loop() {
if(Value == HIGH)
{
Serial.print("HI");
digitalWrite(Ausgang,HIGH);
}
else{
  
  Serial.print("Bye");
  digitalWrite(Ausgang,LOW);
}
}

ich habe es auch mit if(digitalRead(Ausgang)==HIGH) getestet. Jetzt habe ich ein LOW Signal wenn Pin6 im LOW oder HIGH zustand ist.

Oh.....man!
Warum siehst du dir nicht endlich mal die Beispiele in der IDE an, oder sollen wir dir immer alles vorlesen/vorkauen ?

Ich hab diese schon gemacht und deshalb bin ich hier. Ich werde es selber nochmal versuchen und mich besser erkundigen. Trotzdem danke für eure hilfe.

Überleg mal, wo im Sketch bzw. wie oft Du jetzt den Eingang liest und wo bzw. wie oft das eigentlich passieren sollte.