Hallo zusammen, ich habe vor eine Fernbedienung mit nur sechs Tasten für meinen Opa zu machen, da er sich bei der orginalen Fernbedienung mit den ganzen Tasten immer verdrückt. Soweit funktioniert die Elektronik auf einem Arduino auch. (Programm im Anhang) Nun möchte ich dieses Projekt direkt auf einen Mikrocontroller "umbauen". Davon erhoffe ich mir Platzersparnis und weniger Stromverbrauch. Außerdem möchte ich da auch gleich noch etwas neues lernen. (Wie man an den Fragen bestimmt merkt 😉) Welchen Mikrocontroller verwende ich da am besten? Ich brauche ja 6 Inputs für die Tasten und einen Output für eine IR Led. Kann ich das Programm (Anhang) dann einfach so verwenden? So ist er ja quasi die ganze Zeit aktiv und verbraucht Strom. Was ich so gelesen habe ist der Sleepmodus dafür auch nicht so gut geeignet, da der dann nicht gleich auf die Tastendrücke reagiert. Und wie versorge das ganze dann am besten mit Strom? Diese kleinen LED Fernbedienungen haben ja auch nur so 3V Knopfzellen, reicht das?
Ein ATmega328 lässt sich problemlos mit 3V versorgen. Beachte dass 2 Batterien aber nur in frischem Zustand diese Spannung liefern deswegen nimm lieber eine mehr. Im Sleep Modus kann man pin-change Interrupts benutzen um den Mikrocontroller durch Tastendruck aufzuwecken.
Dein Programm ist ja nicht gerade viel. Trotzdem wäre es interessant wieviel der Arduino-Bloat braucht. Also erst Mal noch schauen wieviel Programm/Data momentan gebraucht wird. Prinzipiell wird vermutlich fast jeder Controller gehen der genug Speicher und Pins hat. Ein Controller mit möglichst weiterem Eingangsspannungsbereich wäre gut um ihn direkt mit den Batterien betreiben zu können. Wahrscheinlich ein ATtiny oder so.
Jaja Bloat. Aber zu blind zu lesen was da steht, keine 4K Flash.
Entweder direkt den verwendeten Controller, oder einen aus der ATTiny 2 Series.
Jonas W. schrieb: > Welchen Mikrocontroller verwende ich da am besten? Ich würde dafür auch einen der „neuen“ ATtiny 0-/1-/2-series nehmen, sogar ein ATtiny402 mit 5 I/O-Pins (UPDI mal ausgenommen) würde den Job schon machen; die sechs Tasten kann man über ein geeignetes Widerstandsnetz an einen Pin anschließen und über den AD-Wandler auswerten. Jonas W. schrieb: > Und wie versorge das ganze dann am besten mit Strom? Diese kleinen LED > Fernbedienungen haben ja auch nur so 3V Knopfzellen, reicht das? Am besten (langlebigsten und günstigsten) wären drei AA- oder AAA-Zellen in Reihe. 3-V-Lithiumzellen würde ich persönlich nicht nehmen, da weniger Kapazität und relativ teuer.
:
Bearbeitet durch User
Jonas W. schrieb: > Nun möchte ich dieses Projekt direkt auf einen Mikrocontroller > "umbauen". Davon erhoffe ich mir Platzersparnis und weniger > Stromverbrauch. Außerdem möchte ich da auch gleich noch etwas neues > lernen. (Wie man an den Fragen bestimmt merkt 😉) Dein Vorhaben in allen Ehren, aber besorge deinem Opa doch erst einmal eine verfügbare Lösung. Du kannst ja parallel an deinem Projekt weiterarbeiten, und schauen wie weit du kommst. Ich habe für meine Mutter die verlinkte Fernbedienung bestellt. Hat 6 Tasten, die sich einfach erfühlen lassen (auch bei Dunkelheit), und jede Taste kann eine beliebige Funktion von der Originalfernbedienung lernen. https://www.amazon.de/311402-orange/dp/B00778E5BS
Jonas W. schrieb: > Kann ich das Programm (Anhang) dann einfach so verwenden? So ist er ja > quasi die ganze Zeit aktiv und verbraucht Strom. Was ich so gelesen habe > ist der Sleepmodus dafür auch nicht so gut geeignet, da der dann nicht > gleich auf die Tastendrücke reagiert. power-saving techniques for the Atmega328P processor: http://www.gammon.com.au/power
Bei der Wahl der Batterien ist auch wichtig wie weit die FB reichen soll. Für eine gute Reichweite werden die LED mit höherem Strom betrieben, gerne bis 100 mA. Das schaffen die CR2032 nicht. Die sind oft in den flachen China FB drin, mit denen muss man schon sehr genau zielen. Bei den ‚guten alten‘ reicht die Reflektion von Wänden. Von daher würde ich auch die AA einsetzen. Und auch Sleep verwenden, das wacht schon schnell genug auf. Bei Zimmertemperatur wird der RC Oszi reichen, sonst einen Resonater nehmen, die sind afaik schneller am Start.
Beitrag #7610505 wurde von einem Moderator gelöscht.
Beitrag #7610512 wurde von einem Moderator gelöscht.
Soooo, jetzt bitte alle mal die Füße hoch heben, das Niveau will durch!
Beitrag #7610546 wurde von einem Moderator gelöscht.
Denkt dran, dass nicht jede Bibliothek auf jedenlm ATtiny lauffähig ist. Wenn er sie auf einem Arduino Uno oder Nano erfolgreich benutzt hat, dann würde ich beim dort verwendeten Mikrocontroller bleiben.
Beitrag #7610561 wurde von einem Moderator gelöscht.
Jonas W. schrieb: > Welchen Mikrocontroller verwende ich da am besten? I ATmega328 ? Du musst ihn nur von einem Arduino Uno Board mit DIP28 Sockel runterziehen und kannst ihn in deiner eigenen Schaltung benutzen. Es ware aber klug, das Programm bis zum nächsten Tastendruck per PinChange Interrupt in sleep zu schicken. Jonas W. schrieb: > Diese kleinen LED Fernbedienungen haben ja auch nur so 3V Knopfzellen, > reicht das? Knopfzellen haben 1.5V nur frisch aus dem Laden, während der Benutzung fällt die Spannung auf 0.9V. Mit 1.8V lauft der ATmega328 nicht mehr mit Quartz. 3 Knopfzellen wären besser.
Jonas W. schrieb: > Welchen Mikrocontroller verwende ich da am besten? Ich brauche ja 6 > Inputs für die Tasten und einen Output für eine IR Led. Nein. 6 Tasten kann man problemlos(*) mit 5 Pins abfragen. Dazu noch ein Pin für den IR-Out. (*) theoretisch sogar mit noch weniger, aber da es gerade für eine FB äußerst sinnvoll ist, auf Tastendruck aufwachen zu können, ist eine stinknormale Tastenmatrix hier die beste Lösung. Denn die kann man so konfigurieren, das jede Taste auch in der Lage ist, die FB aufwachen zu lassen. Damit kommen so ziemlich alle µC in Frage, die acht Beine haben. Ich würde das mit einem Tiny13 machen, du brauchst vermutlich mindestens einen Tiny45 oder sogar einen Tiny85. > Kann ich das Programm (Anhang) dann einfach so verwenden? Nein, das muß natürlich recht erheblich umgestrickt werden, wenn eine sinnvolle FB rauskommen soll.
Michael B. schrieb: > Knopfzellen haben 1.5V nur frisch aus dem Laden, während der Benutzung > fällt die Spannung auf 0.9V. > Mit 1.8V lauft der ATmega328 nicht mehr mit Quartz. 3 Knopfzellen wären > besser. Er redet von einer CR2032 oder 2450. Auf den externen Quartz kannst du verzichten. Ist aber eh alles irrelevant, weil der Strom nicht genug ist für eine IR LED.
J. S. schrieb im Beitrag #7610561: > ohne dumme Beleidigungen kannst du wohl nicht antworten? Sprichst du im > Real Life auch so mit deinen Mitmenschen? Nur wenn mich andere Menschen zuerst beleidigen. Dann, ja spreche ich auch im richtigen Leben so. Fass dir also auch mal an die eigene Nase ob man Leute gleich als blind anpöbeln muss. Steve van de Grens schrieb: > Denkt dran, dass nicht jede Bibliothek auf jedenlm ATtiny lauffähig ist. Ja, auf das wollte ich raus. Ich denke dass es die hier ist: https://bengtmartensson.github.io/Arduino-IRremote/ Da stehen dann ja die unterstützen Controller. J. S. schrieb im Beitrag #7610561: > Aber es erst mal behaupten, warum? Bloat ist für mich alles, was mehr braucht als man benötigt. Der TO benötigt augenscheinlich kein RC6, Panasonic, Samsung usw. Also ist es erst Mal deutlich mehr als er benötigt, oder?
N. M. schrieb: > Also ist es > erst Mal deutlich mehr als er benötigt, oder? Nein, bei wenig Programmiererfahrung ist es mehr sich erst in diese Protokolle und dann noch in die Umsetzung einzulesen. Auch Zeit fürs Hobby ist Geld. Meinetwegen darf die Lib noch viel mehr können, der Linker hat ja offensichtlich das nicht benötigte rausgeworfen. Und wenn noch andere Geräte bedient werden sollen ist der Code dafür schon da. Für mich ist eine Lib gut wenn sie universell ist, nicht wenn ich für jedes IR/RF Protokoll gleich wieder eine andere brauche.
Ich habe vor einigen Monaten mal genau das selbe versucht und bin gescheitert. Die IRremote.h braucht 16Mhz und damit fallen auch die stabilen 5V an. Das konnte ich bei mir mit einen step up Converter 7805 Elko aber klären. Was ich nicht klären konnte war das die IR Diode keine sauberen Signale sendete, Egal mit welchen Transistor oder vorwiderstand. Es kahm mir auch auf dem Oszilloskop so vor als ob der Atmega 8 und 328P ( hab beide versucht) zu instabile schaltflanken haben. Was dazu führte das man sehr oft eine taste drucken musste bis es überhaupt mal erkannt wurde. Von den alle 2 Tage Akku aufladen mal abgesehen, verwarf ich den Aufbau an diesen punkt wieder. Wünsche dir aber gutes gelingen und hoffe das du es besser kannst. Ein paar Bilder von deinen fertigen "Gebastel wären schön" Schönen Abend noch.
Loco M. schrieb: > Ich habe für meine Mutter die verlinkte Fernbedienung bestellt. Hat 6 > Tasten, die sich einfach erfühlen lassen sowas ähnliches bestellten wir auch für unsere Oma, sehr hilfreich anstatt immer wieder die Sender neu einzustellen.
Michael B. schrieb: >> Welchen Mikrocontroller verwende ich da am besten? I > ATmega328 ? > Du musst ihn nur von einem Arduino Uno Board mit DIP28 Sockel > runterziehen und kannst ihn in deiner eigenen Schaltung benutzen. Also einen originalen Uno kaufen und dann im eigenen Aufbau noch zumindest den Quarz an den AT328 bauen. 16MHz, die er unterhalb 5 Volt nicht garantieren mag. Da nehme ich doch einen ProMini-Clone mit 8 MHz und löte Spannungsregler und LED runter. Zum Programmieren per USB brauche ich noch einen CH340-Adapter für 1,50 Dollar, das ist für mich die billigere Lösung. > Es ware aber klug, das Programm bis zum nächsten Tastendruck per > PinChange Interrupt in sleep zu schicken. Das ist unvermeidbar, wenn die Schaltung nicht täglich am Ladegerät stecken soll. Ist überschaubar, dafür finden sich fertige Beispiele samt .lib.
Braucht keine 16 MHz, 8 reichen auch: - https://www.mikrocontroller.net/articles/IRMP - https://www.mikrocontroller.net/articles/IRSND - http://www.mikrocontroller.net/articles/DIY_Lernf%C3%A4hige_Fernbedienung_mit_IRMP
:
Bearbeitet durch Moderator
N. M. schrieb: > Bloat ist für mich alles, was mehr braucht als man benötigt. > Der TO benötigt augenscheinlich kein RC6, Panasonic, Samsung usw. Der Sinn von C++ Bibliotheken besteht darin, nützliche wiederverwendbare Funktionen zu bündeln. Eine Bibliothek ist per Definition eine Sammlung. Bei ihrer Benutzung wird nur das verwendet, was das jeweilige Programm braucht. Also kein Bloat. Sieht man auch an der Größe des resultierenden Binaries. Benutzt du MS Office (oder ein ähnliches Produkt)? Benutzt du den Adobe Reader? Das ist Bloat, wen du es so nennen willst.
Ob S. schrieb: > Nein. 6 Tasten kann man problemlos(*) mit 5 Pins abfragen. Dazu noch ein > Pin für den IR-Out. Und irgendwie noch den Programmieradapter dran fummeln. Ich kann die sportliche Herausforderung dahinter nachvollziehen, aber das ist nicht für einen Anfänger. Diese unnötige Komplexität muss man sich nicht antun. > Ich würde das mit einem Tiny13 machen, In den passt sein Programm jetzt schon nicht rein.
DAVID B. schrieb: > Die IRremote.h braucht 16Mhz und damit fallen auch die stabilen 5V an. Auszug aus https://github.com/Arduino-IRremote/Arduino-IRremote: "For sending, the default software generated PWM has problems on AVR running with 8 MHz. The PWM frequency is around 30 instead of 38 kHz and RC6 is not reliable." Ein bisschen mehr als 8 MHz sind bei 3,6 - 4,5 Volt kein Problem. Es müssen ja nicht gleich 16 MHz sein. Wobei das (obwohl außerhalb der Spec) mit hoher Wahrscheinlichkeit auch noch gehen würde.
Falls es den TO interessiert, hier meine Umsetzung einer OK-TV Fernbedienung mit weniger Tasten als die originale. (NEC Protokoll) µC ist ein ATTiny24 mit 8Mhz interner RC-Oszillator. Der Controller liegt normalerweise im Power-Down und wird per PC-INT bei Tastendruck geweckt. Die Versorgung macht eine Li-Ion Zelle aus einem Einweg-Verdampfer, hält bisher 4 Monate. Der Quellcode ist in Assembler geschrieben, ich kann leider nichts anderes.
Steve van de Grens schrieb: > DAVID B. schrieb: >> Die IRremote.h braucht 16Mhz und damit fallen auch die stabilen 5V an. > > Auszug aus https://github.com/Arduino-IRremote/Arduino-IRremote: > "For sending, the default software generated PWM has problems on AVR > running with 8 MHz. The PWM frequency is around 30 instead of 38 kHz and > RC6 is not reliable." > Ein bisschen mehr als 8 MHz sind bei 3,6 - 4,5 Volt kein Problem. Es > müssen ja nicht gleich 16 MHz sein. Wobei das (obwohl außerhalb der > Spec) mit hoher Wahrscheinlichkeit auch noch gehen würde. Sorry, dann ist die Bibliothek Schrott. Wieso Software PWM? Was ist das denn für ein Scheiß?
Keks F. schrieb: >> "For sending, the default software generated PWM has problems on AVR >> running with 8 MHz. The PWM frequency is around 30 instead of 38 kHz and >> RC6 is not reliable." > Sorry, dann ist die Bibliothek Schrott. Wieso Software PWM? Was ist das > denn für ein Scheiß? Ja, das habe ich mich auch gefragt. Einfach den Output-Pin per Timer toggeln reicht, PWM braucht man nicht, und die 38 kHz kann man auch bei 8 MHz mit 0,2 % Fehler erzeugen.
Michael B. schrieb: > Mit 1.8V lauft der ATmega328 nicht mehr mit Quartz. Lt. Datenblatt bei 1,8V sogar bis 4MHz.
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.