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 Zustand abfragen Nafetz 35 874 02.12.2016 10:09
Letzter Beitrag: hotsystems
  mehrere Taster entprellen Kitt 15 524 24.10.2016 21:17
Letzter Beitrag: georg01
  Byte Shiften und Bit abfragen.... comfan 4 205 02.09.2016 20:30
Letzter Beitrag: comfan
  Taster für mehrere Funktionen matthias3579 5 353 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 758 16.07.2016 11:43
Letzter Beitrag: Binatone
  Schwellwert mit Taster ändern malsehen 16 1.414 12.04.2016 20:11
Letzter Beitrag: malsehen
  3 Schrittmotoren, 2 LED's 1 Taster cichla 0 393 31.03.2016 15:21
Letzter Beitrag: cichla
  Arduino Alarmanlage mit Taster erweitern Vengance 0 525 22.03.2016 17:54
Letzter Beitrag: Vengance
  Ein- u. Ausgänge abfragen magifix 0 391 07.01.2016 16:50
Letzter Beitrag: magifix
  digitalOutputpin mit Taster an- oder ausschalten Raptor 2 574 26.12.2015 20:59
Letzter Beitrag: torsten_156

Gehe zu:


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