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
MultibleDigital Input
11.01.2016, 22:20
Beitrag #1
MultibleDigital Input
HalloSmile
ich bin absoluter Anfänger und habe mir für ein Schulprojekt vor ein paar Tagen den Arduino UNO bestellt.
Nun sind wir so weit dass wir mithilfe eines Beispielprogramms die LED zum leuchten gebracht haben. (Digital input). Allerdings wollen wir das Programm so schreiben, dass die LED beim berühren mehrerer digitalen Schnittstellen leuchtet. (Bsp. Digital2, Digital4 und Digital6). Allerdings leuchtet trotzdem die LED nur bei Verbindung von GND und Digital2.
Die 2. Frage wäre, ob es möglich ist, das Leuchten der LED nicht mit 0 und 1 auszugeben, sondern den Kontakt mit Serial.println einen Buchstaben oder ein Wort ausgeben lassen kann. Am besten am seriellen Monitor.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 07:48
Beitrag #2
RE: MultibleDigital Input
Zeige uns doch deinen bisherigen Code und das Schaltbild wie du es in Funktion haben möchtest.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 13:45 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2016 16:30 von Nieda.)
Beitrag #3
RE: MultibleDigital Input
PHP-Code:
void setup() {
  
//start serial connection
  
Serial.begin(9600);
  
//configure pin2 as an input and enable the internal pull-up resistor
  
pinMode(2INPUT_PULLUP);
  
pinMode(4INPUT_PULLUP);
  
pinMode(6INPUT_PULLUP);
  
pinMode(13OUTPUT);

}

void loop() {
  
//read the pushbutton value into a variable
  
int sensorVal digitalRead(2);
 
//print out the value of the pushbutton
 
Serial.println(sensorVal);


    
//read the pushbutton value into a variable
  
int sensor digitalRead(4);
  
//print out the value of the pushbutton
  
Serial.println(sensor);

    
//read the pushbutton value into a variable
  
int sensorValue digitalRead(6);
  
//print out the value of the pushbutton
  
Serial.println(sensorValue);

  
// Keep in mind the pullup means the pushbutton's
  // logic is inverted. It goes HIGH when it's open,
  // and LOW when it's pressed. Turn on pin 13 when the
  // button's pressed, and off when it's not:
  
if (sensorVal == HIGH) {
    
digitalWrite(13LOW);
  } else {
    
digitalWrite(13HIGH);
  } 


  if (
sensor == HIGH) {
    
digitalWrite(13LOW);
  } else {
    
digitalWrite(13HIGH);
  } 


  if (
sensorValue == HIGH) {
    
digitalWrite(13LOW);
  } else {
    
digitalWrite(13HIGH);
  } } 






Bei diesem Quelltext leuchtet die LED allerdings nur bei DIGITAL2, jedoch habe ich das Programm etwas verändert und der serielle Monitor kann jetzt anstatt der leuchtenden LED für alle drei Verbindungen ( GND-DGT2, GND-DGT4, GND-DGT6) je ein verschiedenes Wort ausgeben (Serial.println). Das bringt mich an sich weiter als der vorherige Quelltext.

[/quote]Nun eröffnet sich aber die Frage, wie man die einzelnen Signale aneinanderreihen kann, Beispiel: Zuerst GND-DGT2 anschließend GND-DGT4 , und diese aufeinanderfolgende Kombination soll dann zum Beispiel einen Buchstaben im seriellen Monitor anzeigen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 14:39
Beitrag #4
RE: MultibleDigital Input
Setze bitte den Sketch in Code-Tags (Schaltfläche #), dann ist dieser besser zu lesen und wenn nötig einfacher zu bearbeiten.

Was meinst du mit aneinander reihen?
Die Tasten nacheinander oder gleichzeitig drücken?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 15:57
Beitrag #5
RE: MultibleDigital Input
Sorry habe ich nicht gewusst, wird beim nächsten mal gemacht ;-)

naja, nacheiinander drücken funktioniert ja mitlerweile.
Aber ich möchte z.B. die ersten beiden Werte speichern und dann erst durch die Kombination von 2 oder 3 Werten ein Ergebnis (Buchstabeoder Wort) ausgeben lassen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 16:13
Beitrag #6
RE: MultibleDigital Input
Du kannst den Code auch nachträglich noch entsprechend anpassen.

Die gewünschte Funktion erreichst du, wenn du die gedrückte Taste in einer Variable speicherst und am Ende den Inhalt der Variablen abfragst. Hierzu benötigst du allerdings eine weitere Taste zu Bestätigung dass die Eingabe beendet ist.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 19:13 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2016 19:22 von Nieda.)
Beitrag #7
RE: MultibleDigital Input
(12.01.2016 16:13)hotsystems schrieb:  Du kannst den Code auch nachträglich noch entsprechend anpassen.

Die gewünschte Funktion erreichst du, wenn du die gedrückte Taste in einer Variable speicherst und am Ende den Inhalt der Variablen abfragst. Hierzu benötigst du allerdings eine weitere Taste zu Bestätigung dass die Eingabe beendet ist.

Wird die Eingabe nicht automatisch beendet, wenn kein Kontakt mehr vorhanden ist bzw wenn der "Schalter" nicht gedrückt ist ?

Und ist mein Quelltext dafür brauchbar, die gedrückte taste in einer Variable zu speichern ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2016, 19:50 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2016 20:14 von hotsystems.)
Beitrag #8
RE: MultibleDigital Input
Das mit dem Sketch sieht jetzt gut aus.

Deinen Sketch kannst du auch für die Erweiterung mit den Variablen nutzen.

Das mit den Tastern ist schon richtig, funktioniert aber nur, wenn die Tasten gleichzeitig gedrückt werden müssen.
Sobald die Tasten nacheinander gedrückt werden geht es schief, da du ja mal 2 oder 3 drücken möchtest und das weiß der Code ja nicht.

Du kannst deinen Sketch auch optimieren, wenn du die "if-Abfragen" zusammenfügst.

Z.B.
Code:
if (sensor1 == HIGH ||  sensor2 == HIGH || sensor3 == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Altes Handy als Arduino Input evil76 2 2.481 17.07.2014 21:18
Letzter Beitrag: evil76

Gehe zu:


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