Hallo, Leute! Erstmal wünsche ich euch ein schönes 2010! Und dann, meine erste Frage dieses Jahr... :) Also, ich möchte ein Gerät ein- und ausschalten von einem Programm. Das weil ich zuerst ein Programm auf dem Laptop starten muß, und erst danach den µC. Ich habe folgendes Projekt gefunden: http://www.windmeadow.com/node/4?page=1 Und das sollte auch reichen, aber ich habe gesehen, daß beim einschalten des PCs das Status der PINs bei der seriellen Schnittstelle "unklar" ist. Ganz einfach habe ich mit einem Oszilloskop gesehen, daß das Signal "wackelt" (also ein paar Mal zwischen 1 und 0 wechselt), bis ein gültiges Wert gegeben wird. Wenn ich das oben genannte Projekt nutze, werde ich die Platine mehrmals ein- und ausschalten (in Millisekundenbereich!) wenn ich den Laptop einschalte. Und das gefällt mir nicht. Ein Freund hat mir gesagt, daß ein Kondensator die Lösung sein sollte. Ich habe deswegen hier ein Schema gemacht, so wie ich verstanden habe. Habe ich richtig verstanden (und kann das Ding funktionieren), oder bin ich noch betrunken vom Silvester? Ich danke euch! Luca Bertoncello
> Ich habe deswegen hier ein Schema gemacht, so wie ich verstanden habe.
Mach doch bitte ein Bild davon (als GIF oder PNG) und poste das...
Lothar Miller schrieb: >> Ich habe deswegen hier ein Schema gemacht, so wie ich verstanden habe. > Mach doch bitte ein Bild davon (als GIF oder PNG) und poste das... OK, gemacht... Aber da hier viele Eagle nutzen, dachte ich, das eine Eagle-Datei auch in Ordnung ist... Aber egal! Hier das Schema als PNG. Danke Luca Bertoncello
Im Zeitalter von PlugnPray kannste solche Sachen knicken. Das ging mit DOS oder W98 vieleicht noch, aber mit modernen Betriebssystemen geht das nicht mehr ohne Vorsichtsmaßnahmen (uC mit Protokoll) an den Schnittstellen.
Ich würde R2 zwischen D1 und C1 schalten (quasi "Einschaltstrombegrenzung") und parallel zu C1 ein Entladewiderstand. Weil ansonsten muss sich der Kondensator über die Basis des Transistors entladen werden, glaube nicht dass das gewünscht ist.
holger schrieb: > Im Zeitalter von PlugnPray kannste solche Sachen knicken. > Das ging mit DOS oder W98 vieleicht noch, aber mit modernen > Betriebssystemen geht das nicht mehr ohne Vorsichtsmaßnahmen > (uC mit Protokoll) an den Schnittstellen. Warum sollte es nicht funktionieren? Unter Linux (das Betriebssystem auf dem Laptop) kann ich problemlos die einzelnen PINs der seriellen Schnittstellen steuern. Und Linux IST ein modernes Betriebssystem, oder? :) Grüße Luca Bertoncello
Max V. schrieb: > Ich würde R2 zwischen D1 und C1 schalten (quasi > "Einschaltstrombegrenzung") und parallel zu C1 ein Entladewiderstand. > Weil ansonsten muss sich der Kondensator über die Basis des Transistors > entladen werden, glaube nicht dass das gewünscht ist. Also, du meinst, R2 zwischen D1 und C1 schieben, richtig? Kein Problem! Und was meinst du mit Entladewiderstand parallel zu C1? Ein Widerstand zwischen D1 und GND? Was für ein Widerstand? Danke Luca Bertoncello
g holger. Geowned... Wie kann man in so einem Forum von 100% windoof ausgehen
>Warum sollte es nicht funktionieren? >Unter Linux (das Betriebssystem auf dem Laptop) kann ich problemlos die >einzelnen PINs der seriellen Schnittstellen steuern. >Und Linux IST ein modernes Betriebssystem, oder? :) Ja, und das wackelt an dem Pin weil es etwas sucht. Was willst du dagegen machen?
holger schrieb: >>Warum sollte es nicht funktionieren? > >>Unter Linux (das Betriebssystem auf dem Laptop) kann ich problemlos die >>einzelnen PINs der seriellen Schnittstellen steuern. >>Und Linux IST ein modernes Betriebssystem, oder? :) > > Ja, und das wackelt an dem Pin weil es etwas sucht. > Was willst du dagegen machen? Das Signal "wackelt" wenn ich den Rechner EINSCHALTE, viel bevor Linux (oder jedes anderes Betriebssystem) geladen wird. Und das dauert weniger als eine Sekunde. Nun Schluß mit dem OT. Das Programm auf dem Laptop ist meine Arbeit (schließlich bin ich ein Programmierer). Ich möchte nur eure Hilfe für die Schaltung. Grüße Luca Bertoncello
Parallel zu C1 heißt, das eine Bein des Widerstandes kommt an das eine Kondensatorbein, das andere Bein des Widerstandes kommt an das andere Bein des Kondensators => also Parallel ;) Größenordnung ~10K Ohm würd ich nehmen.
>> Ja, und das wackelt an dem Pin weil es etwas sucht. >> Was willst du dagegen machen? >Das Signal "wackelt" wenn ich den Rechner EINSCHALTE, viel bevor Linux >(oder jedes anderes Betriebssystem) geladen wird. >Und das dauert weniger als eine Sekunde. Dann wackelt halt dein BIOS mit Mausunterstützung an dem Pin rum. Was auch immer? Es wird gewackelt;)
Max V. schrieb: > Parallel zu C1 heißt, das eine Bein des Widerstandes kommt an das eine > Kondensatorbein, das andere Bein des Widerstandes kommt an das andere > Bein des Kondensators => also Parallel ;) Ja, OK, ich weiß was parallel bedeutet... Die Frage war mehr "was ist einen Entladewiderstand?"... :) > Größenordnung ~10K Ohm würd ich nehmen. So wie in der neuen Version? Danke Luca Bertoncello
Naja ist nichts wares was du da vor hast. holger hatte das schon richtig gesagt! Du musst dir einen µC schanppen (ein ATtiny) würde scon reichen und dann über die UART dem µC sagen, schalte das relais ein. Da du ja gesagt hast, das du ein Programmierer bist, sollte das ja eigentlich kein problem sein. Bei der Hardware umsetzung helfen ich/wir dir dann. Eine andere einfachere Lösung wäre ein AND-Gatter. da die wahrscheinlichkeit das 2 Pin der Schnittstelle gleichzeitig high sind relativ klein ist, könntest du so ein schalten deines transistors/relais vermeiden. Du musst da einfach bei deinem programm einfach 2 statt einen pin auf high setzen. Gruß Tobi
To W. schrieb: > Naja ist nichts wares was du da vor hast. > holger hatte das schon richtig gesagt! Du musst dir einen µC schanppen > (ein ATtiny) würde scon reichen und dann über die UART dem µC sagen, > schalte das relais ein. Da du ja gesagt hast, das du ein Programmierer > bist, sollte das ja eigentlich kein problem sein. Bei der Hardware > umsetzung helfen ich/wir dir dann. Sicher! Aber, wenn eine einfache Lösung funktioniert, warum soll ich eine komplexe nehmen? Mein Motto ist "K.I.S.S." (Keep It Simple and Stupid)... :) Wenn ich dann später feststelle, daß es nicht funktioniert, kann ich gern eine neue Schaltung planen, mit einem µC... Aber wo soll jetzt genau das Problem an der Schaltung sein? > Eine andere einfachere Lösung wäre ein AND-Gatter. da die > wahrscheinlichkeit das 2 Pin der Schnittstelle gleichzeitig high sind > relativ klein ist, könntest du so ein schalten deines transistors/relais > vermeiden. Du musst da einfach bei deinem programm einfach 2 statt einen > pin auf high setzen. Leider geht es nicht... Zwei freie PINs, die ich steuern kann, habe ich an der seriellen Schnittstelle nicht... Und eine USB2Serial Schnittstelle zu kaufen, nur um zwei PIN zu nutzen ist etwas übertrieben, oder? Grüße Luca Bertoncello
Ja genau so wie in der Version die du angehängt hast. Wenn du die entsprechenden Teile da hast, bau es auf und probier es aus, passieren dürft nichts, nur die nachgeschaltete Schaltung, welche durch das Relais geschaltet wird würde ich noch nicht dranhängen :)
Hi An dieser Stelle bin ich etwas verwirrt. Wozu der Aufwand? Warum läßt du nicht ein Protokoll zu deinem Roboter senden, was ihn einschaltet? ich würde den µC schon sofort zuschalten und dabei in der Initialisierung die Leistung des Roboters abschalten. Erst wenn ein entsprechender Befehl per RS 232 kommt, werden die entsprechenden Leistungen freigegeben. Ist mindestens genau so sicher wenn nicht noch mehr wie die Zuschaltung per RTS-Signal vom USART. Nur wnn du diesen gezielt schalten kannst, macht es Sinn. Ich würde aber dem Controller ruhig die paar mA spendierren, die er benötigt, um sein Programm abzuarbeiten. Die Zuschaltung per Befehl ist auch sinnvoller, da vorher diverse Zustände des Roboters geprüft werden können. Auch ein Abschaltbefehl ist realisierbar. Z. B. Sende ein "O" für "On" und ein "o" für "off". Mögliche Antwort ist "ok", "F"(ehler) +"xxx" für Fehlernummer. Gruß oldmax
Hallo Beim Einschalten wird das Relais einige Zeit gesperrt,habe ich vor 20 Jahren bei der Parallelen auch als einfachste Lösung gemacht.(mit Kindern) Warum wollen hier immer die "Experten" eine Controllerlösung vorschlagen. Um ein Relais zu schalten muß man nicht immer noch unerhebliche geistige Grütze in die Controller Programmierung stecken. Der Anwender von Bitwackeln wird bei höherer Anforderung auch darauf kommen,die meisten wissen es doch! Gruß
juppi schrieb: > Beim Einschalten wird das Relais einige Zeit gesperrt,habe ich vor 20 > Jahren bei der Parallelen auch als einfachste Lösung gemacht.(mit > Kindern) Schön zu wissen... > Warum wollen hier immer die "Experten" eine Controllerlösung > vorschlagen. Wie gesagt: KISS... > Um ein Relais zu schalten muß man nicht immer noch unerhebliche geistige > Grütze in die Controller Programmierung stecken. > Der Anwender von Bitwackeln wird bei höherer Anforderung auch darauf > kommen,die meisten wissen es doch! Also, du meinst, die Schaltung, wie ich es gemacht habe, sollte funktionieren? Oder sind noch Korrekturen nötig? Danke! Luca Bertoncello
wie oft und wie schnell hintereinander soll das Relais geschaltet werden. Hast du eine "Echte RS232" oder nur 0/5 V Spannungsabfälle berücksichtigen. Diode/R-Teiler Leuchtdiode/Basis /Emitter. ..auch bei abgeschalteten Relais ist die Basis-Emitter Strecke recht störanfällig. B_E-Widerstand. Ich mache die Ansteuerung etwas anders. ...auch einfach und doch primitiv. Gruß
juppi schrieb: > wie oft und wie schnell hintereinander soll das Relais geschaltet > werden. > Hast du eine "Echte RS232" oder nur 0/5 V > Spannungsabfälle berücksichtigen. > Diode/R-Teiler Leuchtdiode/Basis /Emitter. > ..auch bei abgeschalteten Relais ist die Basis-Emitter Strecke recht > störanfällig. > B_E-Widerstand. > > Ich mache die Ansteuerung etwas anders. > > ...auch einfach und doch primitiv. Also, ich muß NICHT schnell das Relais schalten. Das Relais wird benutzt um den Rest des Roboters ein- bzw. auszuschalten, also zwischen ein- und ausschalten sind im schlimmsten Fall mehreren Minuten. Mich interessiert nur eine schnelle und einfache Lösung um dieses Relais steuern zu können. Ob ich eine "echte RS232" habe oder nicht: ich spreche über die serielle Schnittstelle des Laptops. Also, ich nehme an, es ist "echt". Folgende PINs sind schon für die Kommunikation mit dem Roboter belegt: 1 DCD Frei 2 RX Roboter 3 TX Roboter 4 DTR 8 5 GND Roboter 6 DSR 8 7 RTS Frei 8 CTS 4 + 6 9 RI Frei Also, ich konnte die PINs 1, 7 und 9 nutzen. So wie ich aber gesehen habe, kann ich (mindestens einfach) nur die PIN7 vom Programm steuern, also nutze ich PIN7. Ist nun meine Schaltung in Ordnung oder nicht? Gibt es andere Lösungen? Ich habe schon probiert einen USB-PowerSwitch (http://www.obdev.at/products/vusb/powerswitch.html) zu basteln, aber das Ding will einfach nicht USB sprechen, obwohl alles richtig gebaut ist. Ich habe auch versucht die Spannung des ATTiny zu reduzieren (laut Forum von obdev.at sollte es das Problem sein), hat aber nix gebracht. Also, ich suche eine EINFACHE Lösung. Schließlich muß ich nur ein Relais schalten und mehr nicht. Danke für eure Hilfe! Luca Bertoncello
Was ist das denn für ein roboter? Soll das eine art notaus werden? Was spricht denn gegen einen µC? Ok, du willst eine einfache und zugleich sichere Lösung. Aber das geht ja nun mal nicht so einfach, da du ja das bitwackeln bei booten vermeiden willst bzw. filtern willst. Um das Relais beim booten zu sperren, brauchst du sicher mehr hardware als wenn du einen tiny nimmst und den mit in die bestehende Leitung reinhängst. juppi schrieb: > Um ein Relais zu schalten muß man nicht immer noch unerhebliche geistige > Grütze in die Controller Programmierung stecken Ne ist auch nicht nötig... in bascom sind nur wenige zeilen code.... (biite nicht steinigen dafür) oldmax schrieb: > Wozu der Aufwand? Warum läßt du > nicht ein Protokoll zu deinem Roboter senden, was ihn einschaltet? ich > würde den µC schon sofort zuschalten und dabei in der Initialisierung > die Leistung des Roboters abschalten. Das wäre auch ein möglichkeit... Wie wäre es mit einer Ladungspumpe? Du müsstest dann pin7 nur mit einer bestimmten frequenz umschalten und hättst einen realtiv sicheren ausgang. gruß Tobi
Hi Was ich meinte, ist, das ein Roboter eigentlich selbst eine Steuerung hat. So wie es Maschinen haben. Der PC, Laptop oder was auch immer die übergeordnete Steuerung ausmacht, kann natürlich über einen eigenen Ausgang die Leistung eines Maschinenteiles / Roboters aus- oder einschalten. Das Angebot mit dem Relais war ja auch geeignet, aber RS 232 ist in den neuesten PC's Legende. Die Möglichkeit USB Konverter einzusetzen mangels direktem Zugriff auf die einzelnen Signale nicht unbedingt geeignet. Daher der Vorschlag, über Einschaltcode nachzudenken. Was bitteschön ist da überflüssige geistige Grütze.... aber trotzdem dank für die Anerkennung zum Experten. Ich seh ja auch, das die Fragestellung anders war, aber wenn's doch ein Fehler ist, in diese Richtung zu denken, ist ein Rat und Denkanstoß zur Horizonterweiterung doch keineswegs nur duseliges Fachgeschwafel. Was letztendlich von euch angewendet wird, ist mir ehrlich gesagt völlig Wurscht. Gruß oldmax
oldmax schrieb: > Was ich meinte, ist, das ein Roboter eigentlich selbst eine Steuerung > hat. So wie es Maschinen haben. Der PC, Laptop oder was auch immer die > übergeordnete Steuerung ausmacht, kann natürlich über einen eigenen > Ausgang die Leistung eines Maschinenteiles / Roboters aus- oder > einschalten. Das Angebot mit dem Relais war ja auch geeignet, aber RS > 232 ist in den neuesten PC's Legende. Die Möglichkeit USB Konverter > einzusetzen mangels direktem Zugriff auf die einzelnen Signale nicht > unbedingt geeignet. Daher der Vorschlag, über Einschaltcode > nachzudenken. Was bitteschön ist da überflüssige geistige Grütze.... > aber trotzdem dank für die Anerkennung zum Experten. > Ich seh ja auch, das die Fragestellung anders war, aber wenn's doch ein > Fehler ist, in diese Richtung zu denken, ist ein Rat und Denkanstoß zur > Horizonterweiterung doch keineswegs nur duseliges Fachgeschwafel. Was > letztendlich von euch angewendet wird, ist mir ehrlich gesagt völlig > Wurscht. Hallo! Also, die Steuerung des Roboter macht genau der Laptop (zusammen mit einer Platine RnbFra 1.2), und deswegen wäre es für mich wichtig, vom Laptop (via Software) die Platine ein- und auszuschalten. Daß serielle und parallele Schnittstelle auf modernen Laptops nicht dabei sind, weiß ich schon, aber mein Laptop ist nicht so neu, und hat sie. Daher kann ich sie nutzen, denkst du nicht? Grüße Luca Bertoncello
dann machste einfach in die initalisierung ne while-wend schleife und wartest so lange bis eine variable "on" oder so enthällt. Hatte oldmax ja schon beschrieben. dann passier an der platine solange nix,bis halt der befehl gekommen ist. Gruß Tobi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.