Hallo,
ich weis ja nicht welche Controller du verwendest, könnte ein Initialisierungsfehler beim PinChange sein.
Wie gesagt der Controllertyp wäre hilfreich.
mfg ihle
Hallo,
ich weis ja nicht welche Controller du verwendest, könnte ein Initialisierungsfehler beim PinChange sein.
Wie gesagt der Controllertyp wäre hilfreich.
mfg ihle
Hallo,
erst mal danke. Arduino UNO atmega328, denke ich.
Hallo demwz,
also PIN2 ist PCINT16, PIN3 ist PCINT17 beide sind im gleichen Maskenregister PCMSK2 organisiert,
es könnte durchaus sein, dass sie sich gegenseitig stören. Versuchs doch mal mit PIN1 und PIN2
PIN1 ist im Maskenregister PCMSK1 du musst aber den PCINT1 im Kontrollregister zusätzlich freigeben.
Frage: warum misst du die Drehzahl nicht mit einem Timer über eine Torzeit?
mfg ihle
Unbelegte Eingänge sind sehr empfindlich, da reichen ggf. schon die Kapazitäten der Pins nebeneinander aus damit das Signal auch auf dem offenen Pin erscheint. Ein Widerstand von 470 K ist zu groß für ein sicheres Low, vor allem bei steilen Flanken.
Nachdem ich nun beide Pins mit einem Pulldown versehen habe scheint es zu funktionieren. Vorher hat schon das berühren des isolierten Kabels gereicht um den Eingang
Richtung HIGH wandern zu lassen. Schon Krass was es alles neues zu lernen gibt, wenn man sich mal wieder in die Niederungen der Bits begibt. Ein stabiles 1/0 an einer Lichtschranke abzugreifen hat mich jetzt 2 Abende gekostet.
Ich glaube Ihr werdet noch von mir hören bis bein Segway endlich mal aufsteht.
Tut mir leid, aber das ist nicht richtig. Der Threadersteller bezieht sich auf die Arduino Pin-Nummerierung, welche von der Arduino IDE (in der die Arduino Plattform meist programmiert wird ) verwendet wird. Arduino Pin 2 ist demnach PD2 (INT0) und Arduino Pin 3 ist PD3 (INT1). Der Code sieht nach meinem Verständnis korrekt aus. Möglicherweise kommt es allerdings wirklich wie von Besserwessi erwähnt zu einer Einkopplung des Signales auf den benachbarten Pin. Eventuell würde es helfen Pin 2 als Ausgang zu definieren und auf auf einen definierten Wert zu setzen.
Hallo Spectre,Tut mir leid, aber das ist nicht richtig
wusste ich nicht, ich hab mich am Datenblatt orientiert.
sorry
mfg ihle
In Erster Linie will ich gar nicht die Drehzahl sondern den Winkel des Motors (Rades mit 12-Loch-scheibe Maximale Drehzahl 5/s )bestimmen. Das ganze soll zunächst ein einfacher, mit 2 unabhängigen Rädern betriebener Roboter, der vielleicht einmal zum Segway aufsteht werden. Mir erscheint hier eine ISR am zuverlässigsten und auch am einfachsten. Trotzdem lese ich immer wieder Hinweise, dass ein Pollen der Lichtschranken unter Umständen günstiger ist. Ich kann das nicht nachvollziehen, weil ich dazu einen vergleichsweise teuren Algorithmus zur Flankenerkennung brauche im Gegensatz zu einem " n++" in einer ISR. Oder gibt es Aspekte, die ich möglicherweise noch nicht auf dem Schirm habe?
Das Ding soll ja zwei Räder haben, dementsprechend brauche ich zwei Interrupts und 2 ISR. Was passiert eigentlich wenn die sich übernschneiden?
schönen Feiertag noch.
Lesezeichen