-
Probleme mit Tastern
Hallo!
Bin ein neuer Asurobastler.
Zusammenbau hat soweit funktioniert, asuro hat selbsttest bestanden.
jetzt habe ich ein erstes kleines Programm geschrieben, bei dem er nachdem der Taster mit Wert 2 aktiv geht umdrehen soll und dann wieder vorwärts vor sich hinfahren soll.
Problem: Der Asuor dreht teilweise schon ohne hindernis um.
Kann das an den von den anderen beschriebenen Problemen mit den Tastern liegen oder habe ich im Programm einen Fehlen?
Bitte um Kontrolle
Code:
#include "asuro.h"
void main()
{
int zaehler;
Init();
while(1)
{
if (PollSwitch() == 2)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(100,200);
for(zaehler=0; zaehler < 800; zaehler++)
{
Sleep(255);
}
}
else
{
StatusLED (GREEN);
MotorDir(FWD,FWD);
MotorSpeed(120,120);
}
}
}
Danke
Mfg
Roland
-
Also ich finde keinen Fehler. Ich hab nur einen Vorschlag, nämlich du solltest die Asuro Lib benutzen, dann könntetst du zum Beispiel die Sleep-Schleife durch Msleep.
mfg liggi
-
Ich denke auch, dass kein Hardware-Fehler vorliegt. Ruf die Funktion PollSwitch() einfach mehrmals auf.
Code:
#include "asuro.h"
void main()
{
int zaehler;
Init();
while(1)
{
if (PollSwitch() == 2)
{
if(PollSwitch()==2)
{
if(PollSwitch()==2)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(100,200);
for(zaehler=0; zaehler < 800; zaehler++)
{
Sleep(255);
}
}}}
else
{
StatusLED (GREEN);
MotorDir(FWD,FWD);
MotorSpeed(120,120);
}
}
}
Durch das öftere Aufrufen wird der Kondi C7 entladen und liefert genauere Werte.
Gruß farratt
-
den kondensator kann man auch entfernen, seitdem geht bei mir alles. aber such mal ein wenig nach tastern im forum, da gibt es sehr viele ansätze. für den anfang reicht es meist schon die funktion mehrfach aufzurufen.
einfacher, als alles zu verschachteln, geht folgendes:
a=PollSwitch();
b=PollSwitch();
c=PollSwitch();
if((a == b)&(b == c)){ ....
-
werde bei gelegenheit mal einen kleineren Ko verwenden und das tau kleiner machen
-
-
tau ist IMHO die Zeitkonstante/Halbwertszeit
in diesem speziellem Fall wohl die des Kondensators, also ein kleinerer Kondensator
-
lol... ja ein kleinerer konsensator könnte wohl helfen. an dieses tau hab ich gar nicht gedacht =) ich habe ihn einfach nicht eingelötet, es geht perfekt.
-
tau ist die Zeitkonstante die sich aus RxC zusammensetzt.
Für mich stellt der Kondensator eine Buffer dar, falls sich etwas einkoppen sollte um den Eingang des IC´s zu schützen (eventuell EMV maßnahme???)
Aber Funktion hat dieser C wohl keine, da sich die Spannung die bei gedrücktem Taster sowieso aufgrund des Spannungsteilers zusammensetzt, außer dass bei loslassen des Tasters der Eingang nicht sofort auf "1" geht, oder hat da wer ne andere Idee??
-