Anfänger scheitert wohl bereits am Anfang

Hallo Community,
ich bin neu hier, obwohl ich schon länger in diesem Forum rumschnüffle.

Mein kleines Projekt ufert jedoch aus, weshalb ich euch um eure Hilfe bitte.

Das ursprüngliche Projekt bekann mit dem Gedanken, ein simples Rechtecksignal zu teilen. Nach dem finalen Ermitteln der verfügbaren und benötigten Frequenzen wurde mir klar, IC´s sind nicht die richtige Lösung.

Der verfügbare Frequenzbereich ist zwischen 0 und ca. 770Hz (5V Amplitude), die Benötigte sollte mit 0,278 Multipliziert werden und ebenfalls eine 5V Amplitude darstellen.

Somit kam ich auf den Gedanken eines Mikrokontrollers.
Der sollte soetwas a problemlos realisieren können...
"Kann ja nicht so schwer sein" - denkste...

Für die ersten Versuche bestellte ich aus China zwei Klone namens "Pro Micro" mit dem 5V/16MHz ATmega 32U4 und einer verarbeitbaren Spannung an RAW von maximal 18V.
Dies erschien mir zur Verwendung im KFZ-Bereich als sinnvoll.

Von dem Theater bis die Dinger überhaupt erkannt werden und ein Hochladen von Sketches akzeptierten habe ich mich mittlerweile erholt.

Doch verzweifle ich nun an dem Eindruck, die Pseudorinos würden sich aufhängen.

Ich habe vieles versucht,
sie lassen sich als Leonardo ansprechen,
als auch als Sparkfun Pro Micro mit 5V.

Doch Bare Minimum und Blink (mehr habe ich noch nicht versucht) endet mit Dauerleuchten von PWR, TX und RX.
Einzig der Blinkcode von Sparkfun und der angehängte Ähnliche zeigten Funktion.
Hatte jemand schon ein solches Problem und kann mir einen Tipp geben, was ich übersehe?

USB3.0/USB2.0, verschiedene Kabel, verschiedene Spannungen an Raw, 5V an VCC, ständige Reset´s, IDE Neuinstallation und so weiter habe ich schon versucht.

Doch das Leuchten der TX/RX bekomme ich nicht in den Griff.
Ab und an leuchtete die TX nach dem Upload, nach Anschluss an externe Stromversorgungen jedoch zusätzlich die RX.

Ich habe auch schon ein grobes Gerüst für meine Frequenzveränderung zusammengeschustert (ehrlich gesagt besteht es aus mehr kopierten Zeilen, als aus eigenen Überlegungen, weil mir dafür das Wissen fehlt), aber es besteht schon mal sie Überprüfung.

Doch zuerst sollte ich das permanente Leuchten der TX und RX in den Griff bekommen!?

Besten Dank für Eure Tipps
Stefan


int RXLED = 17;  // The RX LED has a defined Arduino pin
// The TX LED was not so lucky, we'll need to use pre-defined
// macros (TXLED1, TXLED0) to control that.
 
void setup()
{
 pinMode(RXLED, OUTPUT);  // Set RX LED as an output
 // TX LED is set as an output behind the scenes
 
 Serial.begin(9600); //This pipes to the serial monitor
 Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
}
 
void loop()
{
 Serial.println("HELLO! 14CORE");  // Print "Hello World" to the Serial Monitor
 Serial1.println("14CORE");  // Print "Hello!" over hardware UART
 
 digitalWrite(RXLED, HIGH);   // set the LED on
 TXLED1; //TX LED is not tied to a normally controlled pin
 delay(1000);              // wait for a second
 digitalWrite(RXLED, LOW);    // set the LED off
 TXLED0;
 delay(1000);
}

Natürlich nicht.
Ist es doch die Serielle(USB) Schnittstelle, die da auch dran rum fummelt.

Dies Problem besteht leider auch bei anderen Stromversorgungen.
(ohne mit dem Rechner verbunden zu sein)

Welches Problem?

Ich liege doch hoffentlich nicht falsch, wenn ich der Meinung bin, dass nur Die Power-Leuchte zu arbeiten hat, wenn der Microcontroller mit Strom (ohne PC) versorgt wird!?
Die RX und TX leuchten doch nur, wenn was nicht stimmt!?

Sie sollen leuchten, wenn die Serielle was zu tun hat.
Wenn die aktiv ist.

