Archiv des Autors: admin

Einen String im Flashspeicher mit PROGMEM ablegen und ausgeben

Der SRAM Speicher beim Arduino Uno und Nano hat 2 kByte für Variablen und Strings.
> Infos zum Arduino Speicher.

Das reicht manchmal nicht aus um alle Strings zu speichern und dann kann der Programmspeicher (FLASH) zusätzlich verwendet werden. Hier stehen immerhin 32 kByte zur Verfügung, abzüglich Programm und Bootloader. Dazu gibt es zwei Möglichkeiten. Weiterlesen

3 Tasten: Einen Wert einstellen und im EEPROM ablegen

Um einen Kalibrationswert oder ähnliches einzustellen und im EEPROM abzulegen kann man 3 Tasten nehmen.

Die erste Taste unterbricht das Programm per Interrupt und geht in das Menu.

Die zwei anderen Tasten verändern den Wert. Eine Taste für kleiner und die andere für größer.

Danach verlässt die Interrupt Taste das Menu wieder und der Wert wird im EEPROM abgelegt. Weiterlesen

Eine Taste per Interrupt einlesen und entprellen

Ein Taster an speziellen Anschlüssen kann per Interrupt das laufende Programm anhalten und sofort ein Unterprogramm per Interrupt ausführen.

Die Arduino Uno und Arduino Nano haben 2 solche Interrupt Pins
Pin 2 für Interrupt 0
Pin 3 für Interrupt 1
Für andere Arduino Versionen gibt es hier die Beschreibung.

Wenn z.B. der Pin2 mit digitalWrite(2, HIGH) über den internen Pull up Widerstand auf 5V gelegt wird und als INPUT definiert wird, ist nur noch ein Schalter oder Taster gegen Masse notwendig. Weiterlesen

3 Tasten einlesen im Arduino

Ich möchte mit möglichst wenig Aufwand 3 Tasten einlesen. Dazu werden die analogen Eingänge verwendet.

3 Tasten werden einseitig an GND geschaltet und die andere Seite kommt an A0, A1 und A2.
Die Analogeingänge werden als Eingang geschaltet und mit digitalWrite(A0,HIGH); wird der interne Pullup Widerstand von 20kOhm zu +5V eingeschaltet. Dann wird immer 5V oder der Digitalwert 1023 gelesen. Nur wenn der Taster gedrückt ist, wird 0V oder der digitale Wert 0 gelesen. Weiterlesen

Der Frequenzgenerator und Frequenzzähler

Ich habe mit einem wahren Kabelgrab den Rechteckgenerator LTC1799 an mein 5V Netzteil mit einem 7805 angeschlossen.

Dem Rechteckausgang habe ich zu etwas mehr Leistung verholfen mit einem 7400 IC bei dem alle 4 NAND parallel geschaltet sind und so für einen niedrigen Ausgangswiderstand sorgen.

Diese Ausgangs Rechteckfrequenz geht auf meinen neuen Arduino Nano USB. Hier wird die Frequenz ermittelt und auf einem 16×2 LCD Display angezeigt. Die Beschreibung mit dem Uno gibt es hier. Weiterlesen

Herbstreise II

WackerballigVon Wackerballig liefen wir um den Leuchtturm Kalkgrund, dann Süden und wieder mit ordentlich Ostwind die Küste runter. Da wir im Olpenitz schon auf der Hintour festgemacht hatten, entschieden wir uns für Damp. Der Schwell in der Hafeneinfahrt war beeindruckend. Weiterlesen

Herbstreise

Jörg hat als Titel zwar herbstliche Sturmfahrt vorgeschlagen, aber sooo viel Wind hatten wir dann doch nicht.
Nachher geht’s weiter, sind in Wackerballig und das Essen ist gerade serviert.
So satt;)
Wir sind am Sonntag in Kiel aufgebrochen und mit ordentlich Wind bis Laboe gekommen. Dann nach Damp abgebogen. Zum Schluss ist dann Olpenitz der Zielhafen geworden. Der Hafen ist komplett gesperrt, der Betreiber soll die Verlängerung der Genehmigung vergessen haben.
Wir lagen ganz gut hinten am Schwimmsteg. Weiterlesen

Barometer Display mit 1h / 3h Differenz und Temperatur Ausgabe. Mit dem 5110 Display, BMP-180, Uno

Nun nehme ich die vorhergehenden Artikel und stelle daraus ein Barometer zusammen.

Aus diesen Artikeln ist die Schaltung und die Software entstanden.

Mit dem BMP180 wird der Luftdruck und die Temperatur jede Minute 1 x gemessen und über 5 Werte gemittelt. Dadurch bekomme ich eine relativ stabile 2. Kommastelle hin und kann den aktuellen Wert und den alten Wert später mit 2 Kommastellen vergleichen.

Der Luftdruck wird im EEPROM abgelegt und mit dem Luftdruck vor einer Stunde verglichen.
Die Differenz wird zusätzlich ausgegeben.
Da der Wert als Long (4 Byte) abgelegt wird, können 1024 / 4 = 256 Werte verglichen werden, sodass ich auch mit dem Wert vor 3 Stunden (180 Minuten) vergleichen kann.

Die Daten werden auf dem Nokia 5110 Display ausgegeben. Weiterlesen

Das LCD Display Nokia 5110 ansteuern.

Das Nokia LCD Display 5110 ist preiswert und stromsparend und es lässt sich vom Arduino seriell ansteuern. Es hat 48 x 84 Pixel auf einer Fläche vom ca. 3 x 2 cm.

Meist wird auf einen Pegelwandler 5V > 3,3V hingewiesen. Das brauchte ich aber bei meinem Display gar nicht. Ich habe es mit 5V Spannung versorgt und auch die 5V Datenpegel direkt an das Display gegeben. Dazu sollte man aber vorher beim Lieferanten nachfragen.

Die Verkabelung ist dann wie folgt.
Arduino Uno > LCD Display
+5V > VCC Weiterlesen

Vergleich der Stromaufnahme von Arduino Schaltungen, vom Uno bis zum IC im Schlafmodus auf dem Steckbrett

Der Stromverbrauch der ATMEGA329P-PU Schaltungen wird hier verglichen

1. Arduino Uno im Normalbetrieb, LED13 ist aus
54 mA

2. Arduino Uno im Schlafmodus: SLEEP_MODE_PWR_DOWN
39 mA Weiterlesen