PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit dem Port A / der Auswertung von +5V



gttoxiclt2
05.03.2008, 09:07
Zuvor: Tschuldigung für die schlechte Fragestellung im Topic. Wußte nicht, wie ich es besser beschreibe.

Problem: Ich will mit einem Relais/Optokoppler ein Programm auf der RN Control auslösen.

Dazu wollte ich eigtl. Pin A.4 ---Relais---GND verbinden. So zeigt mir die Print Ausgabe vom mega32-test-programm korrekt, den Wechsel am Pina.4 zwischen High/Low an, je nachdem ich das Relais anspreche von extern her oder nicht.

Als weiteren Testschritt (bin noch Anfänger O:) ) hab ich die Soundausgabe benutzt und zum einfacheren Testen nen Taster der beide Pins (A.x und GND) verbindet.
Taster gedrückt - Sound kommt. Nicht gedrückt - Ruhe. So wie ichs will.

Nur im richtigen Programm, was ich eigentlich schreibe, geht so überhaupt nichts.
Wenn ich die Abfrage mit

If pind.2 = 1 and pina.4 = 0 then
...
...


mache, geht gar nichts!

Selbst wenn ich den Schrittmotor nur allein ansteuere mit pina.4 läuft nix los. Verstehe das nicht mehr. Hab schon fieberhaft gesucht im Forum und im Wissenbereich, aber ich finde keinerlei Info´s wie man ganz einfach eine anliegende Spannung (idealerweiße die 5V vom Board selbst) anspricht und auswertet.
Ne Fotodiode hatte ich auch schon am Port A, die zeigt auch korrekt die analoge Spannungsänderung an.
Aber ich müßte doch den Pin, wo das Relais dran hängt, digital auswerten, oder lieg ich da völlig falsch???

Danke für die Hilfe & Achtung Anfänger!

radbruch
05.03.2008, 10:13
Hallo

Ich bin etwas verwirrt. Was ist denn wie am Portd.2 angeschlossen? Sind beide Pins als Eingang definiert? Läuft der Schrittmotor wenn du ihn ohne die IF-Abfrage steuerst?

