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
Taster abfragen
25.02.2016, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2016 12:44 von Rudi.)
Beitrag #1
Taster abfragen
Hallo

Ich habe ein Programm zur Erfassung einer Regelstrecke geschrieben, welches bei der Betätigung eines Tasters und einer Distanz von >=200 cm losfahren und bei <= 100 cm anhalten. Die Werte lese ich über den Serial Monitor aus und Werte Sie in Excel aus.

Doch leider kommt der Startbefehl immer wieder und der PIN, an welchem der Taster sitzt, gibt auch dann eine 1 wenn ich nur den Draht einstecke.... ich habe deshalb beinahe immer eine 1 bei Start, unabhängig von der tatsächlichen Distanz... Der Fehler ist bestimmt klein oder offensichtlich aber irgendwie sehe ich den Wald vor lauter Bäumen nicht....Huh

Code:
[code]
#include <Servo.h>
#include <LiquidCrystal.h>

//init:
Servo power;
int Distanz = 0;
int Taster = 41;
int Start =0;

LiquidCrystal lcd (48, 49, 50, 51, 52, 53);

void setup() {
  // put your setup code here, to run once:
Serial.begin (9600);
pinMode (Taster, INPUT);
power.attach (13);
lcd.begin (16, 2);
power.writeMicroseconds (1520);
}

void loop() {
  // put your main code here, to run repeatedly:
Distanz = Distanzsensor (46); //Distanzwert aus Unterprogramm
Start = digitalRead (Taster);
delay (10); //debouncing

if ((Distanz >= 200) && (Start == HIGH)) //Losfahren bei Start 1 und Distanz >= 200
{
power.writeMicroseconds (2000); //Vollgas
digitalWrite (Start, HIGH);
}

if (Distanz <= 100)
{
power.writeMicroseconds (1520); //Stillstand Motor
digitalWrite (Start, LOW);
}

lcd.setCursor (0,1);
lcd.print ("Istwert : ");
lcd.print (Distanz);
lcd.print (" cm  ");

Serial.print (Distanz);
Serial.print (" ");
Serial.print (Start);
Serial.println ();
delay (1000);
}

long Distanzsensor(int Signalpin){

  long duration = 0.0;
  long cm = 0.0;
  
  pinMode (Signalpin, OUTPUT);
  digitalWrite (Signalpin, LOW);
  delayMicroseconds (2);
  digitalWrite (Signalpin, HIGH);
  delayMicroseconds (5);
  digitalWrite (Signalpin, LOW);

  pinMode (Signalpin, INPUT);
  duration = pulseIn(Signalpin, HIGH);

  cm = duration / 29 / 2; 

  return cm;
}
[/code]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 12:50 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2016 12:51 von hotsystems.)
Beitrag #2
RE: Taster abfragen
Vermutlich hast du keinen Pulldown-Widerstand eingesetzt.
Einfacher ist es, wenn du den Taster auf LOW abfragst und einen internen Pullup-Widerstand einsetzt.

Offene Eingänge am Arduino sind sehr störanfällig.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 13:42
Beitrag #3
RE: Taster abfragen
(25.02.2016 12:50)hotsystems schrieb:  Vermutlich hast du keinen Pulldown-Widerstand eingesetzt.
Einfacher ist es, wenn du den Taster auf LOW abfragst und einen internen Pullup-Widerstand einsetzt.

Offene Eingänge am Arduino sind sehr störanfällig.

Danke für deine schnelle Antwort Cool ein 10 KOhm Widerstand gegen Masse sorgt nun für ein sauberes Signal Sleepy konnte jetzt alles beheben :3
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 14:03
Beitrag #4
RE: Taster abfragen
(25.02.2016 13:42)Rudi schrieb:  
(25.02.2016 12:50)hotsystems schrieb:  Vermutlich hast du keinen Pulldown-Widerstand eingesetzt.
Einfacher ist es, wenn du den Taster auf LOW abfragst und einen internen Pullup-Widerstand einsetzt.

Offene Eingänge am Arduino sind sehr störanfällig.

Danke für deine schnelle Antwort Cool ein 10 KOhm Widerstand gegen Masse sorgt nun für ein sauberes Signal Sleepy konnte jetzt alles beheben :3

Ja, prima, das freut mich.

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
  Led Impuls beim Taster betätigen clemens5555 9 149 Heute 08:27
Letzter Beitrag: hotsystems
  Über drei Taster zwei externe Timer steuern Sidamo 23 288 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 333 07.01.2017 21:17
Letzter Beitrag: renid55
  Serial Output Buffer abfragen BennIY 5 75 05.01.2017 18:51
Letzter Beitrag: Tommy56
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 298 17.12.2016 13:30
Letzter Beitrag: Colby
  LED Zustand abfragen Nafetz 35 1.112 02.12.2016 10:09
Letzter Beitrag: hotsystems
  mehrere Taster entprellen Kitt 15 666 24.10.2016 21:17
Letzter Beitrag: georg01
  Byte Shiften und Bit abfragen.... comfan 4 225 02.09.2016 20:30
Letzter Beitrag: comfan
  Taster für mehrere Funktionen matthias3579 5 429 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 834 16.07.2016 11:43
Letzter Beitrag: Binatone

Gehe zu:


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