Hallo,
Ich habe einen Linienverfolgungs/Funk/Sprach/Objekterkennungs mit
Display Menü gesteuerten Roboter gebaut.
Ich habe jetzt noch keine Motortreiber raufgemacht, da diese noch nicht
angekommen sind (2* TLE5205-2). Also wollte ich mal schauen wieviel
Strom die Motoren ziehen und habe in Serie ein Amperemeter zum Motor und
vom Motor wieder zum Minuspol der Batterie (In dem Fall des
Netzgerätes).
Die Cancel Mode Taster Taste ist folgende:
http://www.conrad.at/ce/de/product/701855/VANDGESCH-TASTER-16MM-2A48VDC-RING-BL/SHOP_AREA_17386&promotionareaSearchDetail=005
Mein Problem ist es jetzt wenn ich mit dem Amperemeter zum
Motoranschluss gehe und ich im Menü schon in irgend einerm Modus bin, so
wechselt sich der Modus.
Nochmal im Klartext:
Mit dem Roboter lassen sich viele Aufgabenstellungen lösen. Um diese
auszuwählen muss man jetzt mit den Tasten rauf, runter, ok den Modi
auswählen.
Jeder Modus besteht aus einer Endlosschleife, die nur unterbrochen
werden kann wenn die boolsche Variable cancelmode = true ist.
Beispiel:
//Schreibe auf Display Verlassen des aktuellen Modus
25
LCD_Mode_Verlassen;
26
27
//Disable Timer0
28
TIMSK0&=~(1<<TOIE0);
29
30
cancel_mode=false;
31
32
}
Cancelmode wird immer gesetzt wenn der Interupt Int0 ausgelöst wird.
Dieser wird mit Signal() abgefragt und wird durch die Cancelmode Taste
ausgelöst.
Und beim anlegen einer Spannung am Motor wird Cancelmode gesetzt.
Wenn ich die Tastenverbindung (Bild) vom Roboter jedoch trenne und ich
in einem Modus drinnen bin, dann löst der Int0 nicht aus wenn ich den
Motor drehen lasse, sondern nur wenn ich den Tastenverbinder drinnen
stecken lasse (was ja praktischerweise immer sein soll).
Das kann aber nur bedeuten, dass das Falschsignal über den Taster
ausgelöst wird.
Meine Frage jetzt: Kann ich den Taster irgendwie abschirmen, damit sich
keine Störung mehr über ihn übertragen lässt?
Wenn ja wie?
Oder soll ich einfach einen anderen nehmen aus Kunststoff vielleicht?
Bin für allen Rat dankbat
RC Glied anbringen zur entstörung oder per software polling und
entprellung abfragen, dazu gibts genug code in der Codesammlung.
Da wird auf jeden fall irgendwo eine Störung induziert durch die Ströme
die bei deinem Motor fließen (vermutlich anlaufstrom).
Ein Taster direkt an einen Interrupt ist sowieso nicht zu empfehlen, da
wenn der Taster prellt der Interrupt gleich mehrfach aufgerufen werden
kann.
Hauke Radtki schrieb:> RC Glied anbringen zur entstörung oder per software polling und> entprellung abfragen, dazu gibts genug code in der Codesammlung.> Da wird auf jeden fall irgendwo eine Störung induziert durch die Ströme> die bei deinem Motor fließen (vermutlich anlaufstrom).>
Finde ich ne sinnvolle Lösung, sollte man immer vorsehen.
Außerdem drauf achten, dass nicht durch Spannungsabfall auf der Masse
Leitung (Strom des Motors) ein Schalten unmöglich wird.
> Ein Taster direkt an einen Interrupt ist sowieso nicht zu empfehlen, da> wenn der Taster prellt der Interrupt gleich mehrfach aufgerufen werden> kann.
Taster am Interrupt geht schon. Wenn der Int auslöst, wird er einfach
abgeschaltet. Dann eine Timerveriable gesetzt. Die wird im Timer
decrementiert bis sie null ist. Wenn 0 dann Int wieder zulassen. So wird
der Taster entprellt.
Luk4s K. schrieb:> Wie hochohmig ist dein Pullup-Widerstand?
5k
Bernd Hallinger schrieb:> Hauke Radtki schrieb:>> RC Glied anbringen zur entstörung oder per software polling und>> entprellung abfragen, dazu gibts genug code in der Codesammlung.>> Da wird auf jeden fall irgendwo eine Störung induziert durch die Ströme>> die bei deinem Motor fließen (vermutlich anlaufstrom).>>> Finde ich ne sinnvolle Lösung, sollte man immer vorsehen.> Außerdem drauf achten, dass nicht durch Spannungsabfall auf der Masse> Leitung (Strom des Motors) ein Schalten unmöglich wird.
Also schaut meine ganze Zusatzbeschaltung wie im Bild aus?
Welche Werte empfehlen sich da für Rt und Ct?
Der RC Tiefpass löst aber hier aber das Prellen und die Entstörung
gleichzeitig oder?
lg andy
Pascal Haury schrieb im Beitrag #1996034:
> Darf ich mal fragen, warum du oben Rechts im Foto (HPIM2330.JPG)> Leitungen in Wasser gelegt hast??
Das ist kein Wasser.
Hauke Radtki schrieb:> RC Glied anbringen zur entstörung
Wo genau soll ich den TIefpass reingeben?
Am Motor ist einer drann, und es gibt keinen Grund wieso ich einen
TIefpass am Int Eingang legen soll wenn ich so recht überlege.
lg andy
Andy S. schrieb:> Am Motor ist einer drann, und es gibt keinen Grund wieso ich einen> TIefpass am Int Eingang legen soll wenn ich so recht überlege.
Genau da soll er aber hin.
Das Problem existiert bei dir, weil du die Tasterkabel über einen
Gleichstrommotor legst. Dessen Bürstenfeuer sorgt für Störungen in
umliegenden Leitungen. Deine Tasterleitung ist da ja ideal, da sie recht
lang und nahe am Motor ist.
:-)
Übrigends solltest du die Leitungen sowieso besser verlegen, so wickelts
die unter Garantie irgendwann in die Reifen.
Floh schrieb:> Genau da soll er aber hin.
Dann müsste ich aber so eine art Invertierer reinmachen weil ich ja
gegen GND ziehe, dann wird zwar die Elektronik in der Luft hängen aber
ich versuche es mal. Ja ich hab sowieso hingeschrieben dass sich der
linke Motor dreht und deswegen habe ich auch die Tasterleitungen nach
rechts gegeben, damit so wenig Störung wie möglich einkoppelt wird. Aber
auch diese Entfernung scheint nichts zu helfen.
Danke jedenfalls für die Hilfen, ich werde einmal den RCTiefpass
reinmachen und berichte.
lg andy
Andy S. schrieb:> Dann müsste ich aber so eine art Invertierer reinmachen weil ich ja> gegen GND ziehe
Wofür den Inverter? Einfach so wie oben in deinem Bild gezeigt aufbauen.
:-)
Drauf achten, dass dein Rt etwa 10 mal kleiner ist als dein pullup,
sonst versaust du dir den LOW Pegel (Spannungsteiler). C dann so
auslegen, dass du vielleicht noch 50Hz Bandbreite hast, das reicht
völlig, so schnell kann kein Mensch (sinnvoll) tippen.
Luk4s K. schrieb:> Wie hochohmig ist dein Pullup-Widerstand?
Der interne Pullup ist doch 34,9 kOHM.
Ich habe ihn rausgemessen vom mega644.
Habe jetzt einen 47uF und einen 460 Ohm Widerstand für Ct imd Rt
genommen, jedoch haut das auch nicht so hin.
Was passiert ist erstmals das selbe rausspringen aus der Schleife und
zusätzlich warte ich 1,5s nach dem ich die Cancelmode Taste gedrückt
habe bis das Programm reagiert, irgendwas stimmt danoch nicht so recht
und ich muss mir das nochmal überlegen.
Denkanstöße sind aber natürlich gewünscht.
lg andy
Hi
>Der interne Pullup ist doch 34,9 kOHM.>Ich habe ihn rausgemessen vom mega644.
Ein Blick ins Datenblatt hätte gereicht.
>Habe jetzt einen 47uF und einen 460 Ohm Widerstand für Ct imd Rt>genommen, jedoch haut das auch nicht so hin.
Die 47µ sind zu gross.
>Was passiert ist erstmals das selbe rausspringen aus der Schleife und>zusätzlich warte ich 1,5s nach dem ich die Cancelmode Taste gedrückt>habe bis das Programm reagiert, irgendwas stimmt danoch nicht so recht>und ich muss mir das nochmal überlegen.
Siehe oben.
Poste doch mal den ganzen Schaltplan.
MfG Spess
Spess53 schrieb:> Ein Blick ins Datenblatt hätte gereicht.
Ich habe das ganze DB durchsucht, aber einen richtigen Wert für die
Pullups habe ich nicht gefunden.
Spess53 schrieb:> Poste doch mal den ganzen Schaltplan.
Der Tiefpass befindet sich allerdings beim Taster hinten, da ich nichts
auf die Platine löten will.
lg andy
Andy S. schrieb:> Der Tiefpass befindet sich allerdings beim Taster hinten, da ich nichts> auf die Platine löten will.Facepalm
Der Sinn dieses Tiefpasses ist es, die Störungen, die vom Kabel (=
Antenne) empfangen werden, vom uC-Eingang fernzuhalten. Der bringt halt
nun mal nichts, wenn er dafür am falschen Ende hockt.
-.-
Floh schrieb:> Der Sinn dieses Tiefpasses ist es, die Störungen, die vom Kabel (=> Antenne) empfangen werden, vom uC-Eingang fernzuhalten. Der bringt halt> nun mal nichts, wenn er dafür am falschen Ende hockt.
Ich hatte gedacht die Störungen gehen zuerst auf den Taster und von dort
weiter zum Kabel und dann zum Controller.
Guter Einwand,
Danke!
lg andy
Luk4s K. schrieb:> Verwende einen externen Pullup, der deutlich kleiner ist, z.B. 1k.
Hat das irgendeinen positiven Effekt auf meine Störungen?
lg andy
Hi
>Ich habe das ganze DB durchsucht, aber einen richtigen Wert für die>Pullups habe ich nicht gefunden.
Electrical Characteristics -> DC Characteristics
RPU I/O Pin Pull-up Resistor 20 50 kΩ
MfG Spess
Andy S. schrieb:> Luk4s K. schrieb:>> Verwende einen externen Pullup, der deutlich kleiner ist, z.B. 1k.>> Hat das irgendeinen positiven Effekt auf meine Störungen?>> lg andy
Ja, hat es höchstwahrscheinlich.
Nachtaktiver schrieb:> Je Hochohmiger ein Eingang ist umso schlimmer sind externe> Einstrahlungen in Bezug auf störungen.
Das habe ich noch nie gehört, aber gut zu wissen.
Schönes neues Jahr!!
Ich werde jetzt einfach eine neue Platine designen mit den fehlenden
Sachen, da sowieso mehr Fehler drauf sind. Ich weiß halt einfach nicht
wie ich den Tiefpass da reinmachen soll ohne irgendwie einen Kurzen zu
verursachen. Es ist einfach zu wenig Platz.
Wie siehts aus mit den Motorleitebahnen?
Kan ich die so lassen oder sollen sie noch dicker werden?
Und passt jetzt der Tiefpass?
lg andy
Kann ich den Tiefpass so mit die 100 Ohm und dem 1k pullup lassen?
Gibt es sonst noch stellen wo ich Filter einbauen sollte?
Die anderen Taster können alle Modis im Betrieb nicht verändern, also
werde ich darauf verzichten, was könnten noch Fehlerwuellen sein?
lg andy
Da noch der neue Schaltplan und das Layout. Ich habe den Komparator und
den Mux rausgeschmissen, dafür verwende ich jetzt den internen
Komparator und den Atmega644P der 2 Serielle Schnittstellen hat um
weitere Fehlerquellen auszuschließen.
Die 5 Luftlinien werde ich händisch verbinden müssen.
lg andy
Andy S. schrieb:> Kann ich den Tiefpass so mit die 100 Ohm und dem 1k pullup lassen?> Gibt es sonst noch stellen wo ich Filter einbauen sollte?
In der Software, um kurze Impulse zu ignorieren; bzw. Entprellung.
Andy S. schrieb:> und das Layout.
Soweit ich das dem JPEG-Pixelmuß richtig entnehmen kann kommen sich
manche Leiterbahnen beträchtlich nahe. z.B. Am Atmega644 unten links.
Dito unter D1. Die Leiterbanhführung ist überaus ... kreativ; könnte man
ein wenig aufräumen (entweder nur rund (70er Jahre-Stil) oder
vollständig 45°/90° Winkel). Eine willkommene Abwechselung zu dem
eckigen Bauhausstil ist es dennoch allemal, aber über Geschmack lässt
sich vortrefflich streiten.
Luk4s K. schrieb:> Soweit ich das dem JPEG-Pixelmuß richtig entnehmen kann kommen sich> manche Leiterbahnen beträchtlich nahe. z.B. Am Atmega644 unten links.
ja, stimmt, habe jetzt sowieso alles wieder umändern müssen (Bild) weil
die Leiterbahnen zu dünn waren.
Ich habe jetzt einen Tiefpass ganz nah an der Platine reingemacht.
Jedoch bekomme ich immer noch Störungen und zwar die selben. Ct ist
jetzt 4,7uF und Rt ist 470R. Ich benutze immer noch den internen 34k
Pullup, da sich das auf der Platine nur schwer ändern lässt.
Es hat den Anschein dass der Tiefpass überhaupt nichts macht. Noch dazu
kommt jetzt, dass auch wenn ich die Taster rausgebe die Störung
entsteht. Liegt aber wahrscheinlich daran, dass die Anschlüsse vom
Kondensator einbisschen rausshauen weil er ja nicht direkt auf der
Platine drauf ist.
Andy S schrieb:> da sich das auf der Platine nur schwer ändern lässt.
Einen Widerstand kann man auch auf der Unterseite noch nachträglich
auflöten, ist zwar unschön, reicht aber zum ausprobieren.
Was die Platine anbetrifft: Mach mal einen DRC, manche Leiterbahnen
berühren sich sogar... Außerdem scheint mir so, als ob dein
"Massepolygon" nicht den Namen GND hat; lass mal die EAGLE-Dateien
rüberwachsen :)
Luk4s K. schrieb:> Außerdem scheint mir so, als ob dein> "Massepolygon" nicht den Namen GND hat
Soll ja auch nicht mit GND verbunden sein, sondern nur zum Ätzmittel
sparen.
Andy S schrieb:> Luk4s K. schrieb:>> Außerdem scheint mir so, als ob dein>> "Massepolygon" nicht den Namen GND hat>> Soll ja auch nicht mit GND verbunden sein, sondern nur zum Ätzmittel> sparen.
Mach's dennoch schaden tut's nicht und du sparst nochmals ein wenig mehr
Ätzmittel, meinetwegen setz' auch die orphans auf on. Wenn du deinen
Ätzprozess im Griff hast, kannst du die Leiterbahnbreite deutlich
reduzieren, z.B. auf 24mil, dann entschäft sich vieles. Mit 10mil kommst
du bequem unter 2 2.54mm Pins durch. Die Abblock-Cs könnten ebenfalls
noch besser platziert werden. Wenn du diese in einem kleineren Rastermaß
nimmst, bekommst du sie sogar direkt an die Pins. Alternativ kannst du
auch SMDs nehmen. 1206 bekommst du bequem neben die Pads. Wenn du die
Peripherie an den Pins des AVRs geschickter verteilst, lösen sich manche
langen Luftlinien fast in Wohlgefallen auf bzw. werden deutlich kürzer.
Drahtbrücken musst du nicht im Schaltplan als solche kennzeichnen;
einfach beim Routen das Layer wechseln (mittlere Maustaste). Beim
Drucken blendest du dann das obere Layer aus und lötest die Brücken wie
gehabt ein.
EDIT:
Andy S schrieb:> ja, stimmt, habe jetzt sowieso alles wieder umändern müssen (Bild) weil> die Leiterbahnen zu dünn waren.
weshalb?
Luk4s K. schrieb:> meinetwegen setz' auch die orphans auf on.
Was ist das?
Luk4s K. schrieb:> Wenn du diese in einem kleineren Rastermaß> nimms
Kann ich theoretisch auch auf 0,635mm gehen?
Luk4s K. schrieb:> 1206 bekommst du bequem neben die Pads.
Sry, ich bin jetzt nicht der beste elektroniker, das gebe ich zu. Was
heißt das?
Luk4s K. schrieb:> Drahtbrücken musst du nicht im Schaltplan als solche kennzeichnen;> einfach beim Routen das Layer wechseln (mittlere Maustaste). Beim> Drucken blendest du dann das obere Layer aus und lötest die Brücken wie> gehabt ein.
Aha, ok gut zu wissen
Luk4s K. schrieb:> Andy S schrieb:>> ja, stimmt, habe jetzt sowieso alles wieder umändern müssen (Bild) weil>> die Leiterbahnen zu dünn waren.>> weshalb?
Naja weil das unser Werkstättenlehrer das so gesagt hat.
Danke für die Tipps!
lg andy
in die Kommandozeile von Eagle eingeben; abschnitt Orphans
> Luk4s K. schrieb:>> Wenn du diese in einem kleineren Rastermaß>> nimms>> Kann ich theoretisch auch auf 0,635mm gehen?
Ich meine Damit das Rastermaß der Abblock-Cs, hier ist dasselbe
Rastermaß wie vom Atmega sinnvoll.
> Luk4s K. schrieb:>> 1206 bekommst du bequem neben die Pads.>> Sry, ich bin jetzt nicht der beste elektroniker, das gebe ich zu. Was> heißt das?
1206 ist eine SMD-Baugröße, siehe Wikipedia, zählt dabei noch zu den
größeren. 0603 lässt sich auch noch relativ gut von Hand verarbeiten.
> Luk4s K. schrieb:>> Drahtbrücken musst du nicht im Schaltplan als solche kennzeichnen;>> einfach beim Routen das Layer wechseln (mittlere Maustaste). Beim>> Drucken blendest du dann das obere Layer aus und lötest die Brücken wie>> gehabt ein.>> Aha, ok gut zu wissen>> Luk4s K. schrieb:>> Andy S schrieb:>>> ja, stimmt, habe jetzt sowieso alles wieder umändern müssen (Bild) weil>>> die Leiterbahnen zu dünn waren.>>>> weshalb?>> Naja weil das unser Werkstättenlehrer das so gesagt hat.
Hmm mit welcher Begründung? Ich denke mal, dass ihr die Platinen selbst
ätzt. Mit einfachen Mitteln (Tintenstrahldrucker, Plastikfolie und
UV-Belichter) bekommt man, wenn der Prozess stimmt, auch noch
3.94mil=0.1mm Leiterbahnen hin. Bei Isolate sollte man allerdings nicht
sparen. 20mil~0.5mm sollten es mindestens bei SMD sein, bei Bedrahteten
Bauteilen bin ich mit 32mil~0.8mm gut gefahren. Gutes Gelingen!
> Danke für die Tipps!
Gern geschehen
> lg andy
mfg lukas