- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 14

Thema: Problem: Pulsstrom bei AVR (ATmega328) Unterschied zu Arduino?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo Jannai,

    ich denke schon, dass der hohe Strom den µC aus dem Takt bringt. Hast du 100nF Block-Kondensatoren parallel zur Spannungsversorgung direkt am µC mit kürzestem Weg verbaut?
    Wenn das schon so ist oder nicht hilft würde ich testweise probieren den µC mit einer anderen Spannungsquelle zu versorgen. z.B. ein 9V-Block mit einem 7805 nur für den µC. Die Massen der beiden Spannungsquellen dann natürlich verbinden.

    Viele Grüße
    Andreas

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2013
    Beiträge
    6
    Hey,

    danke für die schnelle Antwort!
    Ich hatte leider gerade keine Kondensatoren in diesem Bereich zur Hand, also habe ich mal die zweite Spannungsquelle ausprobiert. ES FUNKTIONIERT!

    Eigentlich ja ein echt blöder Anfängerfehler, man sehe mir meine fehlende Bildung in Etechnik nach.
    Wollte ich eine gemeinsame Spannungsquelle nutzen, welchen Kondensatorwert sollte ich wählen? Die besagten 100nF oder eine Kombination verschiedener?

    Und noch eine Frage: mir ist erst nach dem Erhalt der Transistoren aufgefallen, dass der verwendete Transistor (2N3904) laut Datenblatt nur für einen Dauerstrom von 200mA ausgelegt ist. Schadet es ihm mit der Zeit, wenn ich ihn so hoch pulse? (ca. 2-3 A für 50µs)?

    vielen Dank für die Hilfe,
    Jannai


    edit: wie füge ich denn nachträglich dieses "[gelöst]" suffix ein?
    Geändert von Jannai (04.01.2013 um 22:10 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo Jannai,

    ich verwende immer 100nF und hatte noch nie Probleme. Allerdings hatte ich auch noch nie so hohen Pulsströme wie du. Ausprobieren würde ich sagen! Mehr kann man dir nicht raten, da du nicht geschrieben hast wie die "externe Spannungsquelle mit Elko" genau aussieht.

    Der Dauerstrom für den Transistor ist bestimmt wegen der Erwärmung angegeben. (Ich habe mir das Datenblatt jetzt nicht angesehen). Zu den Spitzen-Strömen sollte aber auch etwas drin stehen. Aber solange nichts warm wird würde ich mir keine Sorgen machen.

    Viele Grüße
    Andreas

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2013
    Beiträge
    6
    Gut, die Kondensatoren müssten Montag kommen.
    Die Transistoren schalten wohl doch eher nur ca. 1 A, ich habe bei meiner blauäugigen Rechnung vergessen dass natürlich auch der Basisstrom deutlich ansteigt. So oder so: warm werden sie nicht.

    Danke und beste Grüße,
    Jannai

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2013
    Beiträge
    6
    UPDATE

    So, ich habe ein bisschen weitergelötet und bin derweil ein gutes Stück weiter gekommen und bei einem weiteren Problem gelandet. Die einzelnen Module funktionieren mit dem 100nF - Kondensator einwandfrei, hier ein Eindruck davon:
    http://www.youtube.com/watch?v=AbrhO0wr51A

    Das neue Problem besteht darin, dass die einzelnen Module (1 ATmega mit 6 Pixeln) ganz eigenartige Dinge machen wenn ich sie verbinde.
    Wenn zwei Module, die einzeln wunderbar funktionieren parallel an die Spannungsquelle angeschlossen werden, dann passiert folgendes:
    Alle Pixel leuchten von Anfang an, jedes mit einer anderen Helligkeit, teilweise flackern/blinken sie.
    Die Annäherung einer Hand wird weiterhin detektiert, allerdings mit stark verminderter Reichweite. Vergleiche folgendes Video:
    http://www.youtube.com/watch?v=2KBWKq_3Txs (Minute 1:50)

    Nach einem Reset der Controller zeigt sich das gleiche Bild. Ich habe auch ein stärkeres Netzteil als im Video (5A Nennstrom) getestet, gleiches Ergebnis.
    Die ATmega sind auf der Platine fast "nackt" verbaut, einzig ein 100 uF Elko und einen 100nF Keramik-Kondensator (2 mm vom Controller) sind zwischen Vcc und GND eingesetzt.

    Meine Theorie:
    Wenn im Programm das Setup anläuft sind die Controller ja noch voll im Takt. Durch das gleichzeitige Durchschalten der Transistoren fällt die Spannung ein Stück ab, die Referenz-Spannungsdifferenz "diff0", fällt dadurch zu gering aus, wodurch die im Loop berechneten Differenzen zu groß ausfallen, also die LEDs heller leuchten als sie sollten. Das flackern ließe sich mit der normalen Variation der Werte im Betrieb erklären, die jetzt auffallen weil der Buffer (Code Zeile 40 "-5") schon ausgeschöpft ist.

    Was meint ihr, klingt das logisch, oder gibt es einen ganz anderen Grund für dieses Verhalten?
    Falls ich recht habe: wie gehe ich am besten damit um? Soll ich die Controller im Setup durch irgendwelche Spielereien (klassisches Delay * Zufallswert) dazu bringen nacheinander den inertialen Spannungswert einzulesen?
    Oder ist es klüger einen Kondensator/Induktivität einzufügen um die Module zu entkoppeln? Wenn ja wäre das klasse, denn die Controller sind schon programmiert
    Dafür welches Bauteil wo einbauen?

    Mir fehlt dahingehend als Maschinenbauer (beschämender Weise) einfach das Grundwissen in dem Bereich. Um so mehr interessiert mich natürlich warum sich die Module so verhalten und wie sich eine Lösung darstellt.

    Vielen Dank für die Hilfe!
    Jannai

    Code (gerne weiterverbreiten, ich erhebe keine Urheberansprüche)
    https://dl.dropbox.com/u/59379713/IR...Code_final.ino

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    hast du mal gemessen wie stark die Spannung am Atmel einbricht? Die Leitungen sehen für den Strom von 1A schon recht dünn aus. Eventuell hast du da dann trotzdem zu hohe Verluste. Hast du mal versucht dickere Leitungen für die Versorgung zu verwenden?
    Alternativ hilft es vielleicht für die Versorgungsspannung 4 Leitungen zu verwenden. Jeweils 2 Stück (+ und -) für die Versorgung des Atmels und dann noch mal 2 Stück (auch + und -) für die Power. Am Netzteil kannst du alle + und alle - Leitungen verbinden.

    Viele Grüße
    Andreas

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Das ist ein tolles Projekt, sowas steht auch auf meiner ToDo-Liste.

    Zu deinem Problem: Wie viel Strom ziehen deine LEDs? Als Daumenregel setzt man je Ampere eine Kondensatorkapazität von 1000µF an, damit sollte man auf der sicheren Seite sein. Die Ursache für das beobachtete Verhalten liegt aber vermutlich eher in einer wechselseitigen Beeinflussung der einzelnen Controller. Im Einzelbetrieb ist immer nur genau eine IR-LED zur Messung aktiv, bei mehreren Modulen zusammen kannst du darüber aber keine Aussage treffen. Die Module übersprechen, das Ergebnis hat mehr einen Zufallscharakter. Um diesen Effekt zu unterdrücken wäre eine Synchronisierung der Module untereinander erforderlich, damit benachbarte Sensoren keine Messungen durchführen.

    Ach ja: Du könntest das Projekt öffentlich dokumentieren (github würde sich anbieten um auch den Quelltext sauber unterzubringen), andere hätten daran bestimmt auch Interesse.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für eine zuverlässige Finktion sollte schon der Mega328 alleine 2 der kleinen 100 nF Kondensatoren haben: je einer für die beiden GND/VCC (bzw. AGND/AVCC) Paare. Der Kondensatorwert ist nicht kritisch, so etwa 10 nF - 1 µF sollten gehen.

    2 der IR LEDs könnte man ggf. auch noch in Reihe schalten, das gibt dann mit dem gleichen Strom mehr Licht. Der Strom wird vermutlich durch den Transistor 2N3904 begrenzt, z.B. durch den Basisstrom, und gar nicht 1 A erreichen. Für 1 A ist der Transistor einfach zu klein, da wäre so etwas wie BC635 angebracht, bzw. für 500 mA ein BC338. Gegen die Störungen sollte man die Versorgung für die LEDs noch einmal extra Puffern und per Widerstand/Induktivität entkoppeln. Geeignet wäre da z.B. mit ein 100 µF low ESR Elko und einem 1 µF Keramikkondensator (gibt als SMD Form, lässt sich aber noch gut löten), und dann Ein Widerstand von z.B. 10 Ohm oder eine Induktivität, die auch ruhig etwas Widerstand habe darf. Die Entkopplung ist nicht nur für eine zuverlässige Funktion von Vorteil, sondern hilft auch Funkstörungen zu reduzieren.

    Die Störungen bei mehreren Einheiten könnten über die zufällig gleichzeitige Messung, oder auch über die Versorgung kommen.

Ähnliche Themen

  1. SainSmart uno r3-atmega328
    Von Droggelbecher im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 18
    Letzter Beitrag: 04.01.2013, 12:57
  2. Schreib Problem bei AVR-DOS
    Von Robo19 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 06.04.2009, 21:55
  3. Unterschied AVR MC zu AT89S8252 MC
    Von mkRE im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 04.01.2006, 17:24
  4. Problem bei Bascom AVR
    Von Moritz f. im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 19.10.2005, 19:20
  5. Unterschied bei Spannungswandlern
    Von A.T.I.R im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 12.06.2005, 11:11

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests