Schwarz auf Weiß

Auch als Buch mit dem Titel '10 Selbstbauprojekte', ISBN-Nr. 978-3-7448-3433-9 und als e-book mit der ISBN-Nr. 9783744806299 erschienen.

Besuchen Sie auch meine Art site https://khomet.de

Montag, 17. August 2020

Digital Amp mit Arduino Pro mini

Inhaltsverzeichnis

Motivation
Aufbau und Funktion
Platine
Programmierung
Programmierung des Nano als ISP Programmer
Programmierung des Pro Mini mit dem Nano als ISP Programmer
Mechanik
Downloads


Motivation
Durch die Verwendung eines digital steuerbaren Verstärkers Class D in Verbindung mit einem Arduino Pro Mini ergibt sich ein sehr elegantes  Konzept, dass sich gut in DIY Projekten einsetzen lässt.

Aufbau und Funktion
Als Verstärker wird der 2x20W Click von MikroE eingesetzt. Dieser erlaubt die Lautstärke über die I2C  Schnittstelle einzustellen. Ein Arduino Pro Mini steuert den Verstärker über I2C an und verarbeitet das Signal eines Rotary Switch Encoders, der als Potentiometer dient. Als Display wird ein S/W OLED 128x64 Pixel 2,42' mit einer SPI Schnittstelle eingesetzt. Die Prozessorwahl fiel auf den Pro Mini, weil alle anzusteuernden Komponenten mit 3,3V Versorgungsspannung arbeiten. Somit sind keine Pegelwandler notwendig. Alle Komponenten werden aus Gründen der Brumm- und Rauschfreiheit getrennt mit 3,3V versorgt. Die Hauptplatine ist aus dem selben Grunde mit einer großzügigen Massefläche ausgeführt. Der Verstärker liefert ca. 8 W an einen 4 Ohm Lautsprecher aus 9 V. Bei 1 W (Zimmerlautstärke) hat das Signal einen Klirrfaktor von ca. 0,04%. Die Wärmeentwicklung ist, typisch für Class D, sehr gering. Die Zuleitung zum Lautsprecher sollte aus Störsicherheitsgründen 1 m nicht überschreiten (PWM-Mode).
Da das Konzept für einen Monoblock gedacht ist, wird durch Umlöten der Eingangskondensatoren auf dem 2x20W Click der linke und der rechte Kanal auf den rechten Kanal summiert. Der linke Kanal wird am Eingang durch einen gleich großen Kondensator nach Masse abgeschlossen. Der  Null-Ohm Widerstand wird von 5V auf EXT umgelötet, da der Verstärker mit +9V versorgt wird.

2x20W Amp click
Modifikationen click amp

Schaltplan des Verstärkers

Das Display zeigt die aktuelle Lautstärke als Balken und als Zahl an. Das x neben dem Lautsprechersymbol bedeutet, dass Mute eingeschaltet ist. Dies kann durch Lautstärke 1 oder durch ‘Doppelclick’ auf den Lautstärkeknopf erreicht werden. Ein einfacher Click nimmt Mute wieder zurück.

Display

Platine
Die Hauptplatine nimmt den Class D Verstärker und den Arduino Pro Mini auf. Außer den 9 V Spannungsreglern (TO220) und den Elkos sind alle übrigen Bauteile als SMD ausgeführt. Am 9 V Regler (+9V sd) der die 3,3 V Spannungsregler versorgt fällt etwas Leistung ab. Deshalb bekommt dieser einen Kühlkörper. Alle Verbindungen sind mit Pfostenverbindern bestückt. Die große Anzahl von Befestigungsbohrungen soll für Schwingungsfreiheit sorgen.


Hauptplatine

Bestückte Platine

Gesamtansicht des Projektes

In der Mitte ist die bestückte Platine mit dem click amp und dem Pro Mini zu sehen. Links befindet sich der als Potentiometer verwendete Rotary Switch Encoder, oben der beleuchtete Power Switch und unten das OLED Display.

Programmierung
Da der Arduino Pro Mini keinen USB-Anschluss besitzt, muss die Programmierung über einen 2. Arduino (z. B. NANO) per ISP erfolgen. Die entsprechenden Verbindungen sind aus dem Schaltbild zu ersehen. Um nicht jedesmal die Prozessoren per Hand zu verbinden, wurde eine Programmier-Platine mit Sockel erstellt. 

Schaltplan des Programmieradapters


Platine des Programmieradapters


Bestückte Platine des Programmieradapters mit Target Pro Mini

Programmierung des Nano als ISP Programmer
Um als Programmer agieren zu können, wird der Nano in der Arduino IDE mit dem ISP-Programm aus den Beispielen programmiert. Der Pro Mini kann dabei auch schon eingesetzt sein. Dabei unbedingt auf die Orientierung achten: Reset-Taste nach unten.

Auswahl Arduino ISP Programm

ISP Programm auf Nano programmieren

Programmierung des Pro Mini mit dem Nano als ISP Programmer





Nun das Programm ‘2x20WClick_OLED_RotENSW_Ready.ino’ in der IDE laden. Der Nano wird jetzt als ISP Programmer verwendet. 
Sollte die Fehlermeldung ‘stk500_getsync’ kommen, einfach nochmal programmieren. 

Nach erfolgreichem Hochladen läuft der Pro Mini selbst an. Ansonsten einfach die Reset-Taste drücken.

Mechanik
Beispielhafter Einbau als Einschub in eine Transmission Line Box.


Downloads

fritzing Projekt NeedlesIV-Rev5.fzz (Verstärker): https://drive.google.com/file/d/1Q4FEwxmJJOVhiOkuSc77h48nCmdJndZ1/view?usp=sharing

fritzing Projekt Pro-Mini-mit_Nano-programmieren.fzz (Programmiergerät):
https://drive.google.com/file/d/16t3hUrs5GQ7BxPwESIwoKM1YD6kJomxe/view?usp=sharing

Arduino Pro Mini Sketch 2x20WClick_OLED_RotENSW_Ready.zip
(incl. Bibliotheken):
https://drive.google.com/file/d/1FNyjL1dpXlVvjNOZiUHGZ4pYpxRLtjBP/view?usp=sharing

FreeCAD Dateien ElektronikEinschub.zip (Beispiel für Einbau in eine TML-Box):https://drive.google.com/file/d/10ONsLPj74Jya6B1SKPcq2ZrRtDf9GajX/view?usp=sharing

Quellen

Leiterplattenvoransichten mit freundlicher Genehmigung der Fa. Aisler BV.

Samstag, 25. April 2020

Ultraschall Entfernungsmesser mit Temperaturkompensation

Inhaltsverzeichnis

Motivation
Aufbau und Funktion
Software
Entwicklungsumgebung
Downloads
Quellen
Ausblick


Motivation
Die Idee war, mit geringem technischen Aufwand einen einfachen Distanzsensor mit Temperaturkompensation zu realisieren. 

Aufbau und Funktion
Bei diesem Projekt wurden der Arduino Nano, der Ultraschallsensor HC-SR04 und der Temperatursensor DS18B20 eingesetzt. Der Trigger-Anschluss des HC-SR04 wird mit A1 und der Echo-Anschluss mit A2 des Arduino Nanos verbunden. Eine Bibliothek ist zur Ansteuerung nicht notwendig, da der Nano lediglich den Trigger anstossen muss. Zeitversetzt, entsprechend der Distanz und somit der Ultraschalllaufzeit in Luft, erscheint an A2 dann das Echo-Signal. Die Laufzeit wird vom Nano in cm umgerechnet. Da die Schallgeschwindigkeit stark temperaturabhängig ist (ca. 0,6 m/s / °C) wird mit dem DS18B20 fortlaufend die Temperatur gemessen und die Laufzeit entsprechend korrigiert. Der DS18B20 ist über die 1-Drahtschnittstelle mit D2 verbunden. Hier werden die Bibliotheken DallasTemperature.h und OneWire.h benötigt. Die Stromversorgung und die Programmierung geschieht über den USB-Anschluss des Nano. Das Projekt ist ohne Problem auch auf dem Pro Mini lauffähig, allerdings muss dieser z. B. über einen Nano per ISP programmiert werden, da er keinen USB-Anschluss hat. Mit dem seriellen Monitor wird die aktuelle Entfernung angezeigt. Die Baude Rate beträgt 115200.

Schaltbild
Praktischer Aufbau

Software
Um das Signal zu beruhigen, wird ein gleitender Mittelwert aus drei Werten gebildet. Mit Wichten kann die Reaktion noch beeinflusst werden. Bei der Berechnung der Entfernung ist zu berücksichtigen, dass der Schall den doppelten Weg zurücklegt.

Entfernung temperaturkompensiert:



Schallgeschwindigkeit temperaturkompensiert:




Sleep wird realisiert mit dem internen Watchdog Timer WDT. Mit den Flags WDP0, WDP1, WDP2 und WDP3 kann die Zeit bis zur Auslösung des Watchdog Alarms gewählt werden.




Entwicklungsumgebung
Arduino IDE 1.8.5


Einstellungen in Werkzeuge
Die passende COM wird im Gerätemanager durch Abziehen und Anstecken des USB-Anschlusses zum Nano ermittelt.


Downloads
fritzing Schaltbild:


Quellen
Github Library MilesBurton, DallasTemperature.h
Github Library PaulStoffregen, oneWire.h
Funduino Sketch Nr.11: Entfernung messen


Ausblick
Eventuell ist ein Einsatz aus aktuellem Anlass als Abstandssensor zur Einhaltung der minimalen 1,5 m denkbar, da der Sensor bis 5 m messen kann. Dazu könnte ein Arduino mit weniger Stromverbrauch und z. B. eine Lithiumzelle mit 3,7 V eingesetzt werden. Mit dem Nano wird eine Gesamtstromaufnahme von ca. 28 mA erreicht. Ebenso könnte der Arduino schlafen gelegt und z. B. durch einen Timer wieder aufgeweckt werden. Gut geeignet wäre auch das LilyPad-System für Kleidung. Die Unterschreitung des Abstandes könnte mit einer LED signalisiert werden. Ohne die Messung zu beeinflussen, kann eine Stoffschicht (Hemd) direkt über dem Sensor angeordnet sein. 


Keywords
#arduinonano #abstand #distance #temperaturkompensiert #Ultraschall #ultraschallsensor #Entfernungsmesser #gleitendermittelwert #ultrasonic #distancesensor