• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Gefahren Arduinogesabbel :)

BAXL

Admin
Mitarbeiter
Ich mache gerade mal einen Abstecher zum Thema Portmanipulation. Verstanden habe ich worum es geht nur muß ich die Sachen auch mal selbst machen. Hintergrund ist die Geschichte mit der Lichtsteuerung für RC-Modelle, weil da scheinbar jeder eingesparte Verarbeitungstakt Vorteile bei der Abfrage der RC-Empfängerausgänge bringt. Ich habe zumindest schon herausgefunden, dass man beim Ein- und wieder Ausschalten eines Pins somit 14 µs einsparen kann, oder anders ausgedrückt, in einer Endlosschleife ohne delays usw. schafft der Arduino in der Zeit, in der er per digitalWrite den Port einmal ein und ausschaltet mit Portmanipulation locker 5 Schaltzyklen. Na das ist doch schon mal was...

Der erzeugte Code wird im Vergleich auch um 2/3 kleiner.
 

yoshi

Betreiber
Mitarbeiter
Am Wichtigsten ist bei der Umsetzung einer wirklich guten Lichtsteuerung das Beherrschen von Interrupts und den Timern. Das Thema sieht relativ simpel aus, ist es aber nicht.

Ich bin damals (Damals! :rolleyes: Das ist keine 10 Jahre her.) an den Interrupts gescheitert. Meine letzte Erkenntsnis war, dass die Datenblätter von Atmel fehlerhaft waren und dieser Teil falsch beschrieben wurde. Lustigerweise wurde aber genau dieser Fehler in vielen Büchern und online immer genau so wiedergegeben. Da zweifelt man an sich selbst und nicht an den Quellen. "Warum funktioniert das bei den anderen und bei mir nicht?" Bei den anderen funktionierte es auch nicht! Nur bekam man den Eindruck als würde es funktionieren. Diese Erkenntnis hatte ich aber erst nachdem ich aufgehört hatte.

Ohne die Interrupts machen die Timer und die Analogfunktionen keinen Sinn. Denn da finden zeitintensive Vorgänge statt, die das ganze Programm blockieren können. Um das zu lösen gibt es ja die Interrupts.
 

BAXL

Admin
Mitarbeiter
Ich habe da eine Seite gefunden, auf der der Autor sich für genau den Zweck (RC-Kanäle auslesen) mit den Interrupts auseinandersetzt, so richtig habe ich das aber auch noch nicht gepeilt. Ich fange aber erstmal bei der augenscheinlich einfacheren Sache der Portmanipulation an.
 

yoshi

Betreiber
Mitarbeiter
Jetzt zweifel ich wieder an mir. Die machen das genau so wie ich damals, nur scheint es bei denen wieder zu funktionieren. o_O
 

Kasi-Hasi

Moderator
Mitarbeiter
das kenn ich. da tippst was Wort für Wort ab um es zu verstehen, nix geht. Dann kopierst frustriert den gleichen Code und das spielt...
 

yoshi

Betreiber
Mitarbeiter
Es könnte auch an der IDE liegen. Ich habe damals die letzte Version des alten Atmel Studio vewendet. Version 4 meine ich.
 

DFENCE

Mitglied
Das wird an der IDE Liegen. Auch das was Kasi schreibt dürfte der IDE Geschuldet sein. Meinste ersten Ausflüge waren mit dem Arduino damals mehr als Frustrierend weil kein Code wirklich funktionieren, fehler ausgespuckt wurden wovon man kein blassen schimmer hat. Heut weiß ich das die verschiedenen IDE´s teilweise unterschiedliche Formatierungen nutzt und so die Sketches von der einen IDE Versionen plötzlich nicht mehr auf der anderen Laufen weil z.b Leerzeichen hinter der klammer kommt. Manchmal ist es aber auch einfach so das die Webseiten den Code verfälschen und abtippen nicht geht aber Copy und Paste weil dann das Raw kopiert wird ohne Formatierung. Für Solche fälle nutze ich übrigens Notepad++ damit lassen sich auch schnell mal sketches tippen und in die IDE Kopieren. Besonders wenn man mit mehreren Sketches arbeitet und die untereinander abgleichen will ist Notepad++ ein sehr sehr mächtiges Tool, Unterstützt auch Python was sehr praktisch ist wenn man später mal mit den ESP richtig spielen will.

