ArduinoUno Button Matrix (AnalogPIN)-> Batterie vs. Netzteil

Hallo zusammen,

ich bin aktuell an einem kl. Arduinoprojekt für meinen Sohn und habe aktuell ein Problem, bei dem ich nicht wirklich weiterkomme.
Ich habe einen kleinen "Radio" für ihn gebaut. Hierzu ist in erster Instanz https://de-de.hoerbert.com
der ausschlaggebende Punkt gewesen. (Hätte man auch kaufen können -> wollte aber was lernen :wink: )

Habe mich mit folgender Anleitung drangemacht:

Um was es geht:
Das Teil funktioniert und der Sketch ist fertig. Es funktioniert bei Stromversorgung über USB einwandfrei.
Die Button Matrix ist über einen AnalogPIN angeschlossen und bei Knopfdruck wird der errechnete Wert des Arduinos für die Auswertung welcher Knopf gedrückt wurde verwendet.
Siehe: chriga's blog: Audino - Arduino MP3-Player (7) - Mehrere Knöpfe (analog)

Was ich hierbei nicht bedacht hatte, war:
Das Teil soll natürlich mit Batterien betrieben werden, welche von der Stromquelle her anderen Schwankungen unterliegen als wenn USB direkt die 5 Volt Stromversorgung gibt.
Das Resultat:
Unter Batteriebetrieb (8x1,5 V = 12V per DC Jack angeschlossen), machen die Buttons nicht mehr was Sie sollen und nehmen teilw. andere Funktionen war als sie sollen.

Die Frage: Kann mir einer von euch sagen, wie man den Strom der Batterien "Puffern" kann, sodass ich beim Druck eines Buttons wieder einen verlässlichen Wert analog zur USB Stromversorgung erhalte?
Gibt es hierfür eine sinnvolle Schaltung, die man verwenden kann?

Es handelt sich so ziemlich um mein erste Projekt mit dem Arduino, weshalb ich hoffe das Vokabular nicht allzu falsch eingesetzt zu haben. :wink:

Vorab schonmal vielen Dank für eure Unterstützung!

Ich würde nach dem Batterie pack einen DC-DC converter einbauen, dann hast du immer 5V

Eigentlich sollte es keinen Unterschied zwischen Batterie und USB-Versorgung machen. Der Analogeingang nimmt im Normalfall die 5V als Referenzspannung. Das Prinzip der Tastaturmatrix basiert auf festen Teilerverhältnissen der Spannung bei Tasterdruck. Schwankt die Spannung, bleibt trotzdem das Teilerverhältnis gleich. So lange Tasten und Analogeingang die gleichen Spannungen als Referenz nehmen kann die Spannung schwanken, ohne dass es was ausmacht. Vielleicht hast du deine Vergleichswerte sehr knapp gewählt, so dass schon minimale Änderungen zu falschen Erkennungen führen. Lass dir die Werte über die serielle Schnittstelle ausgeben, so dass du vergleichen kannst.

Zeige Schaltplan, wie du alles wirklich angeschlossen hast und Sketch. Was ist sonst noch angeschlossen. Ein Foto kann auch helfen.

Wie Rogerst schreibt, solltest du einen DC-DC-Wandler nutzen. Bei Betrieb über die DC-Buchse werden von der teuren Batterienenergie fast 60% sinnlos verheizt. Bei einem DC-DC-Wandler nur ca. 3-10%. Oder mit anderen Worten, du kannst den Arduino ungefähr doppelt so lange versorgen.

Und warum verwendest du überhaupt 12 Volt ?
Da wären 9 Volt (6 x 1,5V) eher angebracht und die dann mit einem "StepDown DC-DC-Wandler" auf 5 Volt heruntergeregelt. Damit sind die Verluste auch geringer.

Du solltest wirklich noch mal die Stromversorgung zeigen. Ich habe mir das Projekt von chrigas.blogspot.de angeschaut. Ich ahne böses. Hast du das so aufgebaut, wird der Spannungsregler vom Arduino komplett überlastet und den Gerät hat kein langes Leben vor sich.
Das Projekt braucht dringend eine kräftige 5V-Spannungsversorgung.

Hallo zusammen,
Vielen Dank für die vielen konstruktiven Antworten!
Ich freue mich schonmal sehr darüber.

Auf die Frage

HotSystems:
Und warum verwendest du überhaupt 12 Volt ?

