ich würde gerne ein eigentlich simples Projekt umsetzen:
Eine digitale Wasserwaage, welche je nach Winkel LEDs in rot, gelb und grün ansteuert.
Es werden also nur drei Ausgänge benötigt + Neigungssensor.
Ich suche nach einem uC/Arduino welcher einerseits möglichst kompakt ist, alles benötigte an Board hat und für eine Embedded-Version leicht adaptierbar ist.
Mit leicht adaptierbar meine ich, dass Bauteile vorhanden sind, welche ich später bei einer Platinen-Eigenentwicklung übernehmen kann, oder das ganze Modul entsprechend schon so verwendbar ist.
Wie schaffst du so ein kompliziertes Projekt, wenn du nicht mal das Prozessorboard auswählen kannst? Welche Schnittstelle hat dein Neigungssensor? Die LEDs kann jeder ansteuern. Vielleicht reicht ja ein Pro Mini oder ein Nano?
Ich suche nach einem uC/Arduino welcher einerseits möglichst kompakt
ist, alles benötigte an Board hat und für eine Embedded-Version leicht
adaptierbar ist.
Du meinst einen uC/Arduino, der auf dem Board bereits über einen Neigungssensor verfügt?
Ich suche nach einem uC/Arduino welcher einerseits möglichst kompakt
ist, alles benötigte an Board hat und für eine Embedded-Version leicht
adaptierbar ist.
Du meinst einen uC/Arduino, der auf dem Board bereits über einen
Neigungssensor verfügt?
Ach und das ist so simpel dass du nicht mal alleine starten kannst? Fang doch erst mal mit was an, was du kannst. Eine LED blinken lassen. Am besten ohne fertiges Board. Da lernst du die Grundlagen um später deinen Controller und deine Sensoren auf eine Platine zu bringen.
Für eine Wasserwaage brauchst du keine IMU. Da reicht ein ADXL345 o.ä.
Ich habe mal auf die Schnelle etwas in Eagle gezeichnet. Als uC ein Atmega 328P und als Beschleunigungssensor den ADXL345BCCZ, angebunden über I2C.
Die Versorgungsspannung soll 4,5V betragen (3 D Zellen).
Die Funktion soll (wenn der uC programmiert ist) recht simpel sein:
X-Achse wird über die ersten 5 LED-Strings angezeigt, Y-Achse über die letzten 5 LED-Strings. Je nach Winkel tendiert die Anzeige zu rot(jeweils links/rechts), gelb(jeweils links/rechts oder grün(mitte).
Könnte meine Schaltung so funktionieren, oder siehst du (ihr) da Fehler?
Bei der Berechnung der Basiswiderstände von Q5 und Q10 war ich mir etwas unsicher, weil bei den grünen LEDs die Durchlasspannung 2,2V beträgt, somit würden auf der E-C-Strecke nur ca. 100mV abfallen...
Ich habe mal auf die Schnelle etwas in Eagle gezeichnet.
Das sieht man.
Um Schaltpläne nicht durch Versorgungs- und Groundgestrüpp bis zur Unlesbarkeit mit Leitungen zuzupflastern, verwendet man statt des Leitungsgewirrs gewöhnlich Symbole für VCC und Gnd.
p.s.
Wieso eigentlich "VCC" in einer Schaltung in MOS-Technologie?
Der Anschluss, von dem der Index abgeleitet ist, heißt "Drain".
Dankeschön für die Hinweise - hab ich alles umgesetzt - sieht das so besser aus? Der ADXL wird nun mit 3.3V versorgt, wobei ich mir noch die Frage stelle:
Wenn der uC mit 4,5V versorgt wird und der ADXL mit 3,3V, passt das doch mit der I2C Schnittstelle nicht zusammen, oder?
hab ich alles umgesetzt - sieht das so besser aus?
Besser, noch nicht gut.
Unterschiedliche Versorgungsspannungen sind am I2C Bus Ok. Die Pull-Up Widerstände R3 und R4 müssen aber an 3,3V!
Aber LEDs schaltet man nicht direkt parallel. Wenn sie nicht zufällig exakt die gleiche Flussspannung haben, leuchten sie ungleichmäßig hell. Jede LED braucht ihren eigenen Vorwiderstand. Wenn du dir nicht die Augen weg brennen willst, lass weniger Strom durch die LEDs fließen. 1-5 mA sind inzwischen üblich.
Ein Abblock-Kondensator am AVR ist zu wenig. Jedes Versorgungspin-Paar braucht einen eigenen.
Da die Versorgungspins in deinem Plan zusammengefasst dargestellt sind würde ich entsprechend viele Kondensatoren nebeneinander zeichnen. Beim Erstellen des Layoutes muss man sie dann sinnvoll anordnen.
Dein 3,3V Spannungsregler wird so nicht funktionieren, da er eine höhere Eingangsspannung braucht. Schätzungsweise etwa 5,3 Volt. Nimm einen MCP1702 oder HT7333 oder XC6220B331 (der kommt mit weniger aus) und vier Batterien.
Bei 3,3V sollte der Quarz besser langsamer sein, z.B 8 MHz. Brauchst du
den Quarz überhaupt? Wenn ja, wozu? Der AVR und I2C funktionieren ohne
ihn.
Ich möchte mir gerne die Möglichkeit offen lassen, später den Winkel bei welchem die LEDs angehen sollen, über USB ändern zu können. Daher will ich im Layout zumindest schonmal den Quarz einplanen - der Rest kommt irgendwann nach, wenn ich klüger bin...
4 Zellen bekomme ich in das Gehäuse leider nicht rein, da ich die Batterie-Halter auf der Platine haben möchte. Daher bin ich auf 9V Block umgeschwenkt und nun wird alles mit 3.3V versorgt.
Ich bin bei den LEDs mal auf 10mA runter gegangen, da die schon hell seien sollten - kann man dann ja ggfls. noch korrigieren.
Zum Thema Abblockkondensatoren - könnte man sich diese theoretisch nicht einsparen, wenn man die VCC/GND Leiterbahnen niederohmiger (breiter) plant, oder finden die Spannungseinbrüche dennoch statt?
Achso, es leuchten nur max. 4 LEDs (2 x-Achse, 2 Y-Achse) gleichzeitig. Damit sollte der Spannungsregler nicht überlastet werden - ist nur die Frage was das die Schaltung im Programmieradapter zieht...
Daher bin ich auf 9V Block umgeschwenkt
LEDs mal auf 10mA runter gegangen
Ich bezweifle, dass durch deine LEDs tatsächlich 10 mA fließen. Rechne das nochmal nach.
Bedenke, dass 9V Blöcke nur wenig Strom liefern können. Vier LEDs zu jeweils 10mA gehen wohl noch. Alle gleichzeitig ein wäre sicher zu viel.
Ich würde einen Schaltwandler (Step-Down) verwenden, hat bei so hoher Spannungsdifferenz erheblich weniger Verluste als Linear Regler.
Ich kann nur davon abraten, an Abblock-Kondensatoren zu sparen. Damit provoziert man Probleme, die niemand haben will.
Da der Quarz für serielle Kommunikation da ist nimm 7,3728 Mhz, denn damit kann man alle normalen Baudraten exakt erzeugen. Siehe die Baudraten Tabellen im Datenblatt des AVR.
Warum überhaupt die zwei LED pro Ausgang? Moderne LEDs brennen dir schon bei 5 mA so auf die Netzhaut dass du Sternchen siehst.
Noch dazu können die Pins von AVRs recht anständige Ströme treiben. Auch hier, schau ins Datenblatt wo die Grenzen pro Pin, Port und gesamter Stromversorgung des AVR liegen. Das müsste (ich habe lange nichts mehr mit AVRs gemacht) bei 5 mA pro LED ohne externe Treibertransistoren gehen.
Ich habe schon diverse Accelerometer Chips angesteuert. Jede unserer Maschinen enthält einen.
Aber die Gradgenauigkeit wird du nicht hinbekommen. Dazu sind die Dinger nicht genau genug. Auch schwanken die Messwerte, so dass da auch noch drauf gefiltert werden muss.
Probiere das mit einen Brettaufbau aus, (z.B. ADCL345 Platine (Reichelt 3.30€) und Raspi) bevor an ein Gerät gedacht wird, was zu ungenau ist.
Wenn der uC mit 4,5V versorgt wird und der ADXL mit 3,3V, passt das doch
mit der I2C Schnittstelle nicht zusammen, oder?
Warum nimmst Du denn auch so einen alten Typ? Die neueren Microchip AVRs können auch bei 1.8V noch mit ihrem vollen Takt laufen, und Dein ADXL geht bis 2.0V runter.
Daher bin ich auf 9V Block umgeschwenkt
LEDs mal auf 10mA runter gegangen
Ich bezweifle, dass durch deine LEDs tatsächlich 10 mA fließen. Rechne
das nochmal nach.
Ja, die VCC ist ja jetzt niedriger...ich dummbatz.
Ich würde einen Schaltwandler (Step-Down) verwenden, hat bei so hoher
Spannungsdifferenz erheblich weniger Verluste als Linear Regler.
Ich probiere es dann lieber mit 4 AA Zellen. Schaltwandler ist für meinen Wissensstand noch zu kompliziert in der Umsetzung.
Ich kann nur davon abraten, an Abblock-Kondensatoren zu sparen. Damit
provoziert man Probleme, die niemand haben will.
OK.
Da der Quarz für serielle Kommunikation da ist nimm 7,3728 Mhz, denn
damit kann man alle normalen Baudraten exakt erzeugen. Siehe die
Baudraten Tabellen im Datenblatt des AVR.
uC, ADXL mit 3,3V. Die WSW2812B direkt an die 5-6V. Wegen den 0,7xVCC für die Daten habe ich mir aus einem anderen Beitrag einen Pegelwandler rein kopiert.
Nicht richtig. Vier Zellen liefern 3,6 bis 6,4 Volt.
Der 78M33 braucht am Eingang 2 Volt mehr als am Ausgang, also 5,3 Volt. Deine 4 Batterien kannst du somit nur zu kleinen einem Bruchteil ausnutzen.
Ein Step-Up Spannungswandler könnte dir aus zwei Batterien (1,8 bis 3,2V) die gewünschten 5V erzeugen. Oder 3,3V wenn du doch lose LEDs nimmst.
Die WSW2812B direkt an die 5-6V
Das kannst du knicken. Bei der maximalen Spannung gehen sie kaputt und unterhalb von 4 Volt Batteriespannung zeigen sie falsche Farben.
habe ich mir aus einem anderen Beitrag einen Pegelwandler rein kopiert
Der Pegelwandler wurde hier umfassend diskutiert und für nur knapp funktionsfähig befunden. Keine gute Idee für ein neues Design. Als Alternative wurde der 74LVC1G17 empfohlen.
Die WS2812 brauchen ab Version 5 keinen Pegelwandler, da sie mit 2,7 bis 5V ansteuerbar sind. Außerdem kannst du den AVR mit 4 bis 5V betreiben, wozu dann der Pegelwandler?
uC, ADXL mit 3,3V. Die WSW2812B direkt an die 5-6V. Wegen den 0,7xVCC
für die Daten habe ich mir aus einem anderen Beitrag einen Pegelwandler
rein kopiert.
Was sagt ihr?
Lass doch einfach mal die endgültige Spannungsversorgung außen vor.
Du machst jetzt deine Schaltung und dein Programm fertig, versorgt über Labornetzgerät wie es gerade passt.
Wenn das alles läuft, machst du dir Gedanken um Batterien und Spannungswandler.
Nicht richtig. Vier Zellen liefern 3,6 bis 6,4 Volt.
Der 78M33 braucht am Eingang 2 Volt mehr als am Ausgang, also 5,3 Volt.
Deine 4 Batterien kannst du somit nur zu kleinen einem Bruchteil
ausnutzen.
Ein Step-Up Spannungswandler könnte dir aus zwei Batterien (1,8 bis
3,2V) die gewünschten 5V erzeugen. Oder 3,3V wenn du doch lose LEDs
nimmst.
Die WSW2812B direkt an die 5-6V
Das kannst du knicken. Bei der maximalen Spannung gehen sie kaputt und
unterhalb von 4 Volt Batteriespannung zeigen sie falsche Farben.
Ok, überzeugt. Den uC und die WS2812 mit 5V versorgen, dann fällt der Pegelwandler weg.
Als Boost-Converter habe ich mir den MAX1674 ausgeguckt. Also einen für die 3,3V und einen weiteren für die 5V. Oder reicht für die 3.3V auch der Linearregler? Gibts da Einwände oder andere Vorschläge?
Lass doch einfach mal die endgültige Spannungsversorgung außen vor.
Du machst jetzt deine Schaltung und dein Programm fertig, versorgt über
Labornetzgerät wie es gerade passt.
Wenn das alles läuft, machst du dir Gedanken um Batterien und
Spannungswandler.
Mit einem Arduino Uno, ADXL345 Board und WS2812LEDs funktioniert der Aufbau (softwaretechnisch) schonmal so, wie ich es mir vorstelle.
Da ich das Gehäuse nicht größer bauen kann und keine Akku-Lösung will, muss ich auch hin und wieder an die Versorgung denken...
Als Boost-Converter habe ich mir den MAX1674 ausgeguckt.
Gibts da Einwände oder andere Vorschläge?
Der Chip alleine kostet ein vielfaches von fertigen Modulen. Schaltregler sind schwierig, was die Auswahl der Bauteile drumherum und das Layout angeht. Kaufe lieber ein fertiges Modul und packe das auf deine Platine.
Andernfalls lies wenigstens das dazu: http://www.lothar-miller.de/s9y/archives/46-EMV-Optimiertes-Schaltreglerlayout.html
Und wenn du danach immer noch deinen eigenen Schaltregler gestalten willst, dann präsentiere hier dein Layout zur Prüfung. Typischerweise geht das dann (aus gutem Grund) noch 50x hin und her, bis es fertig ist.
Nochmal: Der 78M33 braucht am Eingang mindestens 5,3 Volt. Er reicht also nicht. Ich hatte dir bereits andere Regler vorgeschlagen, die an der Stelle besser passen.
Der Chip alleine kostet ein vielfaches von fertigen Modulen.
Schaltregler sind schwierig, was die Auswahl der Bauteile drumherum und
das Layout angeht. Kaufe lieber ein fertiges Modul und packe das auf
deine Platine.
Dann lasse ich das lieber. Wenn dann möchte ich es selbst designen und keine huckepack-Lösung.
Ich hatte dir bereits andere Regler vorgeschlagen, die an
der Stelle besser passen.
Sorry, habe ich überlesen - ok, anbei mit MCP1702 für 3,3V und 5V.
Kannst du keine WS2812 in Version 5 (oder neuer) bekommen? Die sind doch
schon seit Jahren auf dem Markt!
Doch, mache ich auch so - auf den Experimentierboards mit denen ich getestet habe, sind z.B. auch solche verbaut.
Für mich stellt sich aktuell noch die Frage (falls der Rest der Schaltung ok seien sollte), ob es sinnvoll ist die ISP Schnittstelle gegen USB auszutauschen?
Da ja alles in SMD gebaut wird, möchte ich den AVR ungerne vorher in einem Programmieradapter programmieren, sondern einfach nur USB/ISP anstecken und das Programm drauf laden.
Für mich stellt sich aktuell noch die Frage (falls der Rest der
Schaltung ok seien sollte), ob es sinnvoll ist die ISP Schnittstelle
gegen USB auszutauschen?
Das musst du dir selbst überlegen.
Wenn man das zu Ende denkt, landet man bei Mikrocontrollern, die den USB Bootloader bereits integriert haben.
Dann lasse ich das lieber. Wenn dann möchte ich es selbst designen und
keine huckepack-Lösung.
Den Chip vom Schaltregler oder den µC designst du doch auch nicht selbst. Nur weil nicht alles auf einem Stück Silizium, sondern auf FR4 aufgebaut ist, muss das doch die Verwendung nicht ausschließen.
Wenn man das zu Ende denkt, landet man bei Mikrocontrollern, die den USB
Bootloader bereits integriert haben.
Im Moment stört mich nur der Gedanke, dass fürs draufladen vom Bootloader auf z.B. den ATmega32U4 i.d.R. noch fuses gesetzt werden müssen, wofür ich dann trotzdem ISP brauche und ein Kunde o.ä. soll Firmwareupdates hierbei nicht selbst durchführen.
Mal ganz blöd gefragt (hab bisher nur Boards mit Bootloader und USB gehabt) - kann man mit der Arduino IDE und einem ISP Programmer auf z.B. einen neuen, jungfräulichen Mega328P den Code draufladen? Dann bleibe ich bei ISP.
Den Chip vom Schaltregler oder den µC designst du doch auch nicht
selbst. Nur weil nicht alles auf einem Stück Silizium, sondern auf FR4
aufgebaut ist, muss das doch die Verwendung nicht ausschließen.
Natürlich designe ich den uC nicht selber. Ich finde es aber nicht schön, auf mein Board ein fertiges, zugekauftes Board zu setzen - ist für mich einfach einfach eine Prinzipsache. Ich möchte ja auch lernen wie etwas funktioniert und soweit es möglich ist, die Schaltung selbst erstellen.
So, die erste Version vom Board ist fertig. Mir gefällt es zwar nicht ganz, dass auch Bahnen auf dem Bootom Layer sind, hab aber noch keine passende Anordnung gefunden...
Gibt es Verbesserungsvorschläge, Fehler? Hab mal gelesen, dass alles an Fläche was nicht genutzt wird, als GND dienen soll?
Der Batteriehalter ist auf Bottom und wird geklebt - also nicht wundern wegen den sichtbaren Bohrlöchern im Halter.
Ich habe mal den langen Weg von Pontius nach Pilatus hervorgehoben, den die Schwingung vom Quarz-Oszillator nimmt. Die relativ große Fläche innerhalb der Markierung strahlt Funkstörungen ab, falls der Quarz so überhaupt schwingt.
Die Kondensatoren am Quarz gehören an den GND Pin, der direkt neben den Quarz-Anschlüssen liegt. Mit möglichst kurzen Leitungen.
Schau dir auch mal die anderen Leitungen zur Stromversorgung an. Sie sollten sich sternförmig am Spannungsregler treffen. Deine lange Bus-Linie die einmal im Zickzack durch das ganze Dorf fährt und an jeder Milchkanne hält, ist exakt das Gegenteil von richtig.
Schau dir auch mal die anderen Leitungen zur Stromversorgung an. Sie
sollten sich sternförmig am Spannungsregler treffen. Deine lange
Bus-Linie die einmal im Zickzack durch das ganze Dorf fährt und an jeder
Milchkanne hält, ist exakt das Gegenteil von richtig.
Ich will noch was ergänzen:
Bei dieser wenig komplexen Schaltung ist das wahrscheinlich noch kein Problem. Konzentriere dich lieber auf den Quarz.
Schau dir auch mal die anderen Leitungen zur Stromversorgung an. Sie
sollten sich sternförmig am Spannungsregler treffen. Deine lange
Bus-Linie die einmal im Zickzack durch das ganze Dorf fährt und an jeder
Milchkanne hält, ist exakt das Gegenteil von richtig.
Sorry für die späte Antwort, ich musste das Board-Layout aber nochmal ändern.
Der Quarz und Kondis sind raus gekommen.
Hab versucht alles etwas sternförmiger auf die Sannungswandler zu führen - was meinst du?
Ich könnte den R4 noch etwas hoch packen, damit er näher am Bus ist...
Du hast im obigen Schaltplan hübsch an jede LED einen Blockkondensator gemalt. Abertausendmal wichtiger für die Funktion wäre, wenn du den Blockkondensator im Layout (und damit in der kupfernen Realität) möglichst dicht an die LEDs "malen" würdest.
Du hast im obigen Schaltplan hübsch an jede LED einen Blockkondensator
gemalt. Abertausendmal wichtiger für die Funktion wäre, wenn du den
Blockkondensator im Layout (und damit in der kupfernen Realität)
möglichst dicht an die LEDs "malen" würdest.
was meinst du?
Der Schaltplan zum Layout fehlt.
Ups, sorry habe ich vergessen. Anbei der Plan.
Die WS2812B in V5 benötigen angeblich keinen Kondensator mehr. Den Schalter hab ich von der Platine genommen, da der an andere Stelle kommt.
Bei der D1 bin ich mir allerdings nicht sicher, ob diese mit 8,1V zu hoch ist...
Die Kondensatoren an den Spannungsreglern sollen (wie alle Abblock-Kondensatoren) mit möglichst kurzen Leitungen an das IC angebunden werden, das damit abgeblockt wird.
Der GND Anschluss von C14 ist nicht direkt mit dem GND Anschluss des IC verbunden, das muss auf jeden Fall korrigiert werden.
Mir gefällt nicht, wie GND zu C4 kommt. Von rechts oben kommt eine andere blaue GND Leitung, die wäre viel direkter.
Wenn du C15 direkt links neben das IC verschiebst (und dabei um 180° drehst), hat er viel kürzere Leitungen. Ebenso kannst du C5 etwas weiter unten platzieren und um 180° drehen, damit er näher am Spannungsregler sitzt. Da ist ja genug Platz.
Die Kondensatoren an den Spannungsreglern sollen (wie alle
Abblock-Kondensatoren) mit möglichst kurzen Leitungen an das IC
angebunden werden, das damit abgeblockt wird.
So besser? Habe C4, C14, C3, C7, C5 und C15 etwas näher gerückt.
Schau im Datenblatt des Transistors, wie viel Spannung Vgs der
Transistor verträgt. Die Diode muss darunter liegen.
Danke für den Tipp, da läge ich bei 8,0V mit der 8,1er schon drüber.
Würde jetzt eine 6,8V nehmen.
Mir gefällt immer noch nicht wie GND ab C4 kommt. Es ist schon besser als vorher, aber die Brücke auf der roten Platinenseite ist nicht nötig. Du kannst die von oben kommende blaue GND Leitung direkt an den Kondensator bringen. Zwischen Pins des Spannungsreglers genug Platz dafür, denke ich.
Schau im Datenblatt des Transistors, wie viel Spannung Vgs der
Transistor verträgt. Die Diode muss darunter liegen.
Danke für den Tipp, da läge ich bei 8,0V mit der 8,1er schon drüber.
Würde jetzt eine 6,8V nehmen.
Lass dich nicht bange machen. Schau im Datenblatt der Z-Diode, wie deren Kennlinie und die Kenndaten dazu aussehen.
Bei Kleinleistungs-Z-Dioden ist als Nennspannung meist der Wert bei einem Strom von 5mA angegeben. In deiner Schaltung liegt der Strom dagegen bei weniger als 1/50 davon und entsprechend kleiner ist die Spannung über der Z-Diode. Allerdings solltest du im Datenblatt nach den Maximalwerten gucken.
Eine Z-Diode mit einem Nennwert von 8V1 hat allerdings schon einen gewissen Seltenheitswert.