PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I/O-Ports an Base mit M32 im Master-Slave Modus ansteuern?



fabqu
06.11.2010, 11:26
hallo erst mal, ich bin grad ganz neu hier und habe gleich einmal eine Anfängerfrage:

Ich möchte meinen RP6 mit einem automatischen Fahrlicht ausrüsten.
Dafür würde ich gerne die freien I/O-Ports der Base nutzen.

Frage 1:
Sind die einzig wirklich freien Base-I/O-Ports die beiden ADCs 1 und 2?
Oder kann ich die an den LEDs hängenden (IO1-IO4) auch irgendwie unkompliziert nutzen? Oder gehen diese 4 nur in Verbindung mit den LEDs?
Frage zwei:
Das Licht sollte ja bei Dunkelheit angehen, bei Helligkeit aus.
Ja, aber was passiert, wenns dunkel wird, die LEDs gehen an (habe helle, weiße LEDs dafür), merken das dann nicht die Lichtsensoren? Und schalten automatisch wieder ab?
Frage drei:
Schafft mein AtMega es überhaupt, vier solche hellen LEDs zu versorgen? Wahlweise auch zwei helle, zwei "normale" (hell vorne, "normal" hinten).
Frage vier:
Was muss ich am Beispielprogramm "Slave" für die Base und am Masterprogramm für meinen M32 ändern, damit das so geht? Wie gesagt, ich würde gern (wenn das problemlos geht) einen der beiden ADCs oder einen anderen I/O von der Base benutzen.
Frage 4:
Oder wäre es doch besser, die LEDs vom M32 anzusteuern und mir nur die Daten der Lichtsensoren zu holen? Dann hätte ich die beiden Base-ADCs frei für z.B. Abstandssensoren hinten oder so. Wie geht das dann? Also das holen der Lichtsensordaten in den M32. Ist glaube ich im Masterprogramm (Beispielprogramm 10) noch nicht realisiert!???!

Wäre super, wenn mir hier jemand helfen kann.
Aber bitte bedenkt: Ich bin Anfänger! :)

Danke euch!
Fabian

Dirk
06.11.2010, 12:29
@Fabian:

Willkommen im Forum und Glückwunsch zum RP6 + M32!

... ich versuch 'mal, zu antworten:

1:
Die Verwendung der RP6- und M32-Ports kannst du hier finden:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=32677
IO1-4 kannst du auch verwenden.

2:
Das kann passieren. Evtl. müßtest du einen anderen Helligkeitssensor, der nicht direkt von den LEDs angestrahlt wird, z.B. oben auf dem RP6 montieren. Oder du nimmst nur eine automatische EINschaltung und schaltest manuell oder ferngesteuert wieder aus.

3:
Ich würde die LEDs immer über einen Treibertransistor ansteuern.

4:
Wie man einzelne Ports anspricht und ein-/ausschaltet, kannst du in der Anleitung der M32 im Abschnitt 3.1.9 I/O-Ports nachlesen. Das geht genauso auch für die RP6Base.

4/5:
Das Beispiel RP6Control_06_I2CMaster.c zeigt z.B. auch das Auslesen der Helligkeitswerte (Funktion readLightSensors).

Gruß Dirk

fabqu
06.11.2010, 19:01
Soso!
Danke schon mal, das hilft.
Das mit denm Auswerten der Lichtsensoren hab ich dann auch gesehen :)

Ich hab das mit dem ein/ausschalten von Port PC2 auf dem M32 versucht, aber bei mir kommt da dauerhaft Saft raus. Mal sehen. Das mit dem Treibertransistor ist gut, hab ich mir gleich welche besorgt. Ich muss nur mal sehen, ob ich pnp oder npn nehme.
Und wie genau meintest du das mit Port4 kann ich benutzen? Geht das so problemlos?

Vielen Dank!
Fabian

TrainMen
06.11.2010, 19:54
Hi,
ich habe das Software mäßig so gelößt das ich im Slaveprogramm die Sensoren abfrage >1000 und dann einfach bei einem Wert von < 900 die IO-LEDs schalte. Die Hardware sieht so aus. Von den IO's gehen zum USR BUS und von dort zu meinen Verteiler(EXP). Dort kann ich dann mit Jumper entsprechen einstellen was ich so brauche. Hierbei wäre es eben die Transistoren. Ich habe pro Scheinwerfer 3 Superhelle LED und brauche 4,6 V also mit ext. Stromversorgung.

mfg Trainmen