[erledigt] Ist mein Arduino-Geschreibsel fertig?

Hallo zusammen!

Weil es mir Spaß macht, habe ich meine jüngsten Merkzettel aufgebohrt und unter http://html.szaktilla.de/arduino ins Netz gekippt.

Ich würde den „Unfertig-Hinweis“ gerne entfernen und würde mich freuen, wenn das jemand lesen und Bescheid geben könnte, ob wichtige Dinge fehlen oder Tippfehler drin sind.

Vielen Dank vorweg!

Gregor

Mir ist folgendes aufgefallen: 8 -> Datenspeicher

"Der Inhalt einer so angelegten Variablen wird im Flash untergebracht und belegt auf diese Weise kein RAM."

Das ist dann halt keine Variable mehr sondern eine Konstante, weil während des Programmablaufs
nicht änderbar. Darauf solltest du hinweisen.

Grüße

Harry

HarryR:
Mir ist folgendes aufgefallen: 8 -> Datenspeicher

"Der Inhalt einer so angelegten Variablen wird im Flash untergebracht und belegt auf diese Weise kein RAM."

Das ist dann halt keine Variable mehr sondern eine Konstante, weil während des Programmablaufs
nicht änderbar. Darauf solltest du hinweisen.

Done. Danke!

Gruß

Gregor

Deine Webseite fängt im Vorwort sehr allgemein an, landet aber schon im zweiten Satz des einführenden Beispiels:

Links befindet sich ein Arduino Nano, der ein OLED-Display für Ausgaben nutzt und eine Echtzeituhr abfragt.

Die Kommunikation zwischen den Bauelementen erfolgt über einen I²C-Bus (grüne Drähte). Beim Arduino sind zwei „Pull-up-Widerstände“ zu sehen – deren Fehlen ist häufig die Ursache für Probleme mit dem I²C-Bus.

... bei Details, die jemanden, der nicht weiss was I2C überhaupt ist, eher verwirren werden.

Jeder andere, für den das kalter Kaffee ist, weiss natürlich, dass nicht nur du schonmal über fehelende PullUp Widerstände gestolpert bist, aber der braucht die Seite nicht wirklich.

Das Installationsbeispiel für Linux ist wohl ähnlich: Windows user brauchens nicht, Linux Dummies (gibts nicht, weil die windows nehmen) verwirrt es eher, und für andere scheint es mir "nett, aber eher irrelevant"

Das gilt so eigentlich für die anderen Seiten ähnlich.

Bei Wire.h würde ich evtl. erwähnen, dass du nur die Master-Seite behandelst, also nicht die Arduino - Arduino via I2C Kommunikation.

Wenn du denkst es ist "fertig" dann lass es so,
Wenn dir noch mehr über den Weg läuft das neu und interessant für dich ist, sammel es auch und veröffentliche es auf deiner Seite.

"Die Arduino Bibel" hat noch keiner geschrieben und diesem Anspruch kannst selbst du nicht gerecht werden. :wink:

Meine eigene Link Sammlung von "Guten Infos" ist inzwischen ein wüstes Sammelsurium...

Ach ja:

Man nimmt das, was man normalerweise schreiben würde, um auf ein Element des Arrays zuzugreifen …

byte=var[5][4];

… bildet dann die Adresse …

byte=&(var[5][4]);

… und benutzt diese Adresse als Argument für das entsprechende Zugriffsmakro:

byte=pgm_read_byte(&(var[5][4]));

  • Nicht schön, einer Variablen den Namen eines Datentyps zu geben.
  • Nicht schön, eine Variable zu verwenden die nicht deklariert ist.
  • Nicht schön, eine Variable gleichzeitig mit einem anderen inkompatiblen Datentyp zu verwenden.

Etwas schöner:

byte data=var[5][4];
const byte* addr = &(var[5][4]);
data=pgm_read_byte(&(var[5][4]));

Dass byte data jeweils eine Kopie der Ursprungsdaten ist, ist wohl jedem klar, denke ich

michael_x:
...
"Die Arduino Bibel" hat noch keiner geschrieben und diesem Anspruch kannst selbst du nicht gerecht werden. :wink:
..

Eine Arduino-Bibel sollte das nie werden. Und die Frage, wen das interessieren soll, habe ich mir auch schon gestellt. Mir macht es halt Spaß, meine Merkzettel auf diese Weise aufzubohren und bei meinem Geschreibsel dachte ich an Leute wie meinen Neffen, der in Sachen Arduino/Programmieren/Elektronik noch keine Ahnung hat (dafür umso mehr Interesse). Einerseits soll das ein „Appetizer“ sein, andererseits sollen ein paar wenige Dinge drin sein, die Spezialitäten so weit anschneiden, dass man etwas damit anfangen kann.

michael_x:
...
Meine eigene Link Sammlung von "Guten Infos" ist inzwischen ein wüstes Sammelsurium...
...

... das mich interessieren würde. Kipp’s bei Gelegenheit mal ins Netz.

Gruß

Gregor

michael_x:
Ach ja:
...
Etwas schöner:
...

Klasse! Danke!

Dass es ungünstig ist, syntaktisch falsche sachen zu zeigen, ist mir aufgefallen. Im Grunde habe ich lediglich das Beispiel aus der Doku zur Bibliothek genommen und übersetzt. Dabei war ich ein bisschen faul ...

... vielleicht, weil gerade Wochenende war.

Gruß

Gregor

Was man bei Wire.onRequest() unbedingt noch erwähnen sollte, ist dass man daran nur einmal write() machen kann! Darauf sind schon viele Leute reingefallen und ich habe es lange Zeit auch nicht gewusst, da das nirgends wirklich dokumentiert ist.

Wenn man also mehrere Variablen senden will muss man diese in ein Array verpacken. Das kann man entweder temporär lokal anlegen und die Sachen reinkopieren, oder man macht global eine Union aus seinen Variablen und einen Byte Array. Dann kann man die Variablen auf beide Arten ansprechen.

Hallo nochmal!

Danke für die Hilfe!

Ich habe eingesehen, dass für einen „Primer“ ein paar Worte zur IDE und zum Programm(ieren) fehlen.

Kommt Zeit, kommt Abschnitt :slight_smile:

Gruß

Gregor