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
  Taster als Schalter -> Blinker bino29 8 206 22.06.2017 07:21
Letzter Beitrag: hotsystems
Smile Motorsteuerung mit Taster Eggi123 11 600 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 483 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 482 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 657 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 640 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 836 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 1.019 07.01.2017 21:17
Letzter Beitrag: renid55
  Serial Output Buffer abfragen BennIY 5 401 05.01.2017 18:51
Letzter Beitrag: Tommy56
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 597 17.12.2016 13:30
Letzter Beitrag: Colby

Gehe zu:


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