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
Signal aus Fingerabdruckscanner als Eingangssignal
03.07.2014, 19:23
Beitrag #1
Signal aus Fingerabdruckscanner als Eingangssignal
Liebe Arduinogemeinde,
ich stehe vor einem Problem, mit dem ich mich als Arduinoneuling schon seit ein paar Wochen herumärgere.
Ich habe einen Fingerabdruckscanner, der an mein Arduinoboard angeschlossen ist. Sobald ein Finger auf den Scanner gelegt wird, gibt der Scanner für ein paar hundert Millisekunden ein 3-4Volt Signal aus. Ich habe ihn an den digitalen Eingang 7, den ich auch als Input definiert habe, angeschlossen.
Das Signal wird von dem Arduino erkannt.
Obwohl das Signal nur kurz aus dem Fingerabdruckscanner kommt, bleibt der "buttonCurState", auf "HIGH". Meine Versuche ihn über DigitalWrite(buttonCurState, false) zurückzusetzen haben nicht geklappt. Welche andere Möglichkeit habe ich, den "buttonCurState" wieder zurückzusetzen, um ihn anschließend erneut abzufragen und eine andere Aktion auszuführen?
Siehe Code:



int fingerprint = 7;
int relay2 = 2;
int relay3 = 3;
int condition = 0;
boolean buttonCurrState = false;
void setup()
{

pinMode(fingerprint, INPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);

}
void loop()
{
buttonCurrState = digitalRead (fingerprint);

if(buttonCurrState==true && condition==0 )
{

digitalWrite(relay2, HIGH);

condition=1;
digitalWrite(buttonCurrState, false);
}
else if(buttonCurrState==true && condition==1)
{
delay(500);
digitalWrite(relay3,HIGH);
digitalWrite(relay2, LOW);
condition=0;
}

}


Vielen Dank für eure Hilfe!
Gruß,
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.07.2014, 20:01
Beitrag #2
RE: Signal aus Fingerabdruckscanner als Eingangssignal
Hi,
das hier:
Code:
digitalWrite(buttonCurrState, false);
Tut wahrscheinlich gar nichts sinnvolles. Wahrscheinlich versucht es "LOW" auf Pin 255 auszugeben. buttonCurrState wird als Pin-Nummer interpretiert und ist in dem Moment gerade auf HIGH, was als int glaube ich 255 ist.

Ich denke, Du hast da ein ganz anderes Problem. Wenn buttonCurrState HIGH wird, dann laeuft Dein Coding erstmal durch den ersten Ast des if. Beim naechsten durchlauf von loop() sind aber nur ein paar Mikrosekunden vergangen und sofort wird auch der andere Ast des if durchlaufen. Dann wartet das System erstmal eine halbe Sekunde um dann die beiden Relais zu schalten. Das sieht dann so aus, als ob das Signal immer noch anliegt, was es aber wahrscheinlich nach den 500ms nicht mehr tut.

Eine unsaubere, aber moeglicherweise funktionierende Variante waere, das delay() dort hinzuverschieben, wo jetzt das "digitalWrite(buttonCurrState, false);" steht. Dann wartet das System bein Einschalten (?) erstmal und macht den Rest dann nur, wenn nach einer halben Sekunde nochmal oder immer noch der Pin HIGH wird.

Eine richtig gute Loesung wirst Du wahrscheinlich nur hinbekommen, wenn Du das delay() komplett vergisst und den Fingerabdruckscanner wie einen Taster behandelst. D.h. das ganze entprellen und nur bei einer echten ansteigenden Flanke schalten.

Gruss,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2014, 12:38
Beitrag #3
RE: Signal aus Fingerabdruckscanner als Eingangssignal
Hi Thorsten,

vielen Dank für deine schnelle Antwort!
Ich habe das "delay" umgesetzt, wie du es vorgeschlagen hast und konnte das Problem damit lösen.Wink
Dankeschön und schönes Wochenende!

Gruß,
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino/Nano 3 Phasen Signal PWM erzeugen nuernie88 10 831 04.07.2017 19:26
Letzter Beitrag: Franz54
  IR Signal Clonen/auswerten raubein01 6 482 23.04.2017 02:05
Letzter Beitrag: uxomm
  PWM Signal imitieren Marc2014 5 511 15.10.2016 11:34
Letzter Beitrag: Binatone
  PWM-Signal Ben-g 9 1.414 21.04.2016 13:09
Letzter Beitrag: Ben-g
  433 Mhz Signal von Garagentor Fernbedieung einlesen Much 6 2.143 07.02.2016 10:45
Letzter Beitrag: Binatone
  DMX Signal mit Arduino empfangen, aber wie? mat21his 4 1.447 28.01.2016 16:20
Letzter Beitrag: ardu_arne
  PWM-Signal PC-Lüfter scritch 1 809 03.01.2016 21:23
Letzter Beitrag: Bitklopfer
  Anfängerhilfe: Piezo-Signal auslesen/kopieren Koregan 9 1.559 31.12.2015 08:40
Letzter Beitrag: Bitklopfer
  Ir Signal bei High gronph 7 1.144 01.11.2015 18:49
Letzter Beitrag: gronph
  GPS Signal jeden Kilometer b3ta 8 1.349 26.10.2015 10:49
Letzter Beitrag: Scherheinz

Gehe zu:


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