Der betreffende Code liegt auf deinem Rechner.
Schau rein

So war auch meine Denkweise.
Doch lade ich 01. Basics Blink hoch, klemme ich ihn ab, externe Stromversorgung - leuchtet alles.
Lade ich den Code von Sparkfun hoch, externe Stromversorgung - blink blink
Lade ich 01. Basics Bare Minimum hoch, externe Stromversorgung, leuchtet wieder das ganze Ding.
Die Logik erschließt sich mir nicht.

Tut sie (vielleicht) wenn du in den Code schaust.
Du kannst den Code auch ändern, wenn er nicht das tut was du willst.

Zusammen gefasst:
Hast du keine anderen Problem, als solche, an den Haaren herbeigezogene?

Hmm, nicht mal vielleicht...
bei "blink"...
Halt, jetzt...
boah, ich steh sowas von am Anfang...
Du hättest es mir aber auch einfacher machen können. :rofl:
Durch Ändern von LED_Builtin zu "17" hab ich selber und ganz alleine die RX zum blinken gebracht... :see_no_evil_monkey:
womöglich dann auch mit
int LED_Builtin = 17;
und TXLED0 ist a das "Makro", das das Ding aus macht.
Aber weshalb leuchtet der Christbaum bei Bare Minimum?
Ist das dann ne China-Eigenheit?

Das war keine besonders gute Idee. Wie Du ja schon gemerkt hast, haben die pro Micro so ihre Eigenheiten. Ein classic Nano ist wesentlich 'einsteigerfreundlicher'. Und das mit den 18V am Vin/RAW solltest Du nicht so wörtlich nehmen... - das hat seine Tücken.

Zum einen: wie schon von combie erwähnt, solltest Du von den TX und RX Leds die Finger lassen. Die werden genutzt um Aktivität auf der Leitung zum PC anzuzeigen, werden also schon von Funtionen des Arduino-Systems (Serial) genutzt.
Das Dauerleuchten hat einen anderen Grund: nicht alle Boards mit dem 32u4 sind bezüglich dieser LED's gleich aufgebaut. Es gibt welche, da muss man den zugehörigen Pin auf LOW schalten um die Led einzuschalten, und es gibt welche, da muss man den Pin auf HIGH schalten um die Led einzuschalten. Wenn Du nun das 'falsche' Board auswählst. meint die Systemfunktion der seriellen Schnittstelle die LED auszuschalten, in Wirklichkeit wird sie aber eingeschaltet. Dann bekommst Du das Dauerleuchten.
Also: Dauerleuchten=falsches Board ausgewähllt.

Und da der pro Micro im Gegensatz zu Leonardo und Arduino-Micro keine 'builtin' Led hat, kann der Blinksketch auch nicht funktionieren.

Der Microbahner war schneller :slight_smile:

Als Ergänzung trotzdem:
Es empfiehlt sich immer wenigstens einmal einen Schlatplan gesehen zu haben.

Habe nach bestem Wissen versucht dir mitzuteilen, dass du auf einem Irrweg bist und die beiden LEDs in ruhe lassen sollst.

Ist mir aber nicht gelungen.
Bis jetzt noch nicht.

Halte ich für sehr optimistisch!
Übertrieben optimistisch.

Das Thema gab es hier doch schon mal:

Vielen Dank für eure vielen Antworten.

Ich ging sehr unbedarft an die Sache, wollte ein möglichst kleines Board, um das irgendwo zwischen zu quetschen.
Für mein Vorhaben sind nicht viele Pins nötig.
Und die angeblichen 18V könnten mit den Spannungsspitzen des schmutzigen KFZ-Stroms klar kommen.
So war für mich der Klon ideal für die ersten Versuche und kein Verlust, falls ich das Ding (zwecks Analyse) mit´m Hammer massiere.

Mal ehrlich, es geht doch niemand davon aus, dass Billigprodukte aus China jemals mit irgendeiner Art von Problemen behaftet sind! :see_no_evil_monkey:

Der entscheidende Hinweis, dass ich nun einfach nur das falsche Board auswählte, brachte mich schon ein gutes Stück weiter.
Nur wäre ich für nen Tipp dankbar, ob´s ne "funktionierende" Auswahl gäbe.
Ich hab schon viele quer versucht und es passierte oft genug, dass dann das blöde Ding aus dem Gerätemanager verschwand.

