Hallo zusammen, Nach über 15 Jahren Betriebe ich nun wieder das Hobby Modellbau. Als Fahrzeug habe ich einen Mugen MGX8r eco und Mugen MGX8T beide hauptsächlich für die Rennstecke. Als Funke habe ich eine Futaba T10px. Das reicht auch erstmal als Vorgeschichte :) Jetzt aber zu meinen Gedanken ;) ich habe festgestellt das funke einen Rundenzeitmesser hat. Allerdings funktioniert dieser nur auf Tastendruck. Da dieser Tastendruck relativ ungenau ist, bin ich auf die Idee das zu automatisieren. Ich möchte mit zwei ESP32 Heltec Lora 32 V3 und WLAN RSSI Messung den Rundenzeitmesser realisieren. Also immer bei fallender Flanke des RSSI Wertes soll ein Impuls den Taster an der Funke überbrücken und die Rundenzeit Starten/Stoppen. Also das drücken des Rundenzeittasters an der Funke für mich kontinuierlich übernehmen. Den Schwellenwert kann ich mit einen Poti gut einstellen. Den RSSI sehe ich auch gut auf den kleinen Display. Den Taster Steuer ich mit einen kleinen 3.3V Reedrelais (CRR03-1A | Meder Reedrelais, 3V dc, 1-poliger Schließer). Allerdings hänge ich momentan ein wenig weil das RSSI Signal von meinen Komponenten nicht häufig genug aktualisiert. Und ich weiß nicht warum. Also wenn das Auto durch die Stelle fährt wo der RSSI hoch sein sollte wird das Signal nur sporadisch erkannt. (wenn ich langsam durchfahre klappt es) Den Code und ein paar Fotos habe ich angehängt. Ich hoffe ihr könnt mir hier die entscheidenden Tipps geben oder ggf. andere Hardware empfehlen ;) Allerdings muss diese mit 5-6V funktionieren und extrem klein sein. Da ich diese im Fach der Fernsteuerung verstauen will. vielen Dank und einen schönen Start in die neue Woche! beste grüße Sebastian
Sebastian L. schrieb: > Allerdings hänge ich momentan ein wenig weil das RSSI Signal von meinen > Komponenten nicht häufig genug aktualisiert. Und ich weiß nicht warum. Da gibt es 2 Möglichkeiten: 1. weil die Hardware den RSSI-Wert nicht oft genug aktualisiert 2. weil die auslesende Software ineffizient programmiert und deshalb langsam ist In deinem Fall würde ich erst mal 2. angehen. Denn wenn du in den Mainloop sowohl deine RSSI-Verarbeitung macht und gleichzeitig noch das Display ausrechnest und zudem noch mehrmals Rechenzeit per delay() verplemperst, wundert mich nichts mehr. Trenne den ganze Grafik-Käse vom eigentlich wichtigen Teil des Programms: der Trigger-Erzeugung. Und deshalb male das Display nicht in jedem Durchlauf jedesmal komplett neu, sondern in einer Zustandsmaschine immer nur einen Teil davon und mach schnellstmöglich mit der Mainloop weiter. Ein kleiner Merksatz: ein Programm, das ausserhalb der Initialisierung in der Mainloop ein delay() hat, enthält noch einen Fehler. Der muss behoben werden. Mein Tipp: setzte einfach mal am Anfang der Mainloop einen Pin und setze ihn mittendrin wieder zurück. Und dann miss dann an dem Pin mit einem Oszilloskop (von steigender Flanke bis zu steigender Flanke), wie lange die Durchlaufzeit deiner Mainloop schlimmstenfalls ist. Wenn du dann Zeiten >50ms misst, dann solltest du daran arbeiten oder sicher sagen können, dass das für deine Anwendung unkritisch ist.
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.