Werte Ingenieure ! Ich bin Hobbyelektroniker und würde gerne folgendes Projekt realisieren. Datenlogger für 10 analoge Eingänge (0-5Volt) Aufzeichnungsfrequenz 100Hz Messdauer 1 - 2 Minuten Messwertauflösung vorerst 1 Byte (eventuell 2Byte) Speicheraufwand: 10Eingänge 2min 100*60 * 1Byte = 120KB -> Speicherkarte Die Realisierung hätte ich mir mit folgenden Komponenten vorgestellt: https://www.exp-tech.de/plattformen/arduino/8137/arduino-mkr-zero-mit-headers 2x https://www.reichelt.at/entwicklerboards-platine-i2c-multiplexer-tca9548a-debo-i2c-multi-p235517.html?PROVID=2788&wt_gata=51942941739_248653657836&PROVID=2788&gclid=Cj0KCQiA_rfvBRCPARIsANlV66PiQ7jthK2SBtqtlh0A5a3pDQQdl4zsCFpwwH_TxFhzNMzbWy4RAs4aAhoHEALw_wcB&&r=1 bevor ich diese Komponenten bestelle bitte ich um eure geschätzte Meinung ob das so eine vernünftige Lösung ist, oder ob es bessere Empfehlungen gibt ?
Du hast vergessen, die AD-Wandler aufzuführen, die du verwenden willst. Ansonsten sollte das wohl schon damit möglich sein.
Gast
#6069828
Ansonsten raspberry a Und als ad Wandler was aus dieser Liste. Z.b die 10 Channel Sigma Delta https://www.analog.com/en/products/analog-to-digital-converters/precision-ad-converters/multiplexed-ad-converters.html
Andreas S. schrieb: > Meinung ob das so eine vernünftige Lösung ist ... das ist für mich keine vernünftige lösung! weil, dein board nur 7 analoge eingänge mitbringt und du 10 als anforderung hast. jetzt darum 2 boards zu nehmen wäre sinnfrei. und für was bitte soll dann noch der multiplexer gebraucht werden? boards mit 12 und mehr analogen eingängen gibt es viele ... z.b. https://www.pjrc.com/store/teensy35.html mt
die einzelnen Messwerte würde ich über I2C einlesen, oder liege ich da falsch ?
Andreas S. schrieb: > die einzelnen Messwerte würde ich über I2C einlesen, oder liege ich da > falsch ? Und wer stellt die analogen Messwerte auf einem digitalen Bus zur Verfügung?
Apollo M. schrieb: > boards mit 12 und mehr analogen eingängen gibt es viele ... z.b. > https://www.pjrc.com/store/teensy35.html ... verstehe ich, aber ich hatte vergessen, dass ich diese Aufgabe mit der Arduino IDE bewerkstelligen möchte, da ich mich da viel leichter tue !
Andreas S. schrieb: > ... verstehe ich, aber ich hatte vergessen, dass ich diese Aufgabe mit > der Arduino IDE bewerkstelligen möchte, da ich mich da viel leichter tue > ! https://www.pjrc.com/teensy/teensyduino.html
... die antworten/fragen zu adc hier kommen garantiert nicht von einem ing., weil nur sinnfrei, sorry eher grob dämlich. also, wenn man keine ahnung hat, besser mal die fresse halten! mt
Apollo M. schrieb: > ... die antworten/fragen zu adc hier kommen garantiert nicht von einem > ing., weil nur sinnfrei, sorry eher grob dämlich. Fassen wir zusammen: - Der TO möchte 10 Analoge Kanäle (0...5V) loggen - Der TO führt einen Mikrocontroller und einen I2C-Multiplexer auf - Der TO scheint die Analogen Signale mit dem MUX erfassen zu wollen An welcher Stelle genau ist jetzt die Frage nach dem Analog-Digital-Wandler grob dämlich?
Sebastian R. schrieb: > https://www.pjrc.com/teensy/teensyduino.html das würde mir gut gefallen, aber ... oder das Teensyduino Add-on in der Arduino IDE-Entwicklungsumgebung installieren -> kann ich das ?
Sebastian R. schrieb: > - Der TO scheint die Analogen Signale mit dem MUX erfassen zu wollen Ich bitte vielmals um Entschuldigung, das war der falsche Link !!! sorry
Andreas S. schrieb: > kann ich das ? Wenn du in der Lage bist, den Teensyduino-Installer herunter zu laden und du in der Lage bist, das Setup auszuführen und du es bereits geschafft hast, die Arduino IDE zu installieren, dann stehen die Chancen, dass du das kannst, nicht schlecht. Du kannst deine Fähigkeiten in der Hinsicht allerdings besser einschätzen.
Gast
#6069877
Apollo M. schrieb: > ... die antworten/fragen zu adc hier kommen garantiert nicht von einem > ing., weil nur sinnfrei, sorry eher grob dämlich. > also, wenn man keine ahnung hat, besser mal die fresse halten! Du scheinst auch davon betroffen zu sein. Oder kannst du vielleicht deine großen Sprüche mit einer Spur von Argumentation untermauern?
Sebastian R. schrieb: > Wenn du in der Lage bist, den Teensyduino-Installer herunter zu laden > und du in der Lage bist, das Setup auszuführen und du es bereits > geschafft hast, die Arduino IDE zu installieren, dann stehen die > Chancen, dass du das kannst, nicht schlecht. Du kannst deine Fähigkeiten > in der Hinsicht allerdings besser einschätzen. vielen Dank auch an alle anderen, dann werde ich diesen Weg einschlagen !
Andreas S. schrieb: > Sebastian R. schrieb: >> - Der TO scheint die Analogen Signale mit dem MUX erfassen zu wollen > > Ich bitte vielmals um Entschuldigung, das war der falsche Link !!! sorry Dann wäre der richtige Link vielleicht noch spannend. War das zufällig ein Analog-Multiplexer?
Gast
#6069894
Andreas S. schrieb: > Meinung ob das so eine vernünftige Lösung ist, oder ob es bessere > Empfehlungen gibt ? Irgendwie ist nicht ganz klar, was du mit dem I²C-Multiplexer erreichen willst. Warum nicht ein Analogmultiplexer mit 74HC4067 als und dazu einen kleinen Arduino? https://www.ebay.de/itm/311374536627 https://www.ebay.de/itm/201539955347 Welche Auflösung soll dein ADC denn haben? Der ATmega328 bietet 10 Bit.
Gast
#6069907
Wolfgang schrieb: > ... und dazu einen kleinen Arduino? ... und natürlich das SD Karteninterface, z.B. https://www.ebay.de/itm/311823238808
Gast
#6069912
... oder einfach soetwas für die SD-Karte: https://www.ebay.de/itm/202464361598
Gast
#6069932
> bessere Empfehlungen gibt ? 8 Kanaele von 0 - 5 V macht ein kleiner PIC 16F684 fuer 50 ct ja schon. Da noch einen EEPROM drangehaekelt und fertig ist die Laube. Mit acht 4051 Muxen laesst sich das ganze auf 64 Kanaele aufblasen.
Gast
#6069942
Ich sehe hier keinen Bedarf für I²C Multiplexer. Du kannst viele I²C Geräte direkt an den Mikrocontroller hängen. Bedenke, dass das von Dir gewählte Arduino Board noch recht jung ist. Es gibt relativ wenig Doku und viele Arduino Bibliotheken funktionieren nur auf 8bit Mikrocontrollern. Hier wirst du womöglich den Quelltext anpassen müssen. Eventuell bist du als Anfänger mit einem klassischen Arduino (also einem mit ATmega Mikrocontroller) besser bedient. Ich würde einen STM32F103 (Bluepill-Board) verwenden. Das hat nämlich 10 analoge Eingänge und die SD Karte kann man direkt ohne Pegelwandler anschließen. Dazu dann den alten STM32Duino Core von Roger Clark (http://stefanfrings.de/stm32/stm32f1.html#arduino), weil der wesentlich schlanker ist, das der Framework-Stapel von ST. Das oben empfohlene Teensy 3.5 Board sieht auch gut aus, das habe ich allerdings noch nie verwendet.
Sebastian R. schrieb: > - Der TO scheint die Analogen Signale mit dem MUX erfassen zu wollen wohl kaum, weil der mux ist ein i2c bus mux! also hier völlig umsonst. > An welcher Stelle genau ist jetzt die Frage nach dem > Analog-Digital-Wandler grob dämlich? fragen zu/um ext. adc sind bei den vom TO genannten anforderungen unsinn, da jeder on chip adc diese erfüllt. mt
Apollo M. schrieb: > wohl kaum, weil der mux ist ein i2c bus mux! also hier völlig umsonst. You Don't say. Deshalb habe ich es angemerkt. Andererseits: Andreas S. schrieb: > Ich bitte vielmals um Entschuldigung, das war der falsche Link !!! sorry
Nochmals vielen Dank an Alle ich versuche es mit dem Teensy ! Und sorry nochmals für das Missverständnis, dass ich leider ausgelöst habe.
Gast
#6070202
Wie wärs mit einem Arduino keine-Ahnung-aber-mit-XMega? Der hat 16 ADCs mit 12 Bit.
Harry schrieb: > Der hat 16 ADCs > mit 12 Bit. Alle, die ich jetzt so spontan gesehen habe, haben auch nur einen ADC, wie die normalen ATMega auch.
Ein ADC aber davor Multiplexer mit 8/16 Eingängen. Bei 100Hz sollte das gehen.
Danke Thomas so war das auch gemeint. Es gibt welche mit 2 echten ADCs und je einem 8-Kanal Multiplexer. Wenn man jeden der ADCs mit einem Eingang verwendet gehen 2 Msps. 100Hz bei 16 Kanälen sollten überhaupt kein Problem sein.
Liebe Helfer, letztlich habe ich mich doch für den MKRZero entschieden, allerdings arbeite ich vorerst mit nur 7 Kanälen. Nachfolgend mein Programm, es funktioniert alles so wie es soll ! Einzig würde mich noch interessieren wieso die serielle Schnittstelle während des Messvorganges getrennt wird ? Und natürlich sind auch konstruktive Verbesserungsvorschläge willkommen :-)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |
209 | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 | |
217 | |
218 | |
219 | |
220 | |
221 | |
222 | |
223 | |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | |
239 | |
240 | |
241 | |
242 | |
243 | |
244 | |
245 | |
246 | |
247 | |
248 | |
249 | |
250 | |
251 | |
252 | |
253 | |
254 | |
255 | |
256 | |
257 | |
258 | |
259 | |
260 | |
261 | |
262 | |
263 | |
Gast
#6157013
Andreas S. schrieb: > Einzig würde mich noch interessieren wieso die serielle Schnittstelle > während des Messvorganges getrennt wird ? Woran erkennst du, dass sie getrennt wird? Meinst du damit, dass die USB Schnittstelle getrennt wird? Das könnte daran liegen, dass die Bibliothek (insbesondere der SPI Teil) blockierend mit dem Display kommuniziert, so dass die USB Schnittstelle nicht mehr bedient wird. USB wird vom Host (PC) jede Millisekunde gepollt. Wenn der µC nicht schnell antwortet, trennt der PC die Verbindung. Versuche mal, vor "display.display()" einen delay(1) einzufügen. Vielleicht hilft das schon.
Hallo Stefan, ich erkenne es daran, dass ich z.B. während des Messvorganges keine Daten auf den seriellen Port ausgeben kann, bzw. wenn ich nach Abschluss der Messung seriell einen neuen Startbefehl ausgeben möchte muss ich zuerst das Board trennen und wieder verbinden. Ich werden deinen Tipp mit delay versuchen.
Gast
#6157435
Andreas S. schrieb: > Hallo Stefan, > > ich erkenne es daran, dass ich z.B. während des Messvorganges keine > Daten auf den seriellen Port ausgeben kann, bzw. wenn ich nach Abschluss > der Messung seriell einen neuen Startbefehl ausgeben möchte muss ich > zuerst das Board trennen und wieder verbinden. > Ich werden deinen Tipp mit delay versuchen. Auf einem echten seriellen Port (ohne Hardware Handshake) kann man immer Daten ausgeben, egal ob etwas angeschlossen ist, oder nicht. Geht es bei dir um die USB Schnittstelle?
Gast
#6157445
> muss ich zuerst das Board trennen und wieder verbinden.
Das ist bei den uinos doch so ueblich.
Mit Bananen im Kopf kann man nur Affen fuettern.
Stefan ⛄ F. schrieb: > Geht es bei dir um die USB Schnittstelle? ja, es geht um die USB Schnittstelle
Gast
#6159837
Andreas S. schrieb: > ja, es geht um die USB Schnittstelle Das ist die wahrscheinlichste Problemursache, dass die USB Schnittstelle nicht merh schnell genug bedient wird. Vielleicht wegen zu langer Schleifen ohne yield()/delay() oder weil Interrupts zu lange gesperrt werden.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.