Hallo liebes Forum,
ich möchte eine kleine Kirmesattraktion (in Miniatur) bauen und würde
mich freuen, wenn jemand mal über die Schaltung und das Board
drüberschauen würde.
Gesteuert wirds über einen Atmega328P. Ein großer Motor1 (gesteuert über
L298-Modul) läßt ein Objekt hin- und herfahren. Ein Servo dreht es in
Endstellung wieder um. Das Ding kann man beschießen. Trifft man an eins
von drei Feldern (Sensor: "mechanisch" ausgelöster Reedkontakt),
passiert was (Lichtgeplänkel an/aus, Sound, weiterer kleiner Motor2
macht Sachen...)
Dafür sitz ich grad an der Steuerung. Da ich da mehr oder weniger
Anfänger bin, wäre ich für Anregungen dankbar. Ich werde das auf
Lochraster löten.
Mir gehts jetzt nicht um elektrotechnische Feinheiten, sondern das Biest
sollte einigermaßen zuverlässig funktionieren.
Konkrete Fragen die ich hab:
-Sollten irgendwo in die 12V Leitung vielleicht noch 2-3
Stützkondensatoren?
-vor die 555 (die einen Sirenenton erzeugen, da wird ein Lautsprecher
angeschlossen) sollten schon noch zusätzliche Abblockkondensatoren,
oder?
-was hab ich sonst so alles nicht beachtet, vergessen oder vertauscht?
zur kurzen Erläuterung:
inputs:
PC0, PC1: Endstellung 1+2 (umdrehen und in andere Richtung fahren);
PD0...2: Reed-Kontakte "Treffer";
PB0 : Start-Taster
outputs:
PC3: steuert multivibrator an, Led-Geflacker;
PD5: steuert multivibrator an, Led-Geflacker + konstantes Licht;
PD3: steuert Servo zum Umdrehen;
PD6: ne555Schaltung, Sirene;
PB1...3: an L298-Modul; Motor1 enable, M1_logic0, M1_logic1;
PB4: an L298-Modul; Motor2 enable (Motor2 dreht sich nur in eine
Richtung und bekommt per Schaltung logic0 und logic1)
Wie gesagt, bin für Hinweise dankbar. Ich habe vor, das Montag zu löten,
möchte also am Grundkonzept am liebsten nichts ändern.
Danke an alle, die sich die Mühe machen, ich stehe ab mittags für
Rückfragen zur Verfügung...
Nicht zuviel schimpfen, ick bin halt nich wirklich Elektroniker...
Gute Nacht und danke für die Aufmerksamkeit!
Moin, Moin.
Denkanstoß:
Der Atmega328P ist nicht ausgelastet.
Ich würde alle Funktionen die du z. Zt. in Hardware planst in SW
umsetzen.
Z.B.:
PC3: steuert multivibrator an, Led-Geflacker;
Die Multivibratorfunktion in SW umsetzen und die Led direkt (evtl über
Treiber ansteuern)
selbiges (sinngemäß)für:
PD5: steuert multivibrator an, Led-Geflacker + konstantes Licht;
PD3: steuert Servo zum Umdrehen;
PD6: ne555Schaltung, Sirene;
Das spart jede Menge HW und bei Anpassungen (in SW) biste flexibler.
Ich würde auch die Versorgungsspannug mit einem getakteten Regler
reduzieren uhnd nicht mit einem Festspannungsregler. (weniger leistung
die unnötig in Wärme verbraten wird)
Gruß Volker
blinksdinks schrieb:> -was hab ich sonst so alles nicht beachtet
Mach mal einfach die Versorgungsleotungen im Lyout 4 mal so breit wie
die "normalen" Signale
Und dann schalte mal alle Layer aus und nur die Kupferlayer (top,
bottom, pins, vias) ein und lass das Ganze auf dich wirken. Du findest
da sicher noch einige solcher gelb markierten "Abkürzungen".
Und mach einen DRC. Ich meine fast, das rot Umringelte dürfte zu knapp
werden: der Widerstand dort oben sieht kurzgeschlossen aus...
Hi Lothar,
blinksdinks schrieb:> Ich werde das auf> Lochraster löten.
Du hast aber Recht. DRC kann nicht schaden.
Er sollte aber Prinzip
E Eingang - links
V Verarbeitung - mittig
A Ausgang - rechts
beachten.
s.a.
Beitrag "Hardware-Designtipps des Monats: Der Schaltplan" -
nur als Tip
Leiterbahnen entweder 45° oder bei Lochraster im 90° Winkel verlegen.
Empfiehlt sich dann mit anderem Programm zu arbeiten - wg. Farbe
Verdrahtung
Stimmt µC ATMEGA 328P im Schaltplan - unten ist Mega48 ... 168-Pu, oben
steht ATMEGA 328P >> Pin-Belegung (habe ich nicht im Kopf)
Ich würde auch mehr von HW in SW auslagern. HW, wenn einmal gelötet,
kann schlecht geändert werden. SW kann ich jederzeit ändern.
mfg
Olaf
Ich glaube, dass die Pull-Down Widerstände an den Basen der NPN
Transistoren nicht nötig sind. Einen kleinen Kondensator am Reset Pin
würde ich auch empfehlen, um sporadisch unerwünschte Resets durch
Radiowellen zu verhindern.
Danke an euch alle für die Hinweise. Werde sie gleich mal ins Layout
einarbeiten.
Ich wollte die ganzen Funktionen lieber HW-mäßig lösen, weil ich
a) nicht nur kein wirklicher Elektriker bin sondern
b) erst recht kein Programmierer.
Also z.B. das Signal für die Sirene. Da fällt es mir schwer sich
vorzustellen, wie ich elegant SW-seitig mittels PWM einen sich ändernden
Sirenenton erzeuge und gleichzeitig die ganzen anderen Funktionen
abarbeite(LED1 ist 50ms an, dann aus; LED2 für 30ms an/aus, dazu noch
Motoren und Servo...).
Mit meinem Könnensstand erscheint es mir sinnvoller, den Code recht
übersichtlich zu halten und dafür 20min länger zu löten. Also Sensor1
wird ausgelöst--> setze Ausgang1 auf logisch 1 und los geht der
Sirenenlärm.
Mir ist zwar schon klar, wie ich das jeweils einzeln SW-mäßig lösen
könnte (und theoretisch auch alles zusammen), aber da trau ich mich
vielleicht besser mal in einem halben Jahr ran. Lieber Stück für Stück
lernen als alles auf einmal. Und etwas Grundschaltungen lernen, oder
auch den Umgang mit dem 555er, hat ja auch was für Anfänger...
@fast: die LEDs besorg ich mir mal, die sehen wirklich interessant aus,
für ein zukünftiges Projekt.
@olaf brecht. die Atmegas sind pinkompatibel (dieses Package für den
48...168 zeigt alle PWM-Kanäle an, die Packages die ich gefunden hab für
den 328er machen das nicht. Und bei Eagle bin ich ja auch erst am Anfang
des Lernens...)
@crazy h. + stefanus: also 100n an Reset? oder kleiner?
Und darauf ist jetzt niemand eingegangen: wirklich keine weiteren Stütz-
oder Abblockkondensatoren?
und was sagt denn eure Erfahrung: wenn meine Leitungen von den
Reed-Kontakten (oder auch der Start-Taster) ca. 1m lang sind, sollte ich
die noch entstören (z.b. Ferrit ums Kabel) oder klappt das vermutlich so
bei dieser billigen Anwendung?
Danke nochmal an euch alle für die Hinweise und genommene Zeit!
Bis später!
Ins Layout einarbeiten... mach doch am besten ein neues.
Der Schaltplan ist stellenweise ein Zumutung. Mal ist die positive Seite
eines Schaltplanteils (Multivibratoren) oben, mal ist sie unten.
Eine klare Anordnung der Ein- und Ausgänge an den Seiten wäre auch
schick gewesen und erleichtert (mir zumindest) das Lesen solcher Pläne.
Außerdem sind die Einwände berechtigt, daß das LED-Geflacker wirklich
supereinfach vom µC erledigt werden kann. Wenn Du die Sirene wegen der
höheren Frequenzen mit den 555ern behalten willst okay, wobei das auch
keine große Sache für einen AVR ist wenn Du die LED-Blinkerei
implementiert hast.
Ben B. schrieb:> Eine klare Anordnung der Ein- und Ausgänge an den Seiten wäre auch> schick gewesen und erleichtert (mir zumindest) das Lesen solcher Pläne.
Das heißt also für die Zukunft: ich sollte in Eagle meinen µc
"umdesignen", dass alle Eingänge links und alle Ausgänge rechts sind?
Und o.k., ich bau die Schaltung auch mal ohne die Multivibratoren und
probier das rein softwaremäßig zu lösen, ist ja ne gute Übung.
Ich bring mir diesen Krempel seit einem Jahr in meiner Freizeit quasi
ohne Vorahnung bei, ich bin manchmal etwas überfordert von diesem
Dreisgespann aus mechanischer Umsetzung meiner Objekte, der
elektrotechnischen Seite und dann noch programmieren lernen... Und Eagle
lernen und Platinenlayout usw...
Ist manchmal etwas viel auf einmal, deswegen wollte ich bei dem Ding
hier die Programmierung so gering wie möglich halten. Die mechanische
Umsetzung des ganzen ist hier vor allem die große Herausforderung...
blinksdinks schrieb:> ich sollte in Eagle meinen µc> "umdesignen", dass alle Eingänge links und alle Ausgänge rechts
Du könntest auch ein sog. Multipart designen, der eine klare Trennung
der einzelnen Ports/VCC & GND/XTAL/... vorsieht.
Oder einfach µC in Mitte Blatt positionieren, links davon die Eingänge &
rechts die Ausgänge platzieren, oben VCC & unten GND.
Liest sich leichter & hilft auch bei Design PCB - als Grundlage
Funktionsblöcke.
Mach die HW so einfach wie möglich & so komplex wie nötig.
Es wurde schon gesagt:
+ bei einem Hobbyprojekt ist HW & SW egal wie oft designt werden muß -
kosten nur Dich Zeit & Geld
+ bei einem Projekt im Feld ist es einfacher, die SW - bei gutem
Design - auf einen neuen Stand hochzuziehen, schwieriger wäre es 10K
PCBs im Feld auszutauschen
mfg
Olaf
Nein, der Controller ist im Schaltplan völlig gängig dargestellt und was
von den Portpins nachher Eingang und was Ausgang ist, bestimmt allein
die Programmierung. Was ich meinte ist Deine im Schaltplan völlig
willkürlich mitten drin verteilten Anschlüsse für externe Komponenten
wie die LEDs, Taster usw. Das muß man sich mühsam zusammensuchen und
übersieht garantiert irgendwas dabei.
Ich find des viel schöner, wenn man diese sauber am Rand aufreiht und
dann in ihrer Nähe den entsprechenden Schaltungsteil/Funktionsblock
positioniert.
Und wie gesagt, vergiss die beiden LED-Multivibratoren. Wenn Du es
schaffst, diese mit dem µC ein- und auszuschalten, schaffst Du auch die
LEDs direkt anzusteuern, das ist meiner Meinung nach wirklich nur ganz
minimal schwieriger zu implementieren. Taktsignal und XOR reicht, wenn
Du Dich in die Interruptprogrammierung einarbeitest, brauchst Du Dich im
Hauptprogramm auch gar nicht mehr darum zu kümmern, wenn die
Interruptroutine erstmal läuft. Das schwerste (wofür Du Dich wohl
zwangsläufig mit Timern und deren PWM-Modi auseinandersetzen mußt) ist
sowieso die Ansteuerung des Servos.
Und wieso braucht das Servor eigentlich 6V? Reichen da nicht 5V?
Danke für die Schaltplanhinweise, werde es das nächste mal
systematischer machen. Und ich versteh schon die Einwände mit den
Multivibratoren, aber:
ich bin ja so Neuling und will wenigstens einmal nen Multivibrator
aufgebaut haben! Dass hier im Forum mir niemand vorwerfen kann, ich
hätte es noch nie gemacht!
Außerdem: Für meinen derzeitigen Kenntnisstand finde ich es tatsächlich
angemessen (ich bin auch etwas unter Zeitdruck), es für dieses Projekt
so zu lösen. Ich arbeite eh mit Interrupts (Trefferanzeige). Die beiden
Motoren werden auch über PWM gesteuert, dazu noch der Servo. Das reicht
mir vorläufig an Einarbeitung in neue Dinge. Mich schreckt tatsächlich
etwas die Vorstellung ab, irgendwo noch ein Register hochzählen zu
lassen um das Blinken zu realisieren, auch wenn es vermutlich gar nicht
schwer ist, es umzusetzen.
Aber wie gesagt, ich habe die Vermutung, wenn ich eine Stunde mehr Zeit
ins löten stecke, spare ich mir zwei beim Programmieren. Einfach weil
ich es erstmal lernen müsste. Beim nächsten Mal dann die SW-Lösung, da
hab ich dann ja auch schon mal nen Multivibrator gebaut...
Der Servo läuft auch mit 5V, aber meine Erfahrung sagt, mit 6 laufen sie
besser. Außerdem fand ichs ganz gut wenn der seperat vom 7805 läuft, und
verlustemäßig is so auch besser...
Die ISR für Treffererkennung funktioniert übrigens schon, die PWM läuft
auch auf allen Timern.
Morgen abend gibt es hoffentlich nen Probelauf mit allen Kompenenten!
Gute nacht!
> ich bin ja so Neuling und will wenigstens einmal nen Multivibrator> aufgebaut haben! Dass hier im Forum mir niemand vorwerfen kann, ich> hätte es noch nie gemacht!
Blödsinn. Erstens würden Dir das nur Trolle vorwerfen, auf die Du den
größten Haufen scheißen kannst, der für Dich vorstellbar ist und
zweitens ist das für den Aufbau Deines Projekts nicht relevant.
Sag doch einfach "ich will, daß das Ding mit diskreten MVs arbeitet und
fertig" - das ist ehrlich und jeder Einwand zwecklos. Dann mach es halt
so.
> wenn ich eine Stunde mehr Zeit ins löten stecke,> spare ich mir zwei beim Programmieren.
Das empfindest Du falsch. Wenn Du Dich mit diesem Projekt so weit in den
Controller eingearbeitet hast, daß der Servo und der L298 korrekt läuft,
dann wird das Einpflegen der LEDs für Dich in ein paar Minuten erledigt
sein.
Aber kein Problem, jeder wie er möchte.