Ich konnte es zwar immer wieder beheben, indem ich es mit RST/GND und gleichzeitigem Upload von irgendeinem Minisketch unter bewährter Konfiguration malträtierte - aber das nervt mal richtig.

Dass der pro Micro keine "builtin" hat und diese als Pin 17 angesteuert wird, fiel mir heute Nacht auch wie Schuppen aus den Augen.
@Kai-R Genau solche Boards wie Du habe ich auch hier.
Ich war der Meinung, die sufu bedienen zu können. (wieder mal denkste)

In einem KFZ können dir noch viele andere Probleme unterkommen.
Wenn du mal kurz beschreiben könntest, was genau du machen bzw. erreichen möchtest, gibt es sicher auch dafür einige Tipps.

Der "verschwindet" nicht - er ändert sich.
die USB Serial steht eben nur kurz für den Upload zur Verfügung - danach kann sich das Gerät als HID melden (wenn ein entsprechender Sketch drauf ist).
Deswegen wählt man einen Pro Micro.

Wenn du dauerhaft eine Serielle willst, brauchst du einen TTL-USB Adapter an RX/TX (Serial1).

Evtl. hilft das:

Deine Pro Micro Boards kannst du für Projekte verwenden wenn du die native USB Fähigkeit des ATmega 32u4 nutzen willst.

Einfacher ist, du besorgst dir einen herkömmlichen Nano Classic für erste Versuche mit LED Geblinke und Debug Ausgaben auf der Seriellen Schnittstelle.

Wenn ich meine 'pro Micro' als 'Leonardo' programmiere, bleiben die TX/RX im Ruhezustand (ohne 'Serial'-Aktivität an der PC-Schnittstelle) aus. Man muss sich nur bewusst sein, dass es nicht alle für den Leonardo definierte Pin-Nummern am Pro Micro gibt.
Den Pin 13 gibt es z.B. gar nicht - nicht nur dass da keine Led dranhängt, der ist auch nicht auf die Pin-Leiste rausgeführt. Ein Blick auf das Schaltbild ist da immer hilfreich.
Alternative ist der Sparkfun Core. Der sollte ja zum pro Micro passen (habe ich aber noch nicht genutzt).
P.S. Ich habe aber nur 5V/16MHz Varianten. Bei den 3,3V Varianten dürfte kein Weg am Sparkfun Core vorbeigehen.

Du sollst Pin 17 in ruhe lassen.
Denn die tut sowieso nicht was du willst, solange du den Bootloader und den Serialcode nicht veränderst.

Du hast eine lustige Vorstellungswelt.
Natürlich ist das frustrierend, wenn man mit den falschen Annahmen einsteigt.

Merke:
Der Weg in die Hölle ist mit falschen Annahmen gepflastert.

Dein Pro Micro ist halt schon arg exotisch.
Hat Ähnlichkeit mit dem Leonardo oder Micro, aber mehr auch nicht.

Ich habe das bewusst vermieden, um nicht gesteinigt zu werden.

Es geht um ein Geschwindigkeitssignal Rechteck Amplitude 5V.
Gemessen habe ich bei mehreren Geschwindigkeiten und somit die exakten Verhältnisse ermittelt.
30 Km/h 93HZ ... 150 Km/h 465Hz.

Damit möchte ich ein Steuergerät eines anderen Herstellers bescheissen.
Dafür habe ich zwei verschiedene zur Auswahl
und zum Ermitteln Frequenzen erzeugt.
Beide reagieren ab etwa 1 Hz,
agieren aber ab etwa 34,5Hz.
Dies sollte 40Km/h entsprechen. (Ich habe dabei 124Hz)
Eines stoppt bei 160Km/h - 138Hz. (wären bei mir 427,8Hz)
Das Andere stoppt bei etwa 175Km/h - 151Hz (wären bei mir 542,5Hz)
Dafür möchte ich die Frequenz teilen.
(Gerne hätte ich linear ca 34,5Hz bei 30km/h und erst 150 Hz bei 200 Km/h,
jedoch ist dann nicht mehr linear von 0 ausgehend und für mich wahrscheinlich unüberwindbar zu programmieren.)

... bei mir als unbekanntes USB-Gerät mit Ausrufezeichen, begleitet mit Gemaule vom PC...