Die Wikiseite dazu ( Link zum runterladen sollte da sein )
https://de.wikipedia.org/wiki/Notepad++
 

yoshi

Betreiber
Mitarbeiter
Zu meiner aktiven Zeit war halt Atmel Studio oder AVR Dude angesagt. Ob die in den Büchern und online aber auch mit den Updates mit editiert haben ... Wohl eher nicht!
 

BAXL

Admin
Mitarbeiter
Ich wusel mich allmählich durch die AZ Delivery Wundertüte. Nicht alles ist der Burner, aber bei dem Preis nur für den Versand ist das voll ok. Das nächste Modul ist der IR Linetracker KY-033


Ich weiß noch nicht genau was ich damit anfangen kann. Mein erster Gedanke war vielleicht ein Drehzahlmesser oder als eine Art berührungsloser Endschschalter. Mal sehen was sich ergibt, wenn ich die Testschaltung zusammengesteckt habe.
 

BAXL

Admin
Mitarbeiter
Ich habe mir mal von AZ-Delivery so ein "Vorteilspaket" schicken lassen. Es gibt mehrere Größen. Für 15€, 25€ und 50€. Es sollen jeweils Waren im doppelten Wert enthalten sein. Man hat aber keinen Einfluß auf den Inhalt. Mein 25€ Paket erfüllt scheinbar die Vorgabe. Waren im Wert von 50€ für 25€.

Geschickt wurde mir ein ESP32 Dev Kit C, 1x LM2596, 1x LED 4 fach Matrix 8x8, 1x Widerstandsbox, 1x OLEDSSD 1306, 1x DHT22 Temperatursensor, 1x GY-BME280 Umweltsensor , 1x 4fach Relaiskarte, 1x Kabel MM, MW, WW und drei Breadboards.
Würde ich mir aber nicht wieder bestellen.

Das gibt wieder Stoff für neue Berichte und Sensorvorstellungen. Ich habe aber noch einen Bericht im Hinterkopf, in dem ich quasi eine Anleitung geben will, um praktisch an die Umsetzung eines Projektes heranzugehen. Also keine frünfhundertdrölzige Programmieranleitung, sondern einfach (m)eine Strategie, um ein Projekt zu realisieren (umzusetzen).
 

BAXL

Admin
Mitarbeiter
Heute Morgen schnell an ein paar Pegelwandlerplatienen Stiftleisten gelötet, die brauche ich für mein TFT-Display, das leider nur auf 3,3V läuft und am Arduino bei 5V die weiße Fahne hissen würde. Jetzt kommt wieder die leidige Verdrahtung und das Umstricken des Programms vom WEMOS auf den Nano.
 

BAXL

Admin
Mitarbeiter
Das wars mit dem Pegelwandler. Immer Augen auf beim Kauf. Da stand in der Beschreibung bidirektional und ich dachte, das gelte für alle 4 Kanäle. Pustekuchen, 2 Kanäle in die eine und 2 Kanäle in die andere Richtung. Man muss bei der Artikelbeschreibung immer bis ganz nach unten scrollen und lesen und gucken. Hätte ich die Augen richtig aufgemacht hätte ich gesehen, dass immer nur 2 Kanäle von 5V auf 3,3V gehen und 2 Kanäle von 3,3V auf 5 V.

Weil ich aber 4 mal von 5V auf 3,3V brauche, muss ich zwei Platinen einsetzen und verplemper 4 Kanäle von 3,3V auf 5 V , was das tolle Angebot preislich relativiert und platzmäßig auch. Ja, wer billig kauft zahlt doppelt. Es gibt nämlich auch Platinen die sollen das tatsächlich in beide Richtungen können.
 
Zuletzt bearbeitet:

BAXL

Admin
Mitarbeiter
Neue Erkenntnisse:

1. Die zuerst gekauften Pegerwandlerplatinen sollen lt. Datenblat tatsächlich bidirektional sein. Ich habe sie einzeln "durchgeklingelt", in beide Richtungen und tatsächlich, sie sind bidirektional. es funktioniert aber trotzdem nicht. Darum habe ich einen neuen Pegelwandler geordert den TXS0108E. Gerade mal umgestöpselt und siehe da, es funktioniert! Das Problem sind also die Billigberger von Pegelwandler gewesen.
 
Top Bottom