Ich habe mir die Schaltpläne angeschaut (vom RN-Control14 (http://www.robotikhardware.de/download/rncontrol14.pdf)), es sind weder Porta.4 noch Portd.2 extern beschaltet. Wenn du die Pins mit dem Schalter/Relais gegen GND schaltest brauchst du noch einen Widerstand zu 5V um bei nicht gedrücktem Taster sicher ein High am Pin zu haben. Entweder der interne PullUp oder einen externen (ca. 4,7-10K) Widerstand?

Gruß

mic

gttoxiclt2
05.03.2008, 10:31
Hi.


Dank der Forumsüberlastung gerade, bin ich im Wissensbereich auf etwas gestoßen, wo ich vorher gar nicht hingeschaut habe. Den AVR Einsteiger-steckbrett-Kurs 8-[

Damit, also der einfachen Auswertung eines Tasters gings auch O:)

Dann die Übertragung ins eigene Programm und es geht auch, allerdings mit seltsamen Störung. (dazu mehr weiter unten)

Also an d2 ist ein Näherungssensor verbaut. Der gibt ein high ab, wenn der Magnet in der Nähe. Funktioniert soweit auch super.


Wenn ich nur mit den Näherungssensoren arbeite, läuft das Programm sehr zuverlässig ab, dafür, dass ich erst abktiv seit dem WE programmiere. Nun wollte ich den einen Näherungssensor durch das genannte Relais ersetzen, so wie es mal geplant ist.

Die internen Pullup-Widerstände sind eingeschalten, also müßte es ja hinhauen mit meinem Anschlussschema, oder?
Es gleicht zumindest dem in dem AVR Einsteigerkurs auf RN Wissen.

Nun habe ich aber ein anderes, komisches Problem:

Die ganzen Platinen sind in nem Eigenbau-Gehäuse (RN Control und Rn step297). Die Signalleitungen sind alle über ne D-Sub Buchse nach außen geführt. Die Leitungen für pina.4 sind einfache Litze mit 0,14qm von Conrad.
Wenn ich die leitungen bewege, reagiert die Schaltung darauf. Die Lötverbindungen hab ich alle kontrolliert. Alles 1a. Ist der Port A so feinfühlig dass er schon den Kontakt mit meiner Haut zum Anlass nimmt, darauf zu reagieren? Ist irgendwie seltsam.
Kann ich mit einem externem Widerstand darauf Einfluss nehmen?

gttoxiclt2
06.03.2008, 09:41
Wenn du die Pins mit dem Schalter/Relais gegen GND schaltest brauchst du noch einen Widerstand zu 5V um bei nicht gedrücktem Taster sicher ein High am Pin zu haben. Entweder der interne PullUp oder einen externen (ca. 4,7-10K) Widerstand?


Hi & Danke!

Ich hab mir die Sache jetzt wieder angesehen und mehrere Fehler, die ich verursacht habe, gefunden.
Zum einen war die Litze im PortA.4 nur lose drin (Klemmhalter) und zum anderen hab ich auch nichts über Pullup-Widerstände gefunden in der pdf zum rn control. Bin davon ausgegangen welche zu haben. Ich dachte, die sind intern im Mikrokontroller? Naja, wird Zeit dass ich mir ein Buch hole und besser zu kapieren O:)

Jetzt hab ich eine ordentliche Verbindung an Pind.7 für den Taster und mit einem eigenem Pullup-Widerstand versehen. Und so läufts prima!

Danke für den Hinweis und ich kann schön weiter programmieren \:D/

mfG

radbruch
06.03.2008, 10:01
Hallo


Ich dachte, die sind intern im Mikrokontroller?
Die sind drin, müssen aber aktiviert werden:

Config Portd.7 = Input 'Pin auf Eingang schalten
Set Portd.7 ' internen PullUp aktivieren

Trotzdem prima dass es nun funktioniert.

Gruß

mic

gttoxiclt2
06.03.2008, 10:09
Hallo
Config Portd.7 = Input 'Pin auf Eingang schalten
Set Portd.7 ' internen PullUp aktivieren


Jetzt bin ich trotzdem neugierig?

Kein Rechtschreibfehler oben?

Den internen schalt ich ein, indem ich den Pin auf High setze, den ich auswerten möchte? Mehr nicht? Dann hätte es ja die ganze Zeit schon funktionieren können, wenn ich das gewußt hätte....

Also bei meinem Programm dann eben so: ?

Config Porta.4 = Input 'Pin auf Eingang schalten
Set Porta.4 ' internen PullUp aktivieren

Config Porta.5 = Input 'Pin auf Eingang schalten
Set Porta.5 ' internen PullUp aktivieren

?

Hab ja zwei Taster, die ich auswerten will. Hätte ich das da so schreiben müssen???

radbruch
06.03.2008, 10:16
Ja, wenn der Pin als Eingang konfiguriert ist, schaltet man den PullUp so ein. Der "Schreibfehler" war wohl hier:


Jetzt hab ich eine ordentliche Verbindung an Pind.7 für den Taster..

gttoxiclt2
06.03.2008, 10:27
Mal abgesehen von dem losen Kabel geht es tatsächlich so ](*,)

Ich hab zum Test wieder eine Litze bei a.4 eingeklemmt, diesmal den richtigen internen Pullup-widerstand aktiviert und es ging auf Anhieb...

Die Schreibweise hab ich von dir genommen. Also oben bei Config und Set den Porta.4 und im Programm mit Pina.4.

Ebenfalls lag der Denkfehler darin, dass ich irgendwie dachte, dass der interne nur an Porta.7 anliegt. Aber das ist in den Testprogrammen ja nur deswegen immer Porta.7, da dort die originalen 5 Taster angeschlossen sind.

Also wieder dazu gelernt, dank deiner Hilfe \:D/


Danke nochmal, so hab ich gleich was über die Bedeutung der Pullup/down Widerstände gelernt