INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Springlicht für Modellbau
30.07.2014, 13:40
Beitrag #9
RE: Springlicht für Modellbau
Hallo Thorsten,

danke für den Tipp. Soweit klappt die Abfrage. So peinlich mir das ist, jetzt habe ich die beiden einzelnen Blöcke funktionsbereit, finde aber nicht das missing link um beide miteinander zu verbinden.

Hast Du eine Idee? Das Listing des Sketch ist mittlerweile desolat, da ich viel daran herum geschrieben habe.

/* Abfrage eines RC-Empfänger über eine Tastfunktion und Ausgabe auf eine LED */


int pwin = 4; // Signal aus dem Empfänger, entsprechend gewählter Kanal
int rk = 8; // Ausgang für Kontroll LED
int spl1 = 11; // legt die LED für Springlicht 1 auf Pin 11
int spl2 = 12; // legt die LED für Springlicht 2 auf Pin 12
byte valw = 75;
byte rkon = 0;

unsigned long durationw;

void setup()
{
pinMode(pwin, INPUT);
pinMode (spl1, OUTPUT);
pinMode (spl2, OUTPUT);
pinMode(rk, OUTPUT);
digitalWrite(rk, HIGH);
}


void loop()
{

durationw = pulseIn(pwin, HIGH, 20000); // int pwin = 1; INPUT
valw = map(durationw, 1090, 1929, 0, 150);

if(valw < 30)
{
springlicht();
}
}
void springlicht()

{
if(rkon == 0)
{

digitalWrite(rk, LOW);
rkon = 1;
delay(1200);

}
else
{

digitalWrite(rk, HIGH);
rkon = 0;
delay(1200);







if (digitalWrite® == HIGH) // Bedingung erfüllt wenn das Eingangssignal HIGH ist

/* Ansteuerung der ersten LED*/

{
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) //Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) // Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

/* Ansteuerung der zweiten LED*/

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) // Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)
{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) //Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

{
analogWrite(ledPin1, LOW);
analogWrite(ledPin2, LOW);
}
}
}


Danke im voraus
Armin



(30.07.2014 08:09)Thorsten Pferdekämper schrieb:  
(30.07.2014 06:26)do1xxy schrieb:  Jetzt fehlt mir noch das i-Tüpfelchen: die Ansteuerung des Springlicht über einen Modelbauempfängers statt eines CTI-Schaltmodul. Der Empfänger gibt ein 50 Hz (20ms) Signal aus, dass je nach Funktion einen 1 ms bis 2ms lang ist. Hat da vielleicht noch jemand eine Idee?
Schau Dir mal das hier an:
http://arduino.cc/en/pmwiki.php?n=Reference/PulseIn
Falls das nicht reicht, dann ggf. noch das hier:
http://electronics.stackexchange.com/que...put-method
...und die Links darin.
Das ist halt etwas komplexer, daher würde ich es erst einmal mit pulseIn versuchen.
Gruß,
Thorsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 14:29
Beitrag #10
RE: Springlicht für Modellbau
(30.07.2014 13:40)do1xxy schrieb:  Hast Du eine Idee? Das Listing des Sketch ist mittlerweile desolat, da ich viel daran herum geschrieben habe.
Dann räum den Sketch doch mal auf. Was hindert Dich daran?
...auch Einrückungen und der übliche Kram wären nett.
Dann noch das ganze so verpacken:
Code:
...
, wenn Du code in's Forum postest.

Ansonsten: Das Coding sieht doch gar nicht so schlecht aus. Was macht es denn und was möchtest Du anders haben?

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 14:49
Beitrag #11
RE: Springlicht für Modellbau
Noch mal Moin.

Folgendes will ich erreichen: wird an der Fernsteuerung ein zuvor definierter Taster betätigt, wird ein sogg. Springlicht (Wechsellicht zwischen Abblendlicht und Blaulicht) aktiviert, dass über weiche Wechsel funktioniert. Ein erneutes Betätigen des Tasters beendet die ganze Prozedur.

Mein Status ist der dass ich die einzelnen Funktionsgruppen, also Springlicht mit HIGH und LOW ein- und ausschalten kann, sowie die Ansteuereung einer LED Ein/Aus über den Knüppelschalter der Fernsteuerung. Was mir fehlt ist das missing link, also der Programmcode der die beiden Sketches zu einem macht, der die o.g. Aufgabe erfüllt.

