Meine Libraries:
Hier findet ihr meine Libraries, die ich für meine Projekte geschrieben und auch eingesetzt habe.
Für jede Library gibt es hier auf den nachfolgenden Seiten mindestens ein Beispiel und eine Auflistung der bereitgestellten Funktion mit den zu übergebenden Parametern und Rückgabewerten.
Geeignete Boards für die Libraries:
- Arduino Uno, Nano und sonstige Arduinos mit Atmega328P-Prozessoren: Die Libraries sind mit Arduino Uno oder Nano getestet und werden von mir auch immer wieder verwendet und wenn erforderlich, auch gepflegt.
- Andere Arduinos wie z.B. Arduino Mega: Da in den Libraries kein direkter Zugriff auf prozessorspezifische Register erfolgt, dürften sie auch auf anderen Arduinos lauffähig sein. Das wurde aber von mir nicht getestet. Wenn es jemand ausprobiert, würde ich mich über Rückmeldungen sehr freuen.
- Attiny45/85: Wenn angegeben, sind die Libraries auch für Attiny45/85 geeignet.
- Attiny84: Libraries, die für Attiny45/85 geeignet sind, dürften auch auf Attiny84 laufen. Mit wenigen Ausnahmen habe ich das aber nicht getestet.
- Attiny44: Eine Verwendung mit Attiny44 habe ich im Header der Libraries nicht vorgesehen, da ich diesen Prozessor nie im Einsatz gehabt habe und auch nicht haben werde.
Installation:
Leider kann ich hier keine "cpp"- oder "h"-Files hochladen, daher zum Verwenden der Libraries das Suffix ".txt" aus den Dateinamen entfernen und in einem neuen Verzeichnis mit dem Namen der Library im Sketchbook-Ordner im Ordner "libraries" speichern.
Danke an alle, die Libraries bereits getestet und mir auch ein Feedback darüber gegeben haben!!
16er-Tastatur
Zur Einsparung von binären Ein- bzw. Ausgängen für eine 16er-Tastatur (4x4 Matrix-Tastatur) verwende ich eine Schaltung mit Demultiplexer- und Multiplexerbausteine 74HC238 und 74HC153 und nachfolgende Library für Arduino. Anstelle von 8 binären Pins benötige ich nur 5, was bei der Verwendung der Tastarur mit einem UNO schon sehr wesentlich sein kann. Auch können andere Tastaturformate von 1x4 bis 4x4 Tasten, also z.B. mit 12 Tasten (3x4) verwendet werden.
16er-Tastatur mit I2C
Hier erfolgt die Ansteuerung einer 16er-Tastatur mit dem Portexpander PCF8574 über die I2C-Schnittstelle. Eine Library gibt es für Arduino und Attiny.
Portexpander PCF8574
Funktionen
Library für Arduino und Attiny zur Steuerung eines Portexpanders PCF8574 über I2C-Schnittstelle.
7-Segmentanzeige Sparkfun
Library für Arduino und Attiny für die Ansteueung einer 4-stellige 7-Segmentanzeige mit integriertem Atmega328-Prozessor von Sparkfun.
7-Segmentanzeige HT16K33
Library für Arduino und Attiny für die Ansteueung einer 4-stellige 7-Segmentanzeige mit integriertem HC16K33 LED-Treiber.
Luftdrucksensor BMP180
Library für Arduino und Attiny zur Ermittlung des Stationsniveauluftdruckes, reduzierten Luftdruckes und der Umgebungstemperatur aus den - über I2C-Schnittstelle übertragenen - gemessenen Rohwerten des Luftdrucksensors.
Luftdrucksensor BMP280
Für den BMP280 (dem Nachfolge-Sensors des BMP180) habe ich nun auch eine Library für Arduino und Attiny zur Ermittlung des Stationsniveauluftdruckes, des auf Meeresniveau reduzierten Luftdruckes und der Umgebungstemperatur aus den gemessenen Rohwerten des Sensors geschrieben.
Luftdruck-/Luftfeuchtesensor BME280
Der BME280 ist fast identisch mit dem BMP280, allerdings um eine Luftfeuchtigkeitsmessung erweitert. Hier gibt es eine Library für Arduino (mit I2C- und Hardware-SPI-Schnittstelle) und Attiny (mit I2C-Schnittstlelle).
Luftfeuchtesensor AM2320
Library für Arduino zur Ermittlung der Luftfeuchte und Umgebungstemperatur aus den - über I2C-Schnittstelle übertragenen - gemessenen Rohwerten des Sensors.
Temperatursensor MCP9808
Library für Arduino und Attiny zur Ermittlung der Umgebungunstemperarur aus dem - über I2C-Schnittstelle übertragenem - gemessenen Rohwert des Sensors.
DAC MCP4725
Library für Arduino zur Ansteuerung über die I2C-Schnittstelle eines Digital-Analogwandlers MCP4725. Damit ist die Ausgabe einer Spannung von z.B. 0 bis 5 V mit einer Auflösung von 12 Bit möglich.
I2C-EEPROM
Library für Arduino zur Ansteuerung von EEPROMs (z.B. 24LCxxx) mit Speicherkapazität 1 kBit bis 512 kBit (1.024 Byte bis 65.536 Byte) über die I2C-Schnittstelle.
Ultraschallsensor HC-SR04/HY-SRF05
Meine Library für Arduino und Attiny zur Entfernungsmessung mit den Ultraschallsensoren HC-SR04 und HY-SRF05 findet ihr hier!
LED-Matrix MAX7219
Anfangs nur mit einigen Grundfunktionen ausgestattet, habe ich diese Library zur Ansteuerung einer LED-Matrix (bis zu 8 Module) über Treiberbaustein MAX7219 nun schon mit einigen Zusatzfunktionen erweitert. Für Arduino und Attiny (ab 8 kByte Speicher) geeignet.
Serieller Monitor
Manchmal benötigt man zur Ausführung oder zum Testen eines Programms die Eingabe von Zahlen über den Seriellen Monitor und muss dann jedesmal neu einen Zusatzcode schreiben, der die empfangenen Zeichenketten auf Gültigkeit überprüft, in Integer- oder Float-Zahlen umwandelt und eventuelle Bereichsüberschreitungen erkennt. Aus diesem Grund habe ich für Arduino eine kleine Library geschrieben, die genau diese Aufgaben übernimmt.
Funksicherheit mit 2,4 GHz nRF24L01+ Transceiver -> Library wird derzeit überarbeitet
Funktionen
Zur Absicherung gegen nicht autorisierte Schaltbefehle, die über eine Funkverbindung mittels nRF24L01+ Transceiver, z.B. zu einer Alarmanlage oder einer Torsteuerung gesendet werden, habe ich eine Library für Arduino geschrieben.
FRAM Speicher
Als Zwischenspeicher für Messdatenreihen oder zur Auslagerung von Float- oder 4-Byte-Integer-Zahlen (long- Format), wenn der SRAM-Speicher z.B. des Uno oder Nano zu knapp geworden ist, kann man sich mit FRAMs Abhilfe schaffen. Dazu habe ich für Arduino zwei Libraries für FRAMs mit SPI- und I2C-Schnittstelle geschrieben und mit FRAMs der Firma Fujitsu Semiconductor der Serie MB85Rxxxx getestet. Diese sind z.B. auf Breakout Boards von Adafruit in Verwendung, mit I2C-Schnittstelle ein 256 kBit Chip MB85RC256V und mit SPI-Schnittstelle ein 64 kBit Chip MB85RS64V.
RTC DS3231
Mit Beschränkung auf das Wesentliche, nämlich Wochentag, Datum und Uhrzeit auslesen und einstellen zu können, habe ich diese einfache Library für Arduino und Attiny geschrieben.
Auch ein Sketch zum Einstellung der Datums- und Uhrzeitdaten über den Seriellen Monitor ist zu finden: Datum/Uhrzeit stellen
I2C-Multiplexer TCA9548A
Müssen 2 oder mehrere Bauteile mit identischen I2C-Adressen auf einem I2C-Bus verwendet werden, kann man das mit einem I2C-Multiplexer realisieren. Der TCA9548A bietet dazu bis zu 8 Kanäle ....
MyOneWire
Zur Übertragung von Daten (Zahlen, Zeichen und Texte) über nur eine Datenleitung von einem Attiny85 zu einem Arduino und zur anschließenden Anzeige am Seriellen Monitor habe ich eine Library für Attiny85 und ein Empfangsprogramm für Arduino geschrieben. Vor allem bei der Fehlersuche in einem Attiny-Sketch kann das sehr hilfreich sein. Wegen des benötigten Speicherplatzes ist die Library für Attiny45 nur bedingt verwendbar.
Float to Array
Keine Library, aber eine einzelne Funktion ftoa(), die man in den eigenen Sketch übernehmen kann. Die Funktion wandelt eine Float-Zahl in ein Character-Array um und benötigt wesentlich weniger Flash-Speicherplatz als die in der Arduino-IDE vorhandenen Funktion dtostrf(). Für Arduino und Attiny verwendbar.
Stromsensor INA219
Eine Library für Arduino und Attiny, für die Ansteuerung eines Stromsensors INA219, zur Messung von Strom und Leistung eines Verbrauchers ...
ADC ADS1115
Wenn für Spannungsmessungen eine Auflösung von 10 Bit (= 1024 Stufen), wie z.B. die der Analogeingänge von Arduino Uno oder Mega, nicht ausreichend ist, muss auf einen externen Analog-Digital-Converter (ADC), z.B. den ADS1115 ausweichen. Für diesen habe ich mir eine Library für Arduino und Attiny geschrieben ....
ADC MCP3421
Zur Digitalisierung von nur langsam sich ändernden Signalen nutze ich mit einer Auflösung von 18 Bit auch den Analog-Digital-Converter MCP3421 und habe dafür auch eine Library für Arduino und Attiny.