Archiv für den Monat: Mai 2014

Ein Sinus Signal mit dem R2R DA-Wandler am Arduino Uno ausgeben.

Ein Sinus Signal wird mit dem DA Wandler erzeugt und ausgegeben.

Dazu werden als erstes die Sinus Stützwerte berechnet. Für schnelle Frequenzen müssen wir wenig Stützwerte verwenden. Wenn die Frequenz niedriger wird, können mehr Stützwerte genommen werden.

Bei dem 4-Bit DA-Wandler sind 16 Ausgangsspannungen einstellbar, von 0 bis 15 Binär.
Das entspricht einer Spannung von 0 bis 4,7V. Weiterlesen

Ein Rechtecksignal mit hoher Frequenz direkt aus dem Arduino Uno ausgeben

Mit der schon vorher besprochenen Funktion lassen sich hohe Rechteck Frequenzen erreichen.

while(k==10) {
  PORTB=B00111100; // 15
  asm("nop\n nop\n");
  PORTB=B00000000; // 0
}

Weiterlesen

Ein Rechteck Signal mit einstellbarer Frequenz ausgeben

Nachdem ich nun die Obergrenze des Rechtecksignals getestet habe, will ich mir jetzt mal die unteren Frequenzen ansehen. Da bieten sich die delay(ms) und delayMicroseconds(us) Funktionen an.

Ein Prozessortakt dauert bei 16 MHz Takt 62,5 Nano Sekunden. Meine while schleife mit den nops und Portausgaben benötigt 6 Takte. delayMicroseconds() lässt sich in 1 Mikrosekunden Stufen einstellen bis hin zu 16383, was hier einer Frequenz von ca. 31 Hz entspricht. Weiterlesen

Ein Rechteck Signal ausgeben mit dem R-2R DA-Wandler

Mit dem DA Wandler soll ein Rechtecksignal auf den Pins 10-13 ausgegeben werden.

Die schnelle und direkte Ausgabe erfolgt indem die Bits des PORT B direkt geschrieben werden. Hier werden die Bits 2 (MSB) bis 5 (LSB) verwendet. Weiterlesen

Ein R-2R 4-Bit Digital-Analog Ausgang wird aufgebaut mit dem Arduino Uno.

Im Arduino Uno ist kein DA Wandler enthalten. Der lässt sich mit einem R-2R Netzwerk ergänzen. Genug digitale Ausgänge sind vorhanden. Hier wird ein 4-Bit DAC aufgebaut. Weiterlesen

Frequenzzähler mit LCD Display am Arduino Uno.

Zum Frequenzzähler wird ein LCD Display 16 x 2  hinzugefügt basierend auf den beiden Projekten:
– Frequenzzähler Teil 1 & Teil 2
– LCD Display Teil 1 & Teil 2 Weiterlesen

Eine Integer Zahl in das Arduino EEPROM schreiben und wieder lesen

Eine Integer Zahl soll im Arduino EEPROM abgelegt und wieder ausgelesen werden.

Der EEPROM.write Befehl schreibt jeweils ein Byte an die Adresse.
Integer sind aber 2 Byte, sodass die Zahl zerlegt wird und beide Teile einzeln an zwei aufeinander folgende Adressen geschrieben werden. Weiterlesen

Luftdruck und Temperatur als NMEA 0183 Datensatz ausgeben.

Mit den 3 vorherigen Artikeln über den BMP085, der Checksum Berechnung und der Umwandlung von Float in String kann ich nun die Temperatur und Luftdruck Daten als NMEA 0183 Datensatz mit 4800 Baud ausgeben lassen. Weiterlesen