Guten Tag, Ich habe ein MPU6050 an ein Arduino Pro Micro gestöpselt mit Interupt. Test Programm von i2cdevlib hochgeladen mit der DMP V6.12 Version. Serial Monitor zeigt alles super an nur nach einer kurzen unbestimmte Zeit erlischt die LED auf dem Board und die Verbindung ist weg. USB raus und wieder rein und es funktioniert wieder nur eine kurze Zeit. geschätzt unter einer Minute. Weis jemand Rat? mfg Erik
Gast
#6339548
Um welches Boards geht es und was zeigt dessen LED an? Welches Programm löst den Fehler aus? Welcher Teil dieses Programms ist ausschlaggebend? Ein Schaltplan und ein Foto vom Aufbau wäre nicht schlecht.
Ich schicke einfach mal das ganze Programm. Die Mouse.move() hier bitte ignorieren, es passiert auch ohne Mouse library. Es geht um ein Arduino Pro Micro Board. Beim Uploaden muss man den als Leonardo auswählen. Den Interupt Pin musste ich versetzen auf die 6 wegen der beiden SLC und SDA.
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 | |
264 | |
265 | |
266 | |
267 | |
268 | |
269 | |
270 | |
271 | |
272 | |
273 | |
274 | |
275 | |
276 | |
277 | |
278 | |
279 | |
280 | |
281 | |
282 | |
283 | |
284 | |
285 | |
286 | |
287 | |
288 | |
289 | |
290 | |
291 | |
292 | |
293 | |
294 | |
295 | |
296 | |
297 | |
298 | |
299 | |
300 | |
301 | |
302 | |
303 | |
304 | |
305 | |
306 | |
307 | |
308 | |
309 | |
310 | |
311 | |
312 | |
313 | |
314 | |
315 | |
316 | |
317 | |
318 | |
319 | |
320 | |
321 | |
322 | |
323 | |
324 | |
325 | |
326 | |
327 | |
328 | |
329 | |
330 | |
331 | |
332 | |
333 | |
334 | |
335 | |
336 | |
337 | |
338 | |
339 | |
340 | |
341 | |
342 | |
343 | |
344 | |
345 | |
346 | |
347 | |
348 | |
349 | |
350 | |
351 | |
352 | |
353 | |
354 | |
355 | |
356 | |
357 | |
358 | |
359 | |
360 | |
361 | |
362 | |
363 | |
364 | |
365 | |
366 | |
367 | |
368 | |
369 | |
370 | |
371 | |
372 | |
373 | |
374 | |
375 | |
Gast
#6339559
Zu hoher Strom -> 500mA Polyfuse macht dicht.
Gast
#6339561
Lade mal einen leeren Sketch hoch und schau ob die LED wieder ausgeht.
Jetzt weis ich um welche LED es geht, es ist die TX LED. Würde mich wundern, wenn dieses Modul solch ein Stromverbrauch hat.
Gast
#6339569
Erik H. schrieb: > Jetzt weis ich um welche LED es geht, es ist die TX LED. Würde > mich wundern, wenn dieses Modul solch ein Stromverbrauch hat. Dann nehm ich alles zurück, ich hatte geglaubt zu wissen, dass der Pro Micro nur eine rote LED an Vcc hat.
Gast
#6339570
Ich habe das Gefühl, dass du gar keine Hilfe brauchst - so schlampig wie
du auf die Rückfragen eingegangen bist und die Hinweise über dem
Text-Eingabefeld ignoriert hast.
> Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
Ich habe mich selber erschrocken wie lang das plötzlich wurde. Bin andere Foren gewöhnt die eine Scrollbox daraus machen. Ich benutze euer Forum fast zum ersten mal. Leerer Sketch ist hochgeladen und die LED leuchtet nicht, es ist aber auch die TX LED die ich meinte. Hab ich noch was ignoriert? mfg Erik
Gast
#6339629
Stefan ⛄ F. schrieb: > Um welches Boards geht es > Welcher Teil dieses Programms ist ausschlaggebend? > Ein Schaltplan und ein Foto vom Aufbau wäre nicht schlecht.
Jetzt bin ich grad etwas verwirrt, Board ist doch bestimmt dieses Arduino Teil gemeint, also mein Pro Micro. Wenn das nicht gemeint ist, bitte im Aufklärung was mit Board gemeint ist. Den Schaltplan habe ich hochgeladen, der Leider den Thread gefüllt hatte und Foto ist nun anbei, ich dachte das wäre optional. Weil ich das definitiv richtig angestöpselt habe. Und ich hatte oben beschrieben, das ich es an Pin 6 den Interrupt gesteckt habe, es ist Pin 7.
Gast
#6339653
Du hast Probleme mit einem MPU6050 Board. Da ist offenbar mehr drauf, als nur der nackte Chip (mindestens eine LED). Um deine Problembeschreibung nachzuvollziehen, brauchen wir die Unterlagen zu diesem Board. Ich würde zum Beispiel gerne mal hinterfragen, ob am I²C Bus Pull-Up Widerstände fehlen und ob die Stromversorgung/Spannung passt. Dein Programm solltest du auf wenige Zeilen reduzieren, die das Problem zeigen. Durch Schrittweise Reduktion findest du heraus, was den Fehler auslöst. > Den Schaltplan habe ich hochgeladen ich kann ihn nicht finden! > Weil ich das definitiv richtig angestöpselt habe. das wiederum kann ich mangels Plan un Unterlagen vom Modul nicht prüfen.
Gast
#6339661
Der MPU6050 Chip kann jedenfalls nicht mit 5V betrieben werden. Du hast die VCC Leitung aber an 5V angeschlossen. Auch der I²C Bus vom Chip verträgt keine 5V.
Ich verstehe das grad nicht, das Modul ist doch für 3.3v und 5v geeignet. Mein Arduino board arbeitet auf 5V.
Gast
#6339685
Wenn es dieses Modul ist: https://www.robotics.org.za/image/catalog/generic/GY-521/GY-521%20-%20Layout03.jpg, dann hat es einen 3,3V Spannungsregler und Pull-Up Widerstände auf 3,3V. Die LED müsste permanent leuchten, denn sie hängt an den 3,3V. Das widerspricht aber deiner Aussage, dass es die Tx LED sei.
Gast
#6339691
Erik H. schrieb: > Ich verstehe das grad nicht, das Modul ist doch für 3.3v und 5v > geeignet. Woher soll ich das wissen? Soll ich das aus deinem Foto heraus lesen? Welches Modul verwendest du? Ich brauche den Schaltplan davon! Nur weil irgendein Chinese 5V in seinen Shop schreibt, heißt es noch lange nicht, dass das Ding uneingeschränkt 5V kompatibel ist. Gerade die Spannungspegel an den Signal-Leitungen sind hier oft ein Knackpunkt. Ich habe zum Beispiel einige USBASP Programmieradpater, die knallhart 5V Signale ausgeben, obwohl ich VCC per Jumper auf 3,3V eingestellt habe. Das sind keine Produktionsfehler, sondern die werden immer noch so produziert und verkauft! Aus dem Schaltplan geht das auch klar hervor - works as (Kacke) designt. Außerdem weiss ich immer noch nicht, um welche LED es geht. Wie ist sie woran angeschlossen und was soll sie normalerweise anzeigen? Anstatt zu diskutieren, besorge den Schaltplan von deinem MPU-6050 Modul und reduziere dein Programm schrittweise, um den Fehler einzugrenzen. Ziege und das kleinstmögliche Programm, so der Fehler noch auftritt. Ich würde mal damit anfangen, die komplette USB Kommunikation raus zu nehmen und stattdessen Debug Meldungen auf einem seriellen Port auszugeben.
>Du hast Probleme mit einem MPU6050 Board. Da ist offenbar mehr drauf, >als nur der nackte Chip (mindestens eine LED). Nur nebnebei: Bei mir läuft dieses Modul, das ich von Pollin habe, dauerhaft ohne Aussetzer mit 3,3V am Modul und 5V am AVR. Allerdings habe ich nicht diese langen Kabel dazwischen. Lesen erfolgt im Burst-Modus nach IRQ. Lochrasterplatte, handverdrahtet, Schutzdioden drin gegen +5V und Abblock-Cs. Kein Display am Bus. Mit Displays ist mir öfter mal der I2C-Bus hängen geblieben, mit diesem Modul nicht. mfG
Gast
#6339966
Wenn der verdacht besteht, dass der I²C Bus hängt, schließe ich zwei LEDs daran an, die bei LOW Pegel leuchten und stelle auf eine sehr niedrige Übertragungsrate um (falls möglich). Meistens leuchtet im Fehlerfall eine LED permanent. Dann trenne ich einen Slave nach dem anderen ab, bis die LED aus geht. Der war's dann wahrscheinlich Schuld. Dann kann ich weiter nachforschen, warum dieser Slave sich wohl aufgehangen haben könnte.
Es gibt in der Schleife 2 verschiedene Aufgaben, die den Loop unterbrechen. Beide habe ich mit Serielle ausgaben beobachtet und zusätzlich mit LED Funktion. Das Programm wird richtig zwischen durch abgebrochen, also nicht bei den 2 bestimmten Aufgaben, und lässt sich nur mit Strom aus und wieder an aktivieren. Dann habe ich einfach mal den Interrupt Pin entfernt. Jetzt läuft der Problemlos durch. DMP soll ja nur mit Interrupt richtig funktionieren (berichtigt mich, wenn ich falsch liege), aber es scheint noch alles gut zu laufen, also auch saubere Daten. Ist Interrupt trotzdem noch wichtig? Wenn ja, dann müsste ich mir ein neues Board kaufen, weil die meisten Interrupts auf SCL und SDA laufen und Pin 7 irgendwie nicht richtig funktioniert, da es mein Board zum Stillstand bringt.
Gast
#6340268
Erik H. schrieb: > weil die meisten Interrupts auf SCL und SDA laufen Dieser Satz ergibt für mich keinen Sinn. Ich sehe da nichts aufregendes:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Was kann da schon schief gehen? Eigentlich nichts, denke ich. Interessanterweise wird diese Variable gar nicht gelesen, deswegen stimme ich Dir zu, dass die Interruptleitung offenbar vollkommen unnütz ist. > Pin 7 irgendwie nicht richtig funktioniert, da es mein > Board zum Stillstand bringt. Da würde ich mal weiter nachforschen. Denn wenn der Pin vom Programm letztendlich gar nicht benutzt wird, wie kann er dann ein Problem auslösen? Irgend etwas wichtiges muss ich übersehen haben. Messe mal die Spannung am Arduino Modul an Pin 7 (und GND). Vielleicht ist die Verbindung defekt und da liegt eine undefinierte Spannung an (weder eindeutig High noch Low) so dass der Interrupt ständig aufgerufen wird und daher das Hauptprogramm zum Stillstand kommt.
Der Pin 7 hat 0 Volt. Der Interrupt Pin vom Modul hat 3,26V. Wann sich der Interrupt tatsächlich einschaltet weis ich nicht, ist jedenfalls nicht zu bemerken. Alle Interrupts laufen auf ungünstige Pins. RX, TX, SDA und SCL. https://neonaut.neocities.org/blog/images/pro-micro-fc73b3fa.png Da steht nun auch Int.6 an Pin 7. Weis nicht was dieser Punkt zu bedeuten hat. Dann noch ne Frage nebenbei. Ich habe den "return;" rausgehaun, bei "if (!dmpReady)" und eine Blinkende LED da rein gemacht. Warum Blinkt die LED wenn die Serielle Verbindung unterbrochen ist, also wenn der Serial Monitor geschlossen wurde? Es ist doch kein Programm da um dmpReady umzuschalten auf False. --Edit: Sie Blinkt auch wenn sie weg ist, am Ende ist ein LED Blinker für jede Abfrage am Modul. Aber warum blinkt denn die so langsam wenn die Verbindung zum Monitor getrennt wurde?
Gast
#6340629
Erik H. schrieb: > Der Pin 7 hat 0 Volt. Der Interrupt Pin vom Modul hat 3,26V Wie kann das sein, die sind doch mit einem Kabel verbunden!? > Alle Interrupts laufen auf ungünstige Pins. RX, TX, SDA und SCL. Pin 7 (PE6, INT.6) ist doch OK. Alles gut. > Ich habe den "return;" rausgehauen, bei > if (!dmpReady) return; Die Variable ist sowieso sinnlos, weil sie immer true ist: > Serial.println(F("DMP ready! Waiting for first interrupt...")); > dmpReady = true; Da wird überhaupt nicht auf den ersten Interrupt gewartet. > und eine Blinkende LED da rein gemacht. Keine Ahnung was das bedeuten soll. Wie macht man eine LED in den Quelltext rein? Ist das wirklich eine Blinkende LED, so wie diese: https://www.reichelt.de/blink-led-5-mm-bedrahtet-2-pin-rot-5-mcd-60-led-bl-5mm-rt-p10205.html ? Es wird Zeit für vernünftige Pläne, damit wir wissen, wovon wir reden. > Sie Blinkt auch wenn sie weg ist, Wer blinkt wenn wer weg ist? Die LED ist weg und sie blinkt trotzdem? Das ergibt keinen Sinn. > Aber warum blinkt denn die so langsam wenn > die Verbindung zum Monitor getrennt wurde? Möglicherweise läuft dein Programm ohne USB Verbindung langsamer, weil er Daten an den PC senden will, dieser sie aber nicht annimmt. Nach einer gewissen zeit gibt das Framework dann auf und macht trotz Kommunikationsfehler weiter. Da musst du mal die Doku von dem entsprechenden Arduino Core lesen oder in dessen Quelltexte gucken. Das ist halt die Krux bei Frameworks. Sie sind toll, solange sie wie erwartet funktionieren. Aber wenn sie man etwas unerwartetes machen, hat man besonders viel Mühe damit.
Danke, das wird es auch sein, dass der Programmablauf sehr langsam dann läuft. Da ich es an Pin 7 messen soll, habe ich die beiden getrennt. Zusammen ergeben die aber auch 3,26V.
> DMP soll ja nur mit Interrupt richtig funktionieren (berichtigt mich, wenn ich
falsch liege), aber es scheint noch alles gut zu laufen, also auch saubere Daten.
Ist Interrupt trotzdem noch wichtig?
Ist die DMP-Software geladen ins Modul?
Ob der Interrupt wichtig ist, geht aus der Konfiguration des Moduls
hervor. Welche Betriebsart wurde eingestellt?
MfG
DMP wird vom Script aktiviert. Da es schon im Modul vorhanden ist. Ich habe es nur so vernommen, das der interrupt notwendig ist, aber bisher scheint es nicht notwendig zu sein, weil alles was ich vorhabe super funktioniert.
Gast
#6341882
Erik H. schrieb: > Da ich es an Pin 7 messen soll, habe ich die beiden getrennt. Zusammen > ergeben die aber auch 3,26V. Ach so, na dann passt es ja. Ist eindeutig High.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
