Archiv der Kategorie: ICs

Den Arduino Quarztakt auf 3ppm genau bestimmen mit der DS3231 RTC

Der Arduino Uno hat einen 16MHz Quarz für den Prozessortakt.

Diese Quarzfrequenz ist von der Temperatur abhängig, typisch +-30ppm oder 480 Hz über normale Temperaturen und Herstellungsbedingt fehlerhaft in der Größenordnung von typisch +-30ppm oder 480Hz. Das ergibt zusammen einen Fehler von +-960Hz oder 60ppm. Bei einer Frequenzmessung kann das zu großen Fehlern führen sodaß die 4. Stelle schon falsch sein kann. Bessere Angaben liefert das Datenblatt vom Quarz oder der Aufdruck.

Das läßt sich verbessern auf unter 3ppm oder 48 Hz Fehler mit der RTC DS3231. Dazu wird der 1Hz Ausgang des DS3231 verwendet um bei steigender Flanke einen Interrupt im Arduino auszulösen. Bei jedem 4. Interrupt (4 Sekunden) wird die vergangene Prozessorzeit mit der Funktion micros() in Mikrosekunden ermittelt. Daraus kann nun der Prozessortakt genauer bestimmt werden. Weiterlesen

RTC3231 Aufbau

Von der RTC DS3231 die Temperatur auslesen mit dem Arduino

Die RTC DS3231 kompensiert die Quarz Frequenzänderung mit der Temperatur. Die Temperatur wird alle 64 Sekunden neu gemessen. Man kann diese Quarz Temperatur auslesen.

Hier das Arduino Programm dazu Weiterlesen

RTC3231 Aufbau

Rechteck 1Hz (+-2ppm) ausgeben mit dem RTC DS3231 und dem Arduino

Die RTC DS3231 kann auch ein sehr genaues Rechtecksignal ausgeben am SQW Ausgang. Dazu wird das Control Register entsprechend gesetzt.

Diese 4 Frequenzen sind einstellbar: 1Hz, 1024Hz, 4096Hz, 8192Hz. Die Signale sind symmetrisch und die Amplitude entspricht fast VCC (also 3,3V oder 5V)

Zusätzlich stehen am 32kHz Pin immer 32768Hz zur Verfügung. Dieses Signal ist aber nicht symmetrisch (ca. 1/3 An und 2/3 Aus).

Die hohe Genauigkeit des RTC3231 bleibt dabei erhalten. Dadurch werden diese Frequenzen mit nur +-2ppm Abweichung ausgegeben.

Hier das Programm mit den 4 Funktionen Weiterlesen

RTC3231 Aufbau

Die Uhrzeit des RTC DS3231 Modul vom Arduino einstellen

Die Uhrzeit des RTC DS3231 Uhrzeitmoduls soll vom Arduino einmalig eingestellt werden. Danach speichert das Modul die richtige Uhrzeit und läuft mit der angebauten Batterie weiter.
Die Verkabelung wurde im vorherigen Beitrag beschrieben.

Hier das Programm.
Die aktuelle Uhrzeit +1min wird manuell eingegeben unter setup(). Dann wird das Programm ca. 4 Sekunden vor der Uhrzeit übersetzt und hochgeladen. Es sollte nun ungefähr zur richtigen Uhrzeit im RTC Chip ankommen. Ansonsten ein wenig mit den 4 Sekunden herum spielen. Weiterlesen

RTC3231 Aufbau

Die Uhrzeit des RTC DS3231 Modul vom Arduino auslesen

Das Uhrzeitmodul RTC DS3231 (Real Time Clock ZS-042) ist eine genaue Uhr mit eingebauten Quarz. Dieser Quarz wird intern Temperatur überwacht und korrigiert sodass sie einen Fehler von nur +-2ppm hat, was ca. 1 Minute pro Jahr entspricht.

Ich habe das RTC3231 mit 4 Leitungen an den Arduino Uno angeschlossen. Weiterlesen

Folientastatur

Mit der 4×4 Folientastatur Zahlen eingeben am Arduino

Ich habe eine 4×4 Folientastatur bekommen. Damit möchte ich verschiedene Zahlen in den Arduino Uno eingeben, ändern und auch löschen können.

Es gibt eine praktische Library Keyboard auf der Arduino Seite. Die erleichtert die Arbeit ganz erheblich.

Die Tastatur hat links 4 Anschlüsse für die 4 Zeilen, von oben beginnend. Daneben sind die 4 Anschlüsse für die 4 Zeilen von links beginnend. Diese 8 Anschlüsse werden mit Kabeln verbunden zu den Arduino Digital Pins D11…D4. Das finden wir nachher im Programm wieder. Weiterlesen

ESP8266 AccessPoint – Die blaue LED per HTML Seite vom iPhone umschalten.

Die blaue LED auf dem ESP-01 Board zeigt den seriellen Datenverkehr an. Sie soll nun hier von einer HTML Seite aus geschaltet werden.

Dazu ist es notwendig den seriellen Datenverkehr abzustellen. Alternativ dazu könnte auch eine LED mit Vorwiderstand an den GPIO-2 geschaltet werden. Ich nehme hier für diese einfache Demo aber die schon vorhandene blaue LED. Weiterlesen

Den ESP8266 mit der Arduino IDE in Betrieb nehmen

Ich habe einen ESP8266 WiFi Chipsatz ESP-01 für ein paar Euro zu bekommen. Das ist ein kompletter Mikrocontroller mit WiFi und Antenne auf der Platine.

Er soll nun in der Arduino IDE programmiert werden können.

Zuerst wird die Arduino IDE Version 1.6.5 von der Arduino Homepage geladen und installiert. (Die zur Zeit aktuelle Version 1.6.6 macht Probleme)

Dann geht es weiter in der IDE unter:
Datei > Voreinstellungen
bei der Zeile Additional Boards Manager URLs: wird eingetragen
http://arduino.esp8266.com/stable/package_esp8266com_index.json
und dann mit OK bestätigt.

Und dann in der Arduino IDE
Werkzeuge > Platine… > Boards Manager
ganz unten steht: esp8266…
Das auswählen und Install drücken
Ca. 156 MB werden nun installiert. Weiterlesen

MCP4725 12Bit DA Wandler vom Arduino ansteuern

Der Microchip MCP 4725 Digital zu Analog Wandler wird über den I²C Bus angesteuert. Er kann die Spannungen von GND bis VCC ausgeben mit einer 12 Bit Auflösung oder 4096 Werten. Bei 5V Versorgungsspannung ist das eine Auflösung von ca. 1,2 mV pro Bit.

MCP4725

Die Ansteuerung ist einfach mit 2 Leitungen zu bewerkstelligen
A4 > SDA
A5 > SCL Weiterlesen

Eine Grafik auf dem 5110 LCD Display ausgeben

Auf dem Nokia 5110 LCD Display soll eine Grafik ausgegeben werden. Später soll ein Frequenzspektrum dargestellt werden, vorerst werde ich aber Zufallszahlen verwenden und darstellen, was dann wie ein Rausch Spektrum aussieht.

Eine schöne Grafik Library für den Arduino hat Henning Karlsen hier bereit gestellt.

Die Anschlüsse:
Ich habe hier eine 5V Daten kompatible Version. Normalerweise wird aber ein Daten-Spannungsumsetzer von 5V > 3,3V in die Datenleitungen geschaltet, da das Display nur für 3,3V Datenpegel ausgelegt ist.
Pin 8 > Clk
Pin 9 > Din
Pin 10 > DC Weiterlesen