Kann ich nur sagen: Ich ging davon aus, da ja auch noch der MP3 Shield mit Verstärker mit dranhängt ich eine längere Laufzeit erhalte, der Arduino Spannungsregler mit 7-12 Voltbetankt werden kann und ich wenn ich einen 12 Volt Pack verwende mit wahrscheinlich eine stabilere Stromquelle (gerade in Anbetracht der Stromschwankungen in der Buttonmatrix) erhalte.
Viel hilft wahrscheinlich nicht viel wie ich da raushöre :confused: :confused: :confused:

Was den DC-DC Wandler angeht: Habt ihr da Empfehlungen und oder Erfahrungen, was vor allem was die Laufzeit angeht? Da bin ich natürlich hellhörig!

Zum Thema auslesen serieller Monitor: Wenn ich den Arduino via USB angeschlossen habe und parallel den Batteriepack: Welche Signale sehe ich? Die aus dem DC Regler (also Batteriepack) oder die 5V des USB?

An einem Schaltplan habe ich mich mal versucht, und hoffe es wird klar was gemeint ist (auch hier muss ich sagen, dass es sich um meinen ersten Schaltplan handelt, daher bitte ich etwaige falsche Darstellungen oder Nomenklaturen zu entschuldigen).

Fotos poste ich noch.

Angeschlossen an dem Arduino sind noch zusätzlich:

  • Analogport -> Poti zur Lautstärkeregelung
  • Analogport -> Lautstärkelimiter (damit dem Kleinen die Ohren nicht wegfallen wenn der aufdreht)
  • Der Adafruit MP3 Shield, der einen Großteil der Digitalen Ports benötigt

Der An- Ausschalter unterbricht den Stromfluss direkt nach dem Batteriepack.

Sofern noch Fragen bestehen, bitte einfach melden!
Wenn ihr elegantere oder eher dem Arduino-Standard entsprechende Lösungen habt, ich bin für alles offen :wink:

Vielen Dank schonmal für euren Input!
VG
Numelle

Und hier noch der Link zu den anderen Bildern aus dem Inneren der Spielbox:

Bilder Spielbox

Hallo,

das wichtigste ist eine vernünftige Stromversorgung. Die 12V auf die DC-Buchse ist das schlechteste, was du machen kannst. Der kleine Spannungsregler verheizt einfach nur die Differenz zwischen 12 und 5V. Da er nur ca. 1W Wärme abgeben kann, darf der Strom nicht 140mA überschreiten. Du dürftest eigentlich nicht viel mehr als einen Kopfhörer an das Shield anschließen, damit der Regler nicht zu heiß wird.

Beispiel für einen DC-Converter: https://www.ebay.de/itm/DC-9V-12V-24V-36V-5V-3A-Dual-USB-Charger-Step-Down-Buck-Power-Supply-Modul-AIP/142644030978

Er würde deine Batterielebensdauer ungefähr verdoppeln. In den Arduino könntest du per USB gehen, dann besteht nicht die Gefahr versehentlich USB und andere Stromversorgung parallel anzuschließen. Ich habe den Converter gewählt, da du minimalen Umbauaufwand hättest. Bei Speisung über USB könntest du allerdings nicht die maximale Verstärkerleistung abrufen, da es eine selbstrücksetzende 500mA Sicherung beim Arduino gibt. 2,5W dürften aber recht weit reichen.

Deine Tastaturmatrix ist nicht besonders optimal. Die analogen Werte liegen bei der Bemessung des Spannungsteilers eng zusammen, so dass kleine Störungen zu Fehlerkennungen führen können. Er liefert Spannungen bei 5V zwischen ca. 0,2V und 1,7V.
Deine Tastaturmatrix ist offenbar anders beschaltet, als in deinem Link: chriga's blog: Audino - Arduino MP3-Player (7) - Mehrere Knöpfe (analog)
Viel übersichtlicher ist aber die Schaltung auf die verwiesen wird.

Quelle: Txapuzas electrónicas: PaperTecladoAnalógico. Varios pulsadores con una sola entrada analógica
Dort verteilen sich die Spannungen gleichmäßig zwischen 0,5V und 4,5V. Die Erkennung wird viel sicherer. Der Umbau deiner Matrix müsste auf diese Schaltung müsste durch weniges Umlöten möglich sein. Ob du 4,7 oder 3,3kOhm nimmst, ist egal.

Der Versuch, eine Button Matrix mit 12V zu betreiben, wird normalerweise mit dem Tod des Arduino bestraft. Es ist wohl eher Zufall, daß der Arduino bei Deinem Schaltbild die 12V überlebt, weil die 100k die Spannung weit genug (auf 4V) einbrechen lassen. Also die Matrix weiter mit 5V versorgen.

Über Vor- und Nachteile der verschiedenen Schaltungen kann man streiten. Mir erscheint Dein Schaltbild am wenigsten störanfällig zu sein, weil alle Schalter nach Masse schalten. Nur die 100k sollte man etwas verkleinern, damit mehr Spannung übrigbleibt.

