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
Impulszähler aus RC-Signalzähler
16.03.2015, 15:42
Beitrag #1
Impulszähler aus RC-Signalzähler
Hallo Gemeinde,

ich will für eines meiner RC-Modelle eine Zählerschaltung mit 4 Ausgängen konzipieren. Der Zähler fängt mit 0 an und soll bei jedem empfangen RC-Signal um den Wert 1 weiterzählen bis er bei 4 ankommt. Dann fängt der Kreis von vorne an.

Die Blöcke selber, also Zähler und RC-Signalauswertung, funktionieren für sich selber, nicht aber die Verbindung zu einer Funktionseinheit.

Ich habe schon etliche Variablen und Schleifen umbenannt bzw. neu benannt, aber ausser div. Fehlermeldung erhalte ich nichts.

Anbei der Sketch, verbunden mit der Hoffnung dass einer von Euch mir die Verbindung bzw. Erleuchtung vermittelt.

MfG
Armin de DO1XXY

//Zuweisung der 4 LED-Ausgänge
int Led1 = 5; //D2
int Led2 = 6; //D3
int Led3 = 7; //D4
int Led4 = 8; //D5
int RCLed = 11; // LED zeigt RC-Impuls an
int RCin = 12; // Eingang für RC-Signal

byte valw = 75;
byte RCon = 0;

unsigned long durationw;

//Ausgang LED zählt dezimal von 1 bis 4
void zaehler(void)
{
unsigned char j;
for(j=1;j<=5;j++) // 200ms Verzögerungszeit zwischen LED HIGH und LED LOW
{
digitalWrite(j,HIGH); //LED HIGH entsprechend dem Wert der Variable j
delay(200); //delay 200ms

digitalWrite(j,LOW); //LED HIGH entsprechend dem Wert der Variable j
delay(200); //delay 200ms
}

}

void setup()
{
// Setup für Zähler
unsigned char i;
for(i=2;i<=5;i++) //setzt PIN von 5 bis 8 pin in Bewegung
pinMode(i,OUTPUT); //setzt i in Funktion PIN output

// Setup für RC-Impulsauswertung
pinMode(RCin, INPUT);
pinMode(RCLed, OUTPUT);
digitalWrite(RCLed, HIGH);
}
void loop()
{

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

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

{
if(RCon == 0)
{

digitalWrite(RCLed, LOW);
RCon = 1;
delay(1200);

}
else
{

digitalWrite(RCLed, HIGH);
RCon = 0;
delay(1200);
}

Zaehlimpuls(); //Loop fährt die Schleife zaehler immer wieder durch. Das führt dazu dass immer wieder von 1 bis gezählt wird.
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2015, 17:42
Beitrag #2
RE: Impulszähler aus RC-Signalzähler
Zaehlimpuls ruft sich rekursiv immer wieder selber aus. Das duerfte dazu fuehren, dass Dein Arduino nach kurzer Zeit abstuerzt. Lass den Aufruf von Zaehlimpuls in Zaehlimpuls einfach mal weg.

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
16.03.2015, 19:03
Beitrag #3
RE: Impulszähler aus RC-Signalzähler
(16.03.2015 17:42)Thorsten Pferdekämper schrieb:  Zaehlimpuls ruft sich rekursiv immer wieder selber aus. Das duerfte dazu fuehren, dass Dein Arduino nach kurzer Zeit abstuerzt. Lass den Aufruf von Zaehlimpuls in Zaehlimpuls einfach mal weg.

Halllo Thorsten,

zu dem Projekt wird es (wenn es denn funktioniert) ein Video in youtube geben. Ich werde Deinen Ratschlag befolgen. Mal sehen ob es klappt.

Gruß
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2015, 21:47
Beitrag #4
RE: Impulszähler aus RC-Signalzähler
Hallo do1xxy,
außer der LED für dein Empfangssignal wird in der Loop schleife keine LED geschaltet auch kein Zähler gesetzt, oder ist mir da etwas entgangen. Mit Funktionen wie dem "Zaehlimpuls" ist das schon der richtige Weg. So könntest du eine weitere Funktion zum zählen und schalten einer LED einrichten.

Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2015, 07:38
Beitrag #5
RE: Impulszähler aus RC-Signalzähler
Hallo Thorsten und Sven,
danke für Eure Unterstützung.

Mittlerweile hänge ich in einer geistigen Schleife - sprich Betriebsblindheit. Entweder funktioniert der Zähler oder die Auswertung des RC-Signales ohne Probleme, aber die Kopplung dass bei jedem empfangenen Signal aus dem Empfänger der Fernsteuerung der Zähler um "1" erhöht wird, stellt sich nicht ein.
@ Thorsten: das Entfernen des Aufruf "Zaehlerimpuls" in "Zaehlerimpuls" hat immer eine Fehlermeldung zur Folge.

Irgendwie habe ich mir das Ganze einfacher vorgestellt. Im Grunde handelt es sich um eine simple Zählerschaltung die ich da nicht auf
die Reihe bekomme. Gemäß dem Sinnspruch dass die Hoffnung zuletzt stirbt werde ich es weiter versuchen.

Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2015, 08:01
Beitrag #6
RE: Impulszähler aus RC-Signalzähler
Dann sag doch mal, was für eine Fehlermeldung...

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
17.03.2015, 08:39
Beitrag #7
RE: Impulszähler aus RC-Signalzähler
...da sitzt mal wieder ein schlauer Kopf vor den Tasten wo uns zu beschäftigen versucht...
Wann wird denn die Routine zahler() denn aufgerufen ???
Und wenn ich Delays mit 200mS drin habe bekomme ich keine Servoimpulse wo alle ~20mS kommen eben auch nicht immer mit Tongue , ausgetrickst nenne ich das...Big Grin
..oh bin ich wieder Pöse...
lg
bk
...lso aufi rupft mein Fell...Smile

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2015, 13:54
Beitrag #8
RE: Impulszähler aus RC-Signalzähler
Hallo Thorsten,

mittlerweile habe ich die renudanten Zaehlerimpuls-Anweisungen herausgenommen. Ohne diese bekomme ich auch keine Fehlermeldung.
Der Status ist der, dass nach wie vor der Counter läuft, aber eine Abfrage des RC-Einganges nicht stattfindet oder zumindest angezeigt wird.
Lässt sich mein Vorhaben bzw. die angedachte Funktion nur mit einem Interrupt realisieren? Wenn ja, muss ich das Projekt zeitlich verschieben um mich in die Interrupt-Technik einzuarbeiten.

Um dem Projekt die Abstraktion zu nehmen, erörtere ich wofür ich es benötige. Mein RC-Fuhrpark umfasst einen Radlader, zwei LKWs und ein Polizeifahrzeug.

Für den Betrieb auf unserem Parcours benötige ich zwei Fernsteuerungen: eine für den Radlader und eine weitere für die LKWs, von denen allerdings jeweils nur einer aktiv sein darf. Auf einem anderen Parcour werden die LKWs beide im Fahrbetrieb benötigt. Sind beide über die gleiche Fernsteuerung eingeschaltet, regieren beide auf die Signale der Fernsteuerung. Der Memoryspeicher der Fernsteuerung vergibt lediglich die zu den Fahrzeugen erstellten Parameter. Natürlich gibt es Fernsteuerungen die den Fahrzeugen direkt eine Adresse zuordnen unter der sie direkt aktivierbar/deaktivierbar sind (Brixel, blauzahn, Servonaut usw). Diese sind aber sehr teuer. Außerdem besitze ich zwei Graupner Fernsteurungen inkl Empfängern, die will ich nicht veräußern. Es gibt auch eine Firma (CTI), die fertige Module für die von mir gewünschte Funktion anbieten. Das ist mir aber zu "unsportlich". Als Funkamateur versuche ich ebenfalls selber zu konzipieren und zu bauen. Soviel zu dem, was ich mit dem von mir begonnenen Sketch erreichen will.

@Bitklopfer,
die Verzögerungszeit von 200 ms ist stellt eine Sicherheitsspanne dar. Damit soll vermieden werden dass die Zählerimpulse durch ein versehentliches Berühren der Bedienelemente auf der Fernsteuerung ausgelöst werden. Bei unkontrollierter Funktionsausübung besteht die Gefahr eines größeren Flurschadens.

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


Gehe zu:


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