Archiv der Kategorie: Ardunio Uno

GY-68 mit Sensor BMP85/BMP180

Der Bosch BMP85 ist ein barometrischer Sensor.  Er kann den Luftdruck und die Temperatur messen, um daraus die aktuelle Höhe über 0 zu berechnen.  Der BMP85 wird nicht mehr hergestellt und wurde durch den BMP180 abgelöst. Der BMP180 ist von der Bauform kleiner aber ansonsten fast baugleich mit seinem Vorgänger.  Unterschiede können den gelinkten Datenblättern entnommen werden.  Bei den Kerndaten habe ich bis auf den höheren Stromverbauch beim BMP180 keine Unterschiede feststellen können. (Datenblätter BMP85 / BMP180)
Der Sensor kann mit 1,8v bis 3,6V betrieben werden. Da der Arduino einen 5V I2c Bus hat empfiehlt es sich ein Sensorboard wie das GY-68 zu verwenden.

Ansicht

Daten

NameGY-68 mit Sensor BMP85/180
SensortypBarometer
Thermometer
Betriebsspannung5V
Sensorspannung 1,8-3,6V
BusI2c
Genauigkeit0,01 hPa
0,1°C
Messbereiche300hPa bis 1100 hPa
0°C bis +65°C

Schaltung

Anschluss

GND Masse
SDA I2C SDA
SCL I2C SCL
Vin 5 V

 

Einsatzzwecke

  • Bestimmung der Höhe über 0
  • Ausgleich/Vergleich von Aussen- und Innendruck
  • Warnung vor Überdruck
  • Erhöhung der Genauigkeit bei GPS

Programmierung

Bibliothek

Es gibt von Adafruit zwei Treiber-Bibliotheken. Eine ältere und die neue „Unified“. Beide leisten das Gleiche. Die „Unified“ folgt den Adafruit Programmierrichtlinien für Sensoren und ist somit bei einem Sensorwechsel leichter austauschbar.

Sucht im Bibliotheksmanger nach BMP180.

Wie das geht seht ihr hier.

Testprogramm

Das Beispielprogramm ist  in der Bibliothek enthalten. Diese habe ich für meine ersten Test verwendet.

Pfad ist: Adafruit BMP085 Unified -> sensorapi

Hier seht ihr wie ihr ein Beispielprogramm auswählen könnt.

Ausgabe

Die Ausgabe sieht erstmal OK aus. Mangels Vergleichswerten konnte ich diese, bis auf die Temperatur, nicht auf ihre Genauigkeit überprüfen. Die Temperatur war rund 2 Grad zu hoch.

Probleme

Generelle I2c Probleme

http://fambach.net/uno-wire-scannen/

Quellen

https://github.com/adafruit/Adafruit-BMP085-Library

https://github.com/adafruit/Adafruit_BMP085_Unified

Uno – Wire Scannen

Der I2c oder auch 2 Wire Bus genannt, arbeitet mit zwei Kabeln und  theoretisch mit einer Geschwindigkeit von bis zu 5 Mbit/s. Für den Hobbybedarf mit Freiluftverkabelung sind es wahrscheinlich eher weniger.

Der Uno hat den Wire-Anschluss am analogen Ausgang 4 und 5. Zum Testen habe ich ein GY-68 Barometer angeschlossen welches auf Port 0x77 des I2C Busses arbeitet.

Schaltung

Programm

Das folgende Testprogramm habe ich mir aus einigen Beispielen zusammen „gesucht“. Es dient dazu, einfach mal zu schauen ob die aufgebaute Schaltung auch richtig verdrahtet ist.
Das Porgram geht alle Adressen des I2C Busses durch und klopft mal beim Empfänger an. Antwortet dieser, wird der Port und am Schluss die Anzahl der gefundenen Teilnehmer angezeigt.

Quellocode

ScanWiree.ino

Ausgabe

Probleme

Das Wire Modul antwortet nicht

Einfach mal SDA und SDC vertauschen.

Sollte das Problem immer noch bestehen, mal veruschen Pullup Widerstände in die Schaltung einzubauen. Der Uno hat allerdings schon Pullups, sollte also eigentlich nicht nötig sein.

Quellen

https://de.wikipedia.org/wiki/I%C2%B2C

https://www.mikrocontroller.net/topic/88806

https://playground.arduino.cc/Main/I2cScanner

https://gist.github.com/tfeldmann/5411375

Arduino Uno

Aktuelle ist der Uno in der Revision 3 auf dem Markt. Der Microcontroller ist gesockelt, so dass er, wenn mal was schief geht, einfach ausgetauscht werden kann.

Ansichten

Frontansicht mit den Verbindern für Erweiterungsplatinen, dem Stromanschluss, USB anschluss und Resettaster.

Wie immer, die Unterseite ist unspektakulär.

Überblick

Name Arduino Uno  
Anzahl/CPU
1 / ATmega328P
Takt (MHz)16
Kerne1
Digital IOs / Pins14
Analog inputs6
PWM6
SPI1
Flash Speicher 32 KB
SRam (KB)2
EEPROM (KB)1
WiFi-
Verschlüsselung-
Bluetooth-
UART1
I2C1
Ethernet-
Video-
Sound-
USB1 normal
Betriebsspannung [V]5
Eingangsspannung7-12
Strom (mA) / Standby (mA)
Größe l x b x h68,6 x 53,3
Gewicht [g]25

Kompatible Zusatzplatinen

Arduino Prototyp Platine (V1)

Motor Platine V1

Quellen

https://store.arduino.cc/arduino-uno-rev3

 

Arduino – DHT11 Feuchtigkeitsmesser

Ansteuerung eines DHT10 Sensors über den Ardunio Uno.

Grundlagen

Feuchtigkeitsmesser DHT11

Aufbau

Beschaltung

Testprogramm

#include "DHT.h" //DHT Bibliothek laden

#define DHTPIN 2        // Pin auf dem Arduino
#define DHTTYPE DHT11   // Typ des Sensors

DHT dht(DHTPIN, DHTTYPE); // Eine Instanz des Sensors erstellen

void setup() {
  Serial.begin(9600); 
  dht.begin(); //DHT11 Sensor starten
}

void loop() {
  
  delay(2000); //Zwei Sekunden Vorlaufzeit bis zur Messung (der Sensor ist etwas träge)

  float wett = dht.readHumidity(); //die Luftfeuchtigkeit auslesen
  float temp = dht.readTemperature();//die Temperatur auslesen 
  Serial.print("Luftfeuchtigkeit: "); //Im seriellen Monitor den Text und 
  Serial.print(wett); //die Dazugehörigen Werte anzeigen
  Serial.print(" % \t");
  Serial.print("Temperatur: ");
  Serial.print(temp);
  Serial.println(" Grad Celsius");

}

Output