Diesen Übergang bekomme ich nicht hin.Was ich bekomme sind massig Errormeldungen.

Der Code:

/* Abfrage eines RC-Empfänger über eine Tastfunktion und Ausgabe auf eine LED */


int pwin = 4; // Signal aus dem Empfänger, entsprechend gewählter Kanal
int rk = 8; // Ausgang für Kontroll LED
int spl1 = 11; // legt die LED für Springlicht 1 auf Pin 11
int spl2 = 12; // legt die LED für Springlicht 2 auf Pin 12
byte valw = 75;
byte rkon = 0;

unsigned long durationw;

void setup()
{
pinMode(pwin, INPUT);
pinMode (spl1, OUTPUT);
pinMode (spl2, OUTPUT);
pinMode(rk, OUTPUT);
digitalWrite(rk, HIGH);
}


void loop()
{

durationw = pulseIn(pwin, HIGH, 20000); // int pwin = 1; INPUT
valw = map(durationw, 1090, 1929, 0, 150);

if(valw < 30)
{
springlicht();
}
}
void springlicht()

{
if(rkon == 0)
{

digitalWrite(rk, LOW);
rkon = 1;
delay(1200);

}
else
{

digitalWrite(rk, HIGH);
rkon = 0;
delay(1200);

if (digitalWrite® == HIGH) // Bedingung erfüllt wenn das Eingangssignal HIGH ist

/* Ansteuerung der ersten LED*/

{
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) //Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) // Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

/* Ansteuerung der zweiten LED*/

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) // Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)
{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) //Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

{
analogWrite(ledPin1, LOW);
analogWrite(ledPin2, LOW);
}
}
}



LG
Armin




(30.07.2014 14:29)Thorsten Pferdekämper schrieb:  
(30.07.2014 13:40)do1xxy schrieb:  Hast Du eine Idee? Das Listing des Sketch ist mittlerweile desolat, da ich viel daran herum geschrieben habe.
Dann räum den Sketch doch mal auf. Was hindert Dich daran?
...auch Einrückungen und der übliche Kram wären nett.
Dann noch das ganze so verpacken:
Code:
...
, wenn Du code in's Forum postest.

Ansonsten: Das Coding sieht doch gar nicht so schlecht aus. Was macht es denn und was möchtest Du anders haben?

Gruß,
Thorsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 16:05
Beitrag #12
RE: Springlicht für Modellbau
Hi,
dann geh doch mal die Fehlermeldungen durch und ändere Dein Coding entsprechend...
Außerdem: BITTE räume mal Dein Coding auf, so dass es lesbarer wird. So kann man kaum was erkennen.
Was mir auffällt:
Code:
if (digitalWrite® == HIGH)
Was soll das tun?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 16:22 (Dieser Beitrag wurde zuletzt bearbeitet: 30.07.2014 16:36 von do1xxy.)
Beitrag #13
RE: Springlicht für Modellbau
Hallo Thorsten,

im Moment blicke ich durch die zusammengelegten Listings nicht mehr durch. Ich habe viel zusammengestrickt und weiß nicht mehr genau wo was hingehört oder hingehörte. Dabei kam dann auch die Stelle mit der ominösen if-Anweisung zustande. Mein nächster Schritt wird es sein beide Sketches als solches wiederherzustellen. mal sehen was dann ist.

Noch einmal Danke und Gruß aus Lüneburg
Armin de DO1XXY


(30.07.2014 16:05)Thorsten Pferdekämper schrieb:  Hi,
dann geh doch mal die Fehlermeldungen durch und ändere Dein Coding entsprechend...
Außerdem: BITTE räume mal Dein Coding auf, so dass es lesbarer wird. So kann man kaum was erkennen.
Was mir auffällt:
Code:
if (digitalWrite® == HIGH)
Was soll das tun?
Gruß,
Thorsten

(30.07.2014 16:05)Thorsten Pferdekämper schrieb:  Hi,
dann geh doch mal die Fehlermeldungen durch und ändere Dein Coding entsprechend...
Außerdem: BITTE räume mal Dein Coding auf, so dass es lesbarer wird. So kann man kaum was erkennen.
Was mir auffällt:
Code:
if (digitalWrite® == HIGH)
Was soll das tun?
Gruß,
Thorsten

Hallo Thorsten,

so sehen beide Programme im Orignal aus. Ich habe sie beide in einem Sketch reinkopiert um sie beim Bearbeiten besser im Überblick zu haben - wobei deise Methode zum Chaos geführt hat.

Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2014, 07:22 (Dieser Beitrag wurde zuletzt bearbeitet: 01.08.2014 07:37 von do1xxy.)
Beitrag #14
Modellbau: Wechselblinker über Fernsteuerung
Hallo Gemeinde,

nach dem der erste Thread meinerseits an die Wand gefahren wurde,
hier das überarbeitete Listing bzw. beide Teile des Sketch, getrennt durch Kommentare.

Angedacht ist ein Wechselblinker dessen Übergänge mit PWM weich erfolgen sollen.
Ein- und ausgeschaltet wird die Funktion über einen Empfänger einer Modellbaufernsteuerung.

Vielleicht mag sich jemand das Listing ansehen und mir seine Gedanken dazu mitteilen.

Ein schönes Wochenende
Armin de DO1XXY

(01.08.2014 07:22)do1xxy schrieb:  Hallo Gemeinde,

nach dem der erste Thread meinerseits an die Wand gefahren wurde,
hier das überarbeitete Listing bzw. beide Teile des Sketch, getrennt durch Kommentare.

Angedacht ist ein Wechselblinker dessen Übergänge mit PWM weich erfolgen sollen.
Ein- und ausgeschaltet wird die Funktion über einen Empfänger einer Modellbaufernsteuerung.

Vielleicht mag sich jemand das Listing ansehen und mir seine Gedanken dazu mitteilen.

Ein schönes Wochenende
Armin de DO1XXY

/* Modellbau PWM Wechselblinker über Fernsteuerung aktiviert*/


/* Programmteil 1: auslesen des Empfängers der Fernsteuerung mit dem Ziel ein
ein Ansteuerungssignal für den PWM Wechselblinker im zweiten Programmteil
zu erhalten */

int RX = 4; // Eingang für das Signal des Empfängers
int SL = 8; // Ausgang für blaue LED als Statusanzeige des Schaltkanals

byte valw = 75; //
byte rkon = 0; //

unsigned long durationw; //Variable für Pulsdauer durationw

void setup()
{

pinMode(RX, INPUT); // definiert pwin als Eingang

pinMode(SL, OUTPUT); // definiert rk als Ausgang

digitalWrite(SL, HIGH); // gibt Ausgabe wenn rk = HIGH
}
void loop()
{

durationw = pulseIn(RX, HIGH, 20000); // Dauer
valw = map(durationw, 1090, 1929, 0, 150);


if(valw < 30)

{
rundumlicht();
}

}
void rundumlicht()
{
if(rkon == 0)

{
digitalWrite(SL, LOW);
rkon = 1;
delay(1200);
}

else

{
digitalWrite(SL, HIGH);
rkon = 0;
delay(1200);
}
}

// Ende des ersten Programmes


/* Programmteil 2: Wechselblinker mit PWM geführten weichen Übergang zwischen 2 Gruppen von LEDs,
angesteuert durch das HIGH Signal des ersten Programmes */



int ledPin1 = 3; // LED dem analogen Ausgang Pin 3 zuweisen
int ledPin2 = 9; // LED dem analogen Ausgang Pin 9 zuweisen

int SK1 = 7; // Eingang für Ansteuerung mit Logisch HIGH

int del1 = 11; // Verzögerung zwischen den Fading Vorgängen FadeIn und FadeOut
int a = 12; // Zuweisung der Schritte für den Durchlauf des Bereiches von 0 bis 255 mit der Variablen a

void setup()

{
pinMode(SK1, INPUT); // Pin 7 als Eingang definiert
pinMode(ledPin1, OUTPUT); // Pin3 als Ausgank deklariert
pinMode(ledPin2, OUTPUT); // Pin9 als Ausgank deklariert

}
void loop()
{


if (digitalRead(SK1) == HIGH) // Bedingung erfüllt wenn das Eingangssignal HIGH ist

/* Ansteuerung der ersten LED*/

{
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) //Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) // Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

/* Ansteuerung der zweiten LED*/

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) // Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)
{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) //Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

{
analogWrite(ledPin1, LOW);
analogWrite(ledPin2, LOW);
}
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2014, 08:41
Beitrag #15
RE: Springlicht für Modellbau
Hi,
packe das Coding der loop-Funktion im zweiten Coding in die rundumlicht-Funktion des ersten Codings.
Außerdem müssen die globalen Variablen aus dem zweiten Coding auch ins erste rein.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2014, 09:18
Beitrag #16
RE: Springlicht für Modellbau
Hallo Thorsten,

das werde ich nachher ausführen.

Zwischenzeitlich habe ich etwas anderes ausprobiert, in dem ich den Ausgang des RX-Sketches (SL Pin 8) mit dem Eingang des Wechselblinkers Sketches (SK1 Pin 7) verbunden habe. Das funktioniert im groben, wenn man ausser acht lässt das es ca 1 Sekunde dauert bis es anfängt zu blinken und nach einem Blinkvorgang Schluß ist. Ein interressantes Resultat, das aber sicher nicht im Sinne eines vernünftig funktionierendes Sketches ist.

/* Modellbau PWM Wechselblinker über Fernsteuerung aktiviert*/


/* Programmteil 1: auslesen des Empfängers der Fernsteuerung mit dem Ziel ein
ein Ansteuerungssignal für den PWM Wechselblinker im zweiten Programmteil
zu erhalten */

int RX = 4; // Eingang für das Signal des Empfängers
int SL = 8; // Ausgang für blaue LED als Statusanzeige des Schaltkanals

byte valw = 75; //
byte rkon = 0; //

unsigned long durationw; //Variable für Pulsdauer durationw

// aus Programmteil 2

int ledPin1 = 3; // LED dem analogen Ausgang Pin 3 zuweisen
int ledPin2 = 9; // LED dem analogen Ausgang Pin 9 zuweisen

int SK1 = 7; // Eingang für Ansteuerung mit Logisch HIGH

int del1 = 11; // Verzögerung zwischen den Fading Vorgängen FadeIn und FadeOut
int a = 12; // Zuweisung der Schritte für den Durchlauf des Bereiches von 0 bis 255 mit der Variablen a

// Initialsierung beider Programmteile abgeschlossen

void setup()
{

pinMode(RX, INPUT); // definiert pwin als Eingang

pinMode(SL, OUTPUT); // definiert rk als Ausgang

digitalWrite(SL, HIGH); // gibt Ausgabe wenn rk = HIGH

// aus Programmteil 2

pinMode(SK1, INPUT); // Pin 7 als Eingang definiert
pinMode(ledPin1, OUTPUT); // Pin3 als Ausgank deklariert
pinMode(ledPin2, OUTPUT); // Pin9 als Ausgank deklariert

}

// Zuordnungen beider Programmteile abgeschlossen



void loop()
{

durationw = pulseIn(RX, HIGH, 20000); // Dauer
valw = map(durationw, 1090, 1929, 0, 150);


if(valw < 30)

{
rundumlicht();
}

}
void rundumlicht()
{
if(rkon == 0)

{
digitalWrite(SL, LOW);
rkon = 1;
delay(1200);
}

else

{
digitalWrite(SL, HIGH);
rkon = 0;
delay(1200);
}

// void loop() Dateien Programmteil 2

if (digitalRead(SK1) == HIGH) // Bedingung erfüllt wenn das Eingangssignal HIGH ist

/* Ansteuerung der ersten LED*/

{
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) //Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) // Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin1, fadeValue);
delay(del1);
}

/* Ansteuerung der zweiten LED*/

for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=a) // Fade in von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)
{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=a) //Fade out von minimaler bis maximaler in a Schritten: setzen der Schrittweite (Bereich von 0 to 255)

{
analogWrite(ledPin2, fadeValue);
delay(del1);
}

{
analogWrite(ledPin1, LOW);
analogWrite(ledPin2, LOW);
}
}
}

// Ende des ersten Programmes


/* Programmteil 2: Wechselblinker mit PWM geführten weichen Übergang zwischen 2 Gruppen von LEDs,
angesteuert durch das HIGH Signal des ersten Programmes */


Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino-Projekte von dqb312 (Modellbau) dqb312 4 4.175 19.04.2015 17:08
Letzter Beitrag: dqb312
  Franzis Verlag "Arduino im RC-Modellbau" gesucht do1xxy 0 1.213 13.08.2014 18:28
Letzter Beitrag: do1xxy
Lightbulb Modellbau andibaba 10 6.090 01.05.2014 11:51
Letzter Beitrag: Scherheinz
  Fahrstuhlprojekt im Modellbau Gottfried 2 3.678 17.10.2013 19:52
Letzter Beitrag: Lothar

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste