• Die Forumsregeln und Nutzungsbedingungen findet ihr in der Navbar unter Impressum !
    Bitte unbedingt beachten!
    Wie überall im Leben gibt es Spielregeln, so auch hier!
    Die Datenschutzerklärung zum DSGVO findet ihr ebenfalls in der Navbar unter Datenschutzerklärung !
    Hinweis nach DSGVO :
    Es ist hier keinerlei Angabe erforderlich. Alle Angaben in diesem Bereich sind öffentlich sichtbar und werden freiwillig gemacht. Mit einem Eintrag in diesem Bereich erkenne ich dieses an, und bestätige die Datenschutzerklärung zur DSGVO für das Forum gelesen zu haben.

    Danke
  • Hallo Gast, beschränke dich hier bitte auf den Bereich der Elektronik. Die Fahrzeuge oder Gebäude, wo diese Elektronik eingebaut wird bitte in dem passenden Fachbereiich behandeln. Auch wenn Teile des Projektes dadurch im Forum doppelt vorhanden sind! Danke.

Arduino Empfängerimpulse auswerten.

Winni

Unterstützt neuen Softwarekauf 2023
Administrator
VIP Unterstützt modelltruck.net 2024
Registriert
19.11.2002
Beiträge
16.503
Dieses Thema ist ein Zusammenschnitt aus 2 verschiedenen Themen.

Ich möchte die anderen Themen nicht missbrauchen, deshalb die Weiterführung hier.
Daher kommt auch die nicht sehr sinnvolle Folge der ersten paar Beiträge, welche sich aber um das gleiche Thema drehen.

Bis Beitrag #14 sind die übernommenen beiträge aus 2 Themen.
Ab Beitrag #15 geht es hier neu weiter.
 
Hallo,

hab da mal eine ganz doofe Idee: 2,4Ghz-Empfänger arbeiten i.d.R. mit 3,3V an den Ausgängen, was der zugrundeliegenden WLAN-Technik geschuldet ist. Ich weiß jetzt nicht, welche µC auf dem ScaleArt-Board seinen Dienst versieht. Sollte es jedoch ein Atmel (Atmega, etc. sein), dürfte das Problem folgendes sein:

Atmels brauchen einen Signalpegel von 0,6...0,7 x Vcc um ein Signal als HIGH zu interpretieren. Bei einer BEC-Spannung von 5V liegt dieser Pegel bei ziemlich genau 3V, also nur knapp unter der Ausgabespannung des Empfänger-ICs, die selber Spannungsverluste an den Ausgängen haben. Lange Rede, kurzer Sinn: Das LightBoard wird vermutlich kein sauberes Signal empfangen, da der Spannungspegel vom Empfänger zu niedrig ist.
Ich hatte einmal EXAKT das gleiche Problem, als ich ein Arduino-Board an einem Zwo4-Empfänger betrieben wollte. Erst der Wechsel auf ein 3,3V-Arduino-Klon brachte dann Erfolg.

Falls es so sein sollte, bringt ein Pegelwandler Abhilfe. Der 74HCT125 sollte hier gute Dienste leisten. Einfach die Pins G1...G4 auf Masse legen, Empfängersignale an A1...A4 und die entsprechenden Boards, Servos, etc. an Y1...Y4. Versorgungsspannung wäre 5V aus dem BEC.

Heiko
 
Hallo Heiko.
Weiß nicht ob das wirklich daran liegt, müsste man testen.
Ich selber werte aber zur Zeit die FrSky 2,4 GHz Empfänger mit einem Arduino mit ATmel aus und habe da keine Probleme mit dem Signalpegel :frage
 
Hallo Winni,

wie gesagt, ich bin auch eher zufällig da mal drüber gestolpert, weil ein selbstprogrammiertes Arduino-Lichtmodul partout nicht funktionieren wollte. Der Code an sich war sauber, bis ich auf die Idee kam, mir die Signale am Zwo4E4 mit meinen Oszi anzuschauen: Siehe da, lediglich ca. 3,1V. Als ich dann das Arduino-Board in der 3,3V-Ausführung genommen habe, klappte das einwandfrei.
Sonst häng doch das FrSky bitte an Dein Oszi und mess mal die Pegelspannung. Da bin ich jetzt irgendwie neugierig. :)

Heiko
 
Moin Winni,

in meinen bisherigen Versuchen habe ich die Signalleitung des Fahrreglers direkt auf Pin 2 gelegt und per IRQ abgefragt. Dieses Konstrukt lieferte irrwitzige Werte und funktionierte überhaupt nicht.

Mit Hilfe die Optokoppler funktioniert es einwandfrei. An die eine Seite des Optokopplers (Diode) sind die Signalleitung und die Masse des Fahrreglers angeschlossen, auf der anderen Seite 5V des Arduino auf einen Pin mit einem Shutdown (ich glaube so heißt er) Widerstand von 10K-Ohm.

Ich vermute mal dass meine ersten Versuche schlicht und ergreifend an mangelndem Fachwissen scheiterten. Der Beruf des Elektroingenieurs ist nicht umsonst ein Studiengang.
 
Mit Abtasten am IRQ hab ich noch nicht getestet. Ich frage normale digitale Eingänge ab.
 
Ich habe jetzt mal mit dem Interupt-Eingang getestet. FrSky V8FR-Empfänger direkt am Arduino Micro Pin 3, und Masse und 5 Volt.
Ich habe keine Signalprobleme. Ich bekomme saubere Werte.
 
Ich nehme an der Fehler lag in der Stromversorgung. Ich habe den Empfänger an einen Fahrregler angeschlossen (wegen des BEC) und habe nur das Signal an einen Pin gelegt.

Du hast ja auch die Stromversorgung über die Arduino Platine realisiert.
 
Ich habe jetzt mal mit dem Interupt-Eingang getestet. FrSky V8FR-Empfänger direkt am Arduino Micro Pin 3, und Masse und 5 Volt.
Ich habe keine Signalprobleme. Ich bekomme saubere Werte.
Hallo Winni,

hast Du zwischenzeitlich mal am FrSky-Empfänger die Spannung der Servosignale mit dem Oszi getestet?

Heiko
 
Ich nehme an der Fehler lag in der Stromversorgung. Ich habe den Empfänger an einen Fahrregler angeschlossen (wegen des BEC) und habe nur das Signal an einen Pin gelegt.

Du hast ja auch die Stromversorgung über die Arduino Platine realisiert.

Ja, du kannst nicht nur das Signal an den Pin legen. Das funktioniert nie!
Die Masse muß von allen angeschlossenen Komponenten Identisch sein.
Also Masse und Signal muss zwingend angeschlossen sein.
Wo soll denn sonst das Bezugspotential (geschlossener Stromkreis) herkommen? Eine Lampe Leuchtet doch auch nicht wenn du nur den Pluspol anschließt.
 
Hallo Winni,

hast Du zwischenzeitlich mal am FrSky-Empfänger die Spannung der Servosignale mit dem Oszi getestet?

Heiko

Noch nicht, ich weiß gar nicht ob mein alter Oszi noch funktioniert. Über 15 Jahre schon nicht mehr benutzt.:hfg
 
Ja, du kannst nicht nur das Signal an den Pin legen. Das funktioniert nie!
Die Masse muß von allen angeschlossenen Komponenten Identisch sein.
Also Masse und Signal muss zwingend angeschlossen sein.
Wo soll denn sonst das Bezugspotential (geschlossener Stromkreis) herkommen? Eine Lampe Leuchtet doch auch nicht wenn du nur den Pluspol anschließt.

Hmmm... Das ist ja so etwas von logisch...

Danke für den Wink mit dem Zaunpfahl, ich gelobe Besserung... ;)
 
Hallo Winni,

wie gesagt, ich bin auch eher zufällig da mal drüber gestolpert, weil ein selbstprogrammiertes Arduino-Lichtmodul partout nicht funktionieren wollte. Der Code an sich war sauber, bis ich auf die Idee kam, mir die Signale am Zwo4E4 mit meinen Oszi anzuschauen: Siehe da, lediglich ca. 3,1V. Als ich dann das Arduino-Board in der 3,3V-Ausführung genommen habe, klappte das einwandfrei.
Sonst häng doch das FrSky bitte an Dein Oszi und mess mal die Pegelspannung. Da bin ich jetzt irgendwie neugierig. :)

Heiko
So Heiko, ich habe meinen alten 4-Strahl Monster-Oszi vom Speicher hervorgekramt.:hfg
Und er funktioniert noch :)

PIC 002-800x600.jpg

Das Bild ist kleider ein wenig unscharf. Freihand und ohne Blitz!
Aber die Messung hat ergeben: exakt ein Impulse von 3,08 Volt.
Unterkannte von dem verwackelten Impulse-Strich gilt. ;(

PIC 003-800x600.jpg

EDIT:
Hier noch ein Bild wo es besser zu erkennen ist.

PIC 004-800x600.jpg
 
Hallo Winni,

danke für die Info. Also identisch mit den Zwo4-Modulen. Ich lehne mich jetzt mal ganz weit aus dem Fenster und behaupte, dass beide sendeseitig das ZigBee-WLAN-Modul nutzen. Jetzt muss ich nur noch rausfinden, wieso Du offenbar Empfängersignale am 5V-Arduino problemlos auswerten kannst und ich nicht. :frage

Heiko
 
Hallo Heiko, ich habe es jetzt mit folgendem einfachen Sketch getestet, und festgestellt, das real (kein Datenblattwert) mein Arduino Micro (Atmega 323u4) am digitalen I/O alles von 1,4 Volt bis V[SUB]cc[/SUB] als HIGH auswertet.

Sketch

//
// Test Digital Input auf Schaltpunkt LOW / HIGH;
//
//10 K Poti zwischen GND und V[SUB]cc[/SUB] (5 Volt) Schleifer an Pin 8;


int led = 13;
int eg = 8;

void setup()
{
pinMode (led, OUTPUT);
pinMode (eg, INPUT);
}
void loop()
{
digitalWrite (led, digitalRead(eg));
}

//end-sketch

Bei exakt + 1,4 Volt geht die interne LED an.
 
Hallo,

danke für den Test Winni. :g5
Ich hab das eben mal mit einen Arduino Pro Mini (Atmel328P) an 5V getestet. Auf den Schnelltest-Code hätte ich ja auch mal selber kommen können. Ab ca. 2,45V (0,5 x Vcc) sprang die LED an.

Fazit:

1. Das "normale" Arduino-Board in all seinen Ausführungen sollte eigentlich auch an 3,3V-Empfängern funktionieren.
2. Mein Code taugt offenbar dafür noch nicht. Kleiner Auszug:
Code:
 if(digitalRead(pin_empfaenger_schnellberge) == HIGH){
    zeit_regler_schnellberge = pulseIn(pin_empfaenger_schnellberge, HIGH);
  }

Wie man sieht lauert das Programm darauf, dass der Empfänger-Pin auf HIGH geht. Dann wird die Zeit in Microsekunden gemessen und weiterverarbeitet. Da muss ich mir noch mal was überlegen.

Heiko
 
Ich betreibe auch eine selbstentwickelte Schaltung mit einem ATTinyX4 an einem FrSky Empfänger. Die Schaltung versorgt sich direkt aus dem BEC, die Pegel werden sauber erkannt.
 
Hallo,

so, ich habe das Problem gefunden (sass wieder einmal vor der Tastatur). Das ist so peinlich, das darf man fast gar nicht erzählen...

Ich hatte offenbar das falsche Board ausgewählt. :sauer

Statt dem Mini Pro mit 5V/16Mhz hatte ich wohl das 5V/8Mhz erwischt. So etwas saudämliches. :fies

Heiko
 
Wieso peinlich? Quatsch. So was kann eben mal passieren.:oops
 

Servonaut
Zurück
Oben Unten