Re: max7311 Kategorie: Programmierung (von Rene Forster - 25.01.2013 19:11) | ||
Als Antwort auf Re: max7311 von Alfred - 21.01.2013 21:02 | ||
| ||
Hallo Alfred, ich denke nicht das dein Taster das Problem ist, sondern dein Programm. Wenn Du den Taster in Echt drückst, wird ein Eingangssignal von sagen wir einfach mal 0,5 sec erzeugt. Die 0,5 sec lassen wir einfach mal dahin gestellt. Da dein Programm in einer Schleife läuft, wird es wärend der 500 ms öfters an der Abfrage "ist Taster gedrückt" vorbei kommen. Und bei jedem vorbei kommen wird bei Dir geschaltet, deshalb das "flattern des Ausgangs. Und deshalb musst Du hier ansetzen, nur wenn das Eingangssignal von 0 auf 1 wechselt, dann wird etwas ausgeführt. Und nur dann. Von einer Verzögerung per sleep würde ich abraten, was willst Du denn da für eine Zeit nehmen. Der eine drückt Taster 0,3 sec, der andere 1,2 sec. Da müsstet Du grundsätzlich eine sehr hohe Zeit ansetzen, was aber das Programm ausbremst oder unkomfortabel macht. Rene > Hallo Rainer und Hallo Rene, > > ich glaube wenn der Taster prellt wird der Merker alleine nichts bringen, weil dann auch der Merker > mehr mals hin und her geschaltet, besser eine Verzögerung einbauen von 10-20ms. > Oder an dem Taster einen 100nF Kondensator parallel schalten. > Aber liegt es wirklich am prellen, über Bus??? > Wie sieht denn das Programm aus. > > Gru� Alfred > > > > Hallo Rainer, > > > > wenn ich deinen Post richtig verstehe, funktioniert schon alles, jedoch ist deine "Schaltung" > > noch nicht "entprellt". > > > > Nimm Dir doch softwaremä�ig einen Merker zur Hand, Zustand Merker 0 bei offenen > > Taster und Zustand Merker 1 bei gedrückten Taster. > > > > Dein Relais wird jedoch nur "umgeschaltet" wenn sich der Zustand des Merkers von 0 auf 1 > > wechselt. > > Also ist Taster gedrückt und Merker = 0, dann schalte Relais und setze Merker auf 1. > > Dann schaltet die ganze Sache nur einmal, weil Merker ist jetzt 1. > > Ist Taster offen, dann Merker = 0. > > Erst jetzt kann wieder der Taster gedrückt werden und wird ausgewertet. > > > > Ich hoffe ich habe die grundsätzliche Problematik richtig erklärt. > > > > Rene > > > > > > > Hallo, ich habe eine Frage zur Programmierung, > > > > > > folgende Situation, der Eingang des MAX7311 erhält einen Schalterimpuls und > > > soll ein Relais bei jedem drücken des Schalters aus oder einschalten wie bei > > > einem Stromsto�schalter z.Bsb.im Treppenhaus.Der MAX7311 läuft über den > > > I2C-Bus. Die Schaltausgabe soll relativ zügig sein < 2 s. Der Schaltimpuls > > > soll jedesmal nur einmal erfolgen, nur dann wenn der Taster gedrückt wird. > > > Auch wenn er länger gedrückt wird ! Bis jetzt schaltet das Relais ein paar > > > mal hin und her. > > > > > > Hat jemand da Erfahrungen. > > > > > > Vielen Dank für kreative Antworten. | ||
Antwort schreiben Antworten: Re: max7311 (von Alfred - 27.01.2013 16:58) Re: max7311 (von Rene Forster - 27.01.2013 17:58) |