Und ggf. einen Kondensator gegen die restlichen Störungen einfügen, das muß dann aber auch im Code berücksichtigt werden.

Nabend Jungs,

ich bin begeistert über die konstruktiven Verbesserungsvorschläge.
Super! Vielen Dank erstmal dafür!

Zum Thema Stromversorgung:
Der DC Konverter wurde soeben geordert. Ich denke das sollte auf jeden Fall mein Problem lösen, dass ich andere Werte habe, wenn ich über USB den Arduino versorge im Vergleich zum Batteriestrom via DC.

Das der Spannungsregler den übrigen Strom nur verheizt, wusste ich nicht! Schonwieder was gelernt.
Vertärkerleistung ist denke ich kein Problem, denn bei den Tests des Arduinos an der USb Schnittstelle meines Computers, erschien mir die Maximale Lautstärke schon als zu viel für den jungen Mann ;-).

Zum Thema der Buttonmatrix, werde ich nochmal in mich gehen und den ein oder anderen Test fahren.

Theseus:

Quelle: Txapuzas electrónicas: PaperTecladoAnalógico. Varios pulsadores con una sola entrada analógica

Diese Schaltung werde ich mir mal näher anschauen, da die Abstände der analogen Werte beim Programmieren schon ein wenig ein Problem waren um ehrlich zu sein. :wink:

DrDiettrich:
Der Versuch, eine Button Matrix mit 12V zu betreiben, wird normalerweise mit dem Tod des Arduino bestraft. Es ist wohl eher Zufall, daß der Arduino bei Deinem Schaltbild die 12V überlebt, weil die 100k die Spannung weit genug (auf 4V) einbrechen lassen. Also die Matrix weiter mit 5V versorgen.

Sorry ich habe mich was die Versorgung der Matrix angeht wahrscheinlich missverständlich ausgedrückt.
Selbstverständlich wird die Matrix mit dem Arduino eigenen Strom versorgt also 5 Volt.
Lediglich, dass was am DC Jack anliegt sind aktuell 12 Volt.

Jedoch finde ich deinen Ansatz mit dem Kondensator ebenfalls sehr interessant, da ich über so etwas ebenfalls schon nachgedacht habe, jedoch hier mein Basiswissen zum Thema Elektrotechnik aufhört. P=UI und U=RI sind die Themenbereiche, die ich kenne. Darüberhinaus wirds schwammig, aber ich möchte ja lernen, daher:
Der Kondensator vor der Buttonmatrix würde (nach meinem Verständnis) einen Pufferstrom zur Verfügung stellen, der sicherstellt, dass man zur Ermittlung der Spannung die am entsprechenden Button anliegt immer die gleiche Spannung zur Verfügung hat und Schwankungen der Spannungsquelle des Arduinos ausgleichen.
-> Habe ich das soweit richtig verstanden?
Wenn ja, habe ich folgende Fragen dazu:

  • Wie genau wird die Dimensionierung der Kondensatoren errechnet, bzw. gemacht?
  • Welchen Typ Kondensator muss verwendet werden? Was ist sinnvoll?
  • Wie würde sich die Schaltung bei dauerhaftem drücken eines Buttons (z.B. Vorspulen) verhalten? Wäre eine gleichmäßige Spannung abgegeben vom Kondensator trotzdem sichergestellt?

Nochmals supervielen Dank für eure schnellen und tollen Antworten, da macht das Werkeln in bzw. mit einer Community gleich doppelt Spass!

Schönen Abend euch!

Du kannst einen Elko zwischen GND und 5V schalten, der stabilisiert die Betriebsspannung. Eine Faustformel sagt 1000µF pro A. Demnach würde ich mal 470µF versuchen. Der Kondensator ist hilfreich, falls der Verstärker in einer Dynamikspitze mehr verbraucht.

Man kann zur Stabilisierung der Analogenwerte einen winzigen Kondensator zwischen GND und Analogen Eingang schalten. Ich würde da 10-50nF versuchen. Bei Tastendruck kann es allerdings etwas dauern, bis sich die Spannung auf die neue Spannung stabilisiert hat. Du müsstest also mehrmals den analogen Eingang auslesen und schauen auf welchen Wert sich der Eingang stabilisiert. Sonst könnte bei ungünstigen Einlesezeitpunkten es nach einem anderen Tastendruck erscheinen.

Wenn du Teile bestellen musst, ist es nicht verkehrt etwas mehr und noch andere Bauteilwerte zu nehmen, da man so etwas Material zum Experimentieren und Tüfteln hat.