Go Down

Topic: Flugzeug Lichtschaltung (Tag/Nacht) mit Fotowiderstand (Read 3366 times) previous topic - next topic

biberlecram

Hallo Zusammen,
ich bin neu in der Welt von Arduino und möchte gerne ein Modellflugzeug mit Leds und Micromotoren bauen. Ich habe vor einem Jahr ca. mit einem Forenmitglied einen Sketch geschrieben, der verschiedene Lichtprogramme in Abhängigkeit eines Taster wechselt. Diesen möchte ich jetzt ergänzen/verädern, da sich meine Ansprüche an das Flugzeug geändert haben.

Kurz zum Szenario:
Ein Flugzeug wird irgendwo auf dem Flughafen stehen, Position entscheide ich dann noch, weil ich mehrere Flugzeuge mit Microcontrollern ausrüsten will. Das heißt also am Gate, in Aktion  beim Pushback oder auf der Landebahn).
Je nach Sollposition später, möchte ich halt die typischen Lichter am Flugzeug ansprechen können.
Da ich aber eine Tag-/ Nachtsimulation mache, möchte ich nicht jedes einzelne Flugzeug immer mit einem Taster erst auf die jeweilige Situation "manuell" umstellen (so wie es jetzt momentan durch den Sketch gegeben ist), sondern das Flugzeug soll mit Hilfe eines Fotowiderstandes den Zustand Tag oder Nacht selber erkennen und seine Lichter selbständig umschalten.
Ein Beispiel:
Ein Flugzeug steht am Gate.
Es hat nur die Navigationsleuchten (Rot/Grün am Flügel) an (Programm 1 vom alten Sketch).
Nun wird es Nacht, der Fotowiderstand erkennt dies und soll eigenständig einen Programmwechsel auf Programm 5 umschalten (Navigationsleuchten Rot/Grün + Innenbeleuchtung + Logolichter an).
Das heißt also ich möchte NUR noch zwischen 2 Zuständen hin und her wechseln.
Das Problem liegt hier halt darin, wenn dieses Flugzeug halt auf der Landebahn steht, die Blitzlichter an sind und zusätzlich Micromotoren die Triebwerkfans bewegen sollen. Für die Micromotoren (2 Stück) habe ich mit eine HBridge gekauft.

Kann mir irgendjemand von euch Profis helfen diesen Sketch zu verwirklichen?
Wäre echt eine geniale Sache, da ich es nicht so mit der Programmierung habe  :smiley-confuse:
Vielen Dank schonmal!

Klaus_ww

Na, offenbar hast Du doch schon unterschiedliche "Blinkprogramme", die abhängig von äußeren Umständen unterschiedlich sind. Mit einem LDR wird das einfach um weitere Programme erweitert.
Und einen LDR auslesen ist mit Spannungsteiler und Analogeingang kein Hexenwerk.

Wo also klemmt's?
Freizeit-Programmierer mit moderatem Ehrgeiz besseren Code zu schreiben.

biberlecram

Neue Anforderungen:
Programmwechsel durch Fotowiderstand (Lichtsensor), Wechsel zwischen nur zwei Zuständen (Tag/Nacht > je nach Position, wo das Flugzeug später stehen sollen kommen Blitzlichter und Micromotoren dazu

Vielleicht zum besseren Verständnis schreibe ich gleich nochmal die Programmzugehörigkeiten um.

Programme in abhängigkeit von der späteren Sollposition:

stehen am Gate oder Parkposition //  1 - Day: NAV wechsel zu 5 - Night: NAV/Logo/Innenbeleuchtung (einziges Programm ohne Triebwerke)

beim Pushback //  2 - Day: NAV/Beacon wechsel zu 6 - Night: NAV/Logo/Innenbeleuchtung/Beacon (hier dann zum Beispiel ein Triebwerksstart oder beide Motoren laufen einfachshalber)

auf dem Rollweg //  3 - Day: NAV/Beacon/Taxi wechsel zu 7 - Night: NAV/Logo/Innenbeleuchtung/Beacon/Taxi (Triebwerke laufen)

auf der Landebahn//  4 - Day: NAV/Beacon/Taxi/Landing/Strobes wechsel zu 8 - Night: NAV/Logo/Innenbeleuchtung/Beacon/Taxi/Landing/Strobes (Triebwerke laufen)

biberlecram

Es ist also eigentlich nicht mehr ein großes Programm, sondern es werden 4 kleine Programme... nur ich habe keine Ahnung, wie ich den Wechsel zwischen Tag/Nacht hinbekomme. Zudem mit der Motoransteuerung so oder so :D und dann auch noch, das die Blitzlichter unabhängig davon über haupt laufen. Bin total überfordert...

combie

Quote
Bin total überfordert...
Wenn du programmieren lernen möchtest, dann will ich dir gerne dabei helfen.
Der Pessimist sieht die Wolke vor der Sonne.
Der Optimist sieht die Sonne hinter der Wolke.

Mantra: Die Sonne scheint immer!

agmue

Wenn ich einen Vorschlag machen dürfte (ungetestet):

Code: [Select]
#define TagNachtOffset 4
...
if (sensorWert > 512 )    // Nacht
{
  if (prgNr <= TagNachtOffset)
  {
    prgNr += TagNachtOffset;
  }
}
else            // Tag
{
  if (prgNr > TagNachtOffset)
  {
    prgNr -= TagNachtOffset;
  }
}
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

biberlecram

Mit dem "überfordert"...
bei mir passiert immer gleich alles auf einmal :D
Aber ja, natürlich will ich das ja lernen. In Sachen Modellbau kann man so viel schönes mit den Microcontrollern machen. Verstehen was die einzelnen Schritte machen, wenn ich sie vor mir habe, tue ich schon. Nur halt die selber herzuleiten und manche Ausdrücke sind halt doch bisschen komisch :D

Klaus_ww

Das ist aber einfacher als fliegen lernen - und das dauert bekanntermaßen auch ne ganze Weile.
Und dabei ist der Puls deutlich höher als beim Programmieren  :)
Freizeit-Programmierer mit moderatem Ehrgeiz besseren Code zu schreiben.

TERWI

Interessant wäre zu wissen: Sollen deine "Flieger" wirklich fliegen oder ist das eher so als (überdimensionales) Modellbau-Szenario zu sehen, wo nur"gerollt" wird, aber keiner (wirklich) abhebt ?

Wie groß sind die Flieger denn / Maßstab in etwa ?
"Boden-verkabelt" ?
To young to die - never to old for rock'n roll

biberlecram

Ja später soll dann ein Flugzeug von der Parkposition übers Vorfeld Richtungs Runway und wieder zurück rollen, ich denke "rumrollen" triffts. Soll dann auf dem Prinzip des Car-Systems aufbauen. Aber so eine Startvorichtung wie im Miwula möchte ich nicht bauen.
Es ist ein wirklich überdimensionales Diorama :D Die Flieger sind alle im Maßstab 1:144.
Was meinst du mit Boden Verkabelt?
Wenn du die Bodenplatte des Airports meinst, ja die ist mit Lichtleiterkabeln verkabelt.

TERWI

Hmm .... 1:144 !? Da wäre dann ja z.B. ein Airbus A310 mal grade 24cm in der Spannweite, die Kabinenbreite so etwas mehr als 2,5cm. Viel Elektronik passt da nicht wirklich rein - schon gar keinen "großen" Controller ala UNO oder gar MEGA - eher ein NANo oder MICRO .....

Wenn die "Dinger" sich dann auch noch vom Platz bewegen sollen (schon ne Idee, wie?), dann muss alles in die Kutsche rein - auch ein adäquater Akku.
D.h. nix feste Verbaelung "am Platz".

Machbar ist das trotzdem sicherlich. Ich nehm mal ne Tass Kaff und dann kommen Ideen.
To young to die - never to old for rock'n roll

agmue

Aber so eine Startvorichtung wie im Miwula möchte ich nicht bauen.
Schade, wär sicherlich spannend geworden ;D

Was macht derweil mein Vorschlag aus #6?
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

biberlecram

#12
Jan 07, 2017, 03:33 pm Last Edit: Jan 07, 2017, 03:39 pm by biberlecram
Hab die Nanos für die Flugzeuge gekauft.
Verkabelung bekommt man schon gut unter.
Nur wie schon angesprochen, wenn die Flugzeuge über das Bugrad angetrieben werden sollen (wieder so ein Problemfall bei mir) wird das schon ein bisschen eng. Aber wozu gibts mini Steckverbinder etc :D:D
Ist halt alles ein bisschen kleiner, aber macht definitiv Spaß die Dinger zu bauen :D

Schade, wär sicherlich spannend geworden ;D

Was macht derweil mein Vorschlag aus #6?
Gute Frage? :D
Ich habe es mir schon bestimmt 12 mal angeguckt, aber ich kriege es nicht hin das Ding bei mir da einzubauen. Ich denke schon gerade drüber nach, ob es vielleicht nicht sinvoller ist, nochmal die Programme einzeln sauber hochzuziehen. Weil wie schon erwähnt, sind es ja jetzt 4 kleine Programme, je nach Standort.
Aber aufjedenfall schonmal ein dickes Dankeschön !

agmue

#13
Jan 07, 2017, 04:00 pm Last Edit: Jan 07, 2017, 04:01 pm by agmue
... aber ich kriege es nicht hin das Ding bei mir da einzubauen.
Dein Sketch aus #6, das raus
Code: [Select]
if (sensorWert > 512 )
{
digitalWrite(LED, HIGH);
}

else
{
digitalWrite(LED, LOW);
}

delay (50);

und durch das ersetzen:

Code: [Select]
const byte TagNachtOffset = 4;

if (sensorWert > 512 )    // Nacht
{
  if (prgNr <= TagNachtOffset)
  {
    prgNr += TagNachtOffset;
  }
}
else            // Tag
{
  if (prgNr > TagNachtOffset)
  {
    prgNr -= TagNachtOffset;
  }
}

Ob sensorWert > 512 Tag oder Nacht bedeutet, hast Du nicht erläutert, da mußt Du ggf. die Logik umdrehen.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

biberlecram

#14
Jan 07, 2017, 04:43 pm Last Edit: Jan 07, 2017, 04:50 pm by biberlecram
Oh ok mir ist aufgefallen, dass in dem Sketch eh ein Fehler war. Schau mal bitte ich habe ihn durch den Originalen ersetzt. Da ist noch nichts mit dem Lichtsensor drin, sondern noch die Geschichte mit dem Taster.

Go Up