Forum: Mikrocontroller und Digitale Elektronik Infararot Sender für zwei Signale


von Steffen (Gast)


Lesenswert?

Hallo Leute,

Ich muss einen kleinen Infrarot Sender bauen. Dieser soll das betätigen 
von zwei Tastern übertragen können.
Als Empfänger fungiert ein VS1838B Infrarot Empfänger an einem Arduino 
der die Signale dann verarbeitet. Diesen habe ich bereits fertig.

Jetzt zu meinen Fragen:

1. Eignet sich für die Erzeugung des Signals ein ATTiny, der Sender soll 
ja ziemlich klein und Energiesparend werden. Kann der das 38kHz Signal 
erzeugen und dann auf zwei verschiedene Weisen modulieren?

2. Kennt jemand ein ähnliches Projekt von dem ein Schaltplan existiert 
und könnte der uC zusammen mit einer IR Diode und einer RGB LED an einer 
Knopfzelle betrieben werden.

3. Wenn ich das ganze auf eine Lochrasterplatine aufbaue wird das ganze 
ja wahrscheinlich recht groß oder? Müsste man um so etwas einigermaßen 
handlich verwirklichen zu können sich selber eine Platine herstellen und 
glaubt ihr das irgendwie machbar für einen Laien?

Ich bedanke mich schonmal für jede Antwort.

von Steffen (Gast)


Lesenswert?

Noch kurz als Ergänzung, die Größe des Sendergehäuses sollte in etwa der 
eines Autoschlüssels ähneln. Und bezüglich des Stromverbrauches soll 
dieser, erstmal zu Testzwecken, insgesamt etwa 5min und in dieser Zeit 
auch die LED leuchten.

Der Empfänger arbeitet übrigens momentan mit der IRremote Bibliothek. 
Mit dieser ist es ja recht simpel Signale zu empfangen und 
weiterzuverarbeiten. Das ganze ist auch rein zu testzwecken, es ist also 
völlig egal wie das Signal erzeugt wird, Hauptsache es funktionier 
irgendwie.

von c-hater (Gast)


Lesenswert?

Steffen schrieb:

> 1. Eignet sich für die Erzeugung des Signals ein ATTiny, der Sender soll
> ja ziemlich klein und Energiesparend werden. Kann der das 38kHz Signal
> erzeugen und dann auf zwei verschiedene Weisen modulieren?

Ja klar.

> 2. Kennt jemand ein ähnliches Projekt von dem ein Schaltplan existiert
> und könnte der uC zusammen mit einer IR Diode und einer RGB LED an einer
> Knopfzelle betrieben werden.

Spezifiziere: "Knopfzelle"! Es gibt da durchaus verschiedene. Aber eine 
häufig verwendete "Knopfzelle" wäre z.B. eine CR2032. Ja damit geht das 
problemlos.

> 3. Wenn ich das ganze auf eine Lochrasterplatine aufbaue wird das ganze
> ja wahrscheinlich recht groß oder?

Nö, selbst auf Lochraster und mit DIL-Tiny und 6 Tasten wird das so 
klein, dass es kaum noch bedienbar ist (das habe ich selber schonmal 
gebaut, allerdings auf Streifenraster, nicht Lochraster).

Aber bei nur zwei Tastern braucht man wohl überhaupt garkeine Platine, 
nur ein brauchbares Gehäuse. Mit etwas handwerklichem Geschick kann man 
das bissel Elektronik darin in freier Verdrahtung versenken und ist 
dabei wahrscheinlich sogar noch wesentlich flexibler als mit einer 
aufwendig hergestellten SMD-Platine.

> glaubt ihr das irgendwie machbar für einen Laien?

Das Problem wird eher die Software sein, vor allem der Teil des Werks, 
der sich damit beschäftigt, möglichst wenig Energie zu verbrauchen...

Und nein, das ist nix, was ein Laie wirklich in Griff bekommen kann...

von Steffen (Gast)


Lesenswert?

Erstmal vielen Dank für deine Ausführliche Antwort.

c-hater schrieb:
>> 1. Eignet sich für die Erzeugung des Signals ein ATTiny, der Sender soll
>> ja ziemlich klein und Energiesparend werden. Kann der das 38kHz Signal
>> erzeugen und dann auf zwei verschiedene Weisen modulieren?
>
> Ja klar.

Welche Variante würde sich den deiner Meinung da anbieten, ich blicke 
bei den ganzen Angeboten noch nicht entlang, ich bräuchte ja zwei 
Eingänge und drei Ausgänge wenn ich es hardwaremäßig so einfach wie 
möglich halte.

c-hater schrieb:
> Aber eine häufig verwendete "Knopfzelle" wäre z.B. eine CR2032. Ja damit
> geht das problemlos.

Ja genau so eine wollte ich verwenden.  Benötige ich den von der 
Hardware noch mehr abgesehen von:
-Batterie
-Mikrocontroller
-IR Diode mit Vorwiderstand
-RGB LED mit Vorwiderständen
-zwei Taster

Habe ich noch etwas wichtiges vergessen?

c-hater schrieb:
> Das Problem wird eher die Software sein, vor allem der Teil des Werks,
> der sich damit beschäftigt, möglichst wenig Energie zu verbrauchen...
>
> Und nein, das ist nix, was ein Laie wirklich in Griff bekommen kann...

Ok das hört sich natürlich erstmal nicht so gut an. Aber bezogen auf die 
Energieverwaltung, ich brauche das ganze nur für eine Präsentation und 
da läuft das ganze ja nicht wirklich lange. Ist das trotzdem so ein 
großer Fallstrick?

Und noch wegen der Software, wie komplex ist es das Signal zu erzeugen? 
Das würde ich mir momentan als den schwierigsten Part vorstellen.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Und nein, das ist nix, was ein Laie wirklich in Griff bekommen kann...

Doch das halte ich durchaus für machbar. Das Arduino Framework macht es 
einem relativ leicht. Wenn man den µC noch nie programmiert hat, wird es 
aber schon wesentlich mehr Zeit erfordern, als ein Wochenende.

Für den Anfang ist das ein überschaubares kleines Projekt. Ich würde das 
erst auf einem fertigen Arduino Nano Board programmieren, dann auf einen 
losen ATtiny85 übertragen. Der passt dann in das Gehäuse und nimmt auch 
nicht zu viel Strom auf, wenn er schläft.

> Und noch wegen der Software, wie komplex ist es das Signal zu erzeugen?

Das hängt sehr stark von deiner Erfahrung in der Programmierung des 
jeweiligen Mikrocontrollers ab. Ein Profi tippt das vermutlich in einer 
Stunde runter. Ich bräuchte dafür ein Wochenende. Wie lange du brauchst 
- keine Ahnung. Vielleicht musst du erst lernen, deinen PC zu 
administrieren, um die Entwicklungstools zu installieren. Man weiß es 
nicht.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Doch das halte ich durchaus für machbar.

Du hast den entscheidenden Punkt nicht mit zitiert, der war:

> vor allem der Teil des Werks,
> der sich damit beschäftigt, möglichst wenig Energie zu verbrauchen...

Und da kackt die Arduino-Code-Zusammenkleberei halt ganz fürchterlich 
ab...

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Und da kackt die Arduino-Code-Zusammenkleberei halt ganz fürchterlich
> ab...

Quatsch. Arduino kann das out of the Box.

https://www.arduino.cc/en/Reference/LowPowerDeepSleep

von c-hater (Gast)


Lesenswert?

Steffen schrieb:

> -RGB LED mit Vorwiderständen

Das ist einer der sicherste Wege, eine langlebige FB per Design 
vollkommen unmöglich zu machen...

Darüber solltest du nochmal ernsthaft nachdenken...

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Quatsch. Arduino kann das out of the Box.

Du bist definitiv ein Vollidiot, der nur in den Kategorien von dem 
denken kann, was das Arduino-Gedöhns liefert. Das geht viel, viel 
besser. Die eigentliche Tiefschlafzeit natürlich nicht, aber die Zeit 
dazwischen, also die aktiven Zeiten kann man um Größenordnungen 
stromsparender umsetzen als mit diesem unsäglichen Arduino-Gekröse...

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
>> -RGB LED mit Vorwiderständen
> Das ist einer der sicherste Wege, eine langlebige FB per Design
> vollkommen unmöglich zu machen...
> Darüber solltest du nochmal ernsthaft nachdenken...

Hat er doch, ihm reichen 5 Minuten

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Du bist definitiv ein Vollidiot, der nur in den Kategorien von dem
> denken kann, was das Arduino-Gedöhns liefert. Das geht viel, viel
> besser.

Das ist sehr falsch und wieder unangemessen. Möchtest du gesperrt 
werden?

> Das geht viel, viel besser... als mit diesem unsäglichen
> Arduino-Gekröse.

Wie gesagt, 5 Minuten. In was für einer Blase schwebst du?

von Joachim S. (oyo)


Lesenswert?

Steffen schrieb:
> Und noch wegen der Software, wie komplex ist es das Signal zu erzeugen?
> Das würde ich mir momentan als den schwierigsten Part vorstellen.

Eigentlich alle Infrarot-Signale, wie sie von üblichen 
IR-Fernbedienungen gesendet werden, kann man durch ein Array von 
Integer-Werten repräsentieren, z.B.:
[400,1200,1200,400,400,1200,...]
Das steht dann sinngemäss für:
400µs senden
dann 1200µs nicht senden (IR-LED ausgeschaltet)
dann 1200µs senden
dann 400µs nicht senden
dann 400µs senden
dann 1200µs nicht senden
...

Da es bei Dir ja nur um zwei Signale geht, ist es nicht nötig, das 
komplette IR-Protokoll (z.B. "NEC") zu implementieren, um jeden 
beliebigen Code generieren zu können, der mit dem Protokoll möglich ist. 
Es genügt, für die beiden Tasten/Signale einfach zwei (am PC 
vorberechnete) Arrays in Deinen Programmcode einzufügen. Dann musst Du 
im Falle eines Tastendrucks einfach nur das entsprechende Array stur von 
Anfang bis Ende abarbeiten (und das Ganze evtl. 1-2 mal wiederholen, 
also das gleiche Signal mehrfach senden, um auf Nummer sicher zu gehen).

Das grösste und einzige Problem ist eigentlich, dass das obige Signal 
auf ein Trägersignal im Bereich von 36-40kHz (je nach IR-Protokoll) 
aufmoduliert werden muss. Das bedeutet: Da, wo ich oben z.B. "400µs 
senden" geschrieben habe, darf die IR-LED in diesem Zeitraum von 400µs 
nicht einfach durchgängig eingeschaltet sein, sondern muss 
36.000-40.000mal pro Sekunde an- und ausgeschaltet werden. (In den 
"nicht senden"-Phasen ist die LED einfach komplett ausgeschaltet)

von Stefan F. (Gast)


Lesenswert?

Joachim S. schrieb:
> Das grösste und einzige Problem ist eigentlich, dass das obige Signal
> auf ein Trägersignal im Bereich von 36-40kHz (je nach IR-Protokoll)
> aufmoduliert werden muss.

Das würde ich mit einem Timer machen.

Dazu gibt es schon fertige Libraries, zum Beispiel 
https://www.arduinolibraries.info/libraries/i-rremote

von Chr. M. (snowfly)


Lesenswert?

@TO:
Wenn du unter TV-b-gone suchst wirst du alles finden was du brauchst.

von Joachim S. (oyo)


Lesenswert?

Stefan ⛄ F. schrieb:

> Dazu gibt es schon fertige Libraries, zum Beispiel
> https://www.arduinolibraries.info/libraries/i-rremote

Hast Recht, das ist wohl die einfachste Lösung.

von Steffen (Gast)


Lesenswert?

Was denkt ihr den welchen Stellenwert der Stromverbrauch bei der kurzen 
Nutzungsdauer hat? Und wäre es nicht möglich den uC erst durch betätigen 
von einem der Taster unter Spannung zu setzten. Möglicherweise bringt 
das garnicht so viel wenn ich es hinbekommen sollte ihn zwischendurch 
schlafen zu legen.

Bei dem Empfänger habe ich ja auf die IRremote Bibliothek 
zurückgegriffen. Diese unterstützt eigentlich auch den Attiny. Würdet 
ihr beim Sender auch auf diese zurückgreifen oder frisst das mit den 
ganzen Abhängigkeiten vielleicht zu viel Strom?

c-hater schrieb:
> Steffen schrieb:
>
> -RGB LED mit Vorwiderständen
>
> Das ist einer der sicherste Wege, eine langlebige FB per Design
> vollkommen unmöglich zu machen...
>
> Darüber solltest du nochmal ernsthaft nachdenken...

Das ganze soll keine langlebige Sache sein sondern insgesamt vielleicht 
5min leuchten. Der ganze Sender ist nur für eine Präsentation und das 
Hauptaugenmerk wird auf den Gehäuse liegen.

von Stefan F. (Gast)


Lesenswert?

Steffen schrieb:
> Was denkt ihr den welchen Stellenwert der Stromverbrauch bei der kurzen
> Nutzungsdauer hat?

Das kannst du dir doch selber denken. Eine LED nimmt ca 10mA auf und ein 
Mikrocontroller ebenfalls. Wenn es sein muss, kann man das weiter 
reduzieren.

ergleich das mit der Kapazität der Knopfzelle. So eine CR2032 hat z.B. 
ungefähr 200 mAH. Damit kann eine LED und ein AVR Mikrocontroller locker 
flockig 5 Stunden lang Vollgas geben.

Mit Stromspar-Maßnahmen (wie LED und µC bei Nichtgebrauch abschalten) 
kann das Ding problemlos 5 Jahre lang in der Schublade liegen und 
einsatzbereit sein. Arduino und diese IR Library hindern dich nicht 
daran.

von Steffen (Gast)


Lesenswert?

Ich habe ja oben die Bauteile aufgelistet so wie ich es mir gerade 
vorstelle. Was denkt ihr habe ich noch etwas wichtiges vergessen?
Den Attiny sollte ich doch eigentlich direkt an der CR2032 betreiben 
können oder? Und die Dioden versorge ich ja dann über den Attiny und die 
Taster über die Batterie richtig?

von Stefan F. (Gast)


Lesenswert?

Steffen schrieb:
> Was denkt ihr habe ich noch etwas wichtiges vergessen?

Du hast nicht überprüft, mit wie viel Strom die IR LED betrieben werden 
muss, um die gewünschte Reichweite zu bekommen.

> Den Attiny sollte ich doch eigentlich direkt an der CR2032 betreiben
> können oder? Und die Dioden versorge ich ja dann über den Attiny und
> die Taster über die Batterie richtig?

Ja doch, wie viele Bestätigungen brauchst du noch?

Bilde Dir bloß nicht ein, das deine erste Schaltung auf Anhieb 
zufriedenstellend funktionieren wird. Du bist kein Profi, du wirst 
Experimente machen müssen.

Ich kann Dir nur erneut empfehlen, erstmal mit einem Arduino Nano zu 
begonnen. Wenn du Autofahren lernen willst, fängst du ja auch nicht 
einem Go-Cart Bausatz an, sondern mit einem fertigen Auto.

von Steffen (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast nicht überprüft, mit wie viel Strom die IR LED betrieben werden
> muss, um die gewünschte Reichweite zu bekommen.

Laut Datenblatt benötigt die IR LED 100mA, dies ist doch aber zu viel 
für den Attiny, nach meiner Recherche kann  der pro Port 20mA liefern. 
Jetzt denke ich muss ich wohl das ganze über einen Transistor erledigen. 
Ist für den Fall ein BC337 geeignet? Würde die LED dann über den 
Vorwiderstand auf diese 100mA begrenzen oder hat jemand Erfahrungen ob 
man den Strom noch weiter begrenzen kann?

Stefan ⛄ F. schrieb:
> Ich kann Dir nur erneut empfehlen, erstmal mit einem Arduino Nano zu
> begonnen.

Ich habe ja hier noch einen Uno liegen, auf dem Würde ich das erstmal 
probieren wollen um dann anschließend das auf den Attiny zu übertragen.

von Wolfgang (Gast)


Lesenswert?

Steffen schrieb:
> Laut Datenblatt benötigt die IR LED 100mA ...

Das Datenblatt der LED kann gar nicht wissen, wie empfindlich dein 
Detektor ist, wieviel Licht der braucht und welcher Anteil des von der 
IR LED ausgesendeten Lichtes bei ihm ankommt.

von Stefan F. (Gast)


Lesenswert?

Steffen schrieb:
> Laut Datenblatt benötigt die IR LED 100mA

Sie benötigt nicht 100 mA sondern sie verträgt maximal 100 mA. Die Volle 
Leistung kannst du nur mit Hilfe eines Transistors raus holen. Ich würde 
dann auch die Batterie mit einem Elko z.B. 200 µF unterstützt, damit die 
Spannung dabei einigermaßen stabil bleibt.

> Ich habe ja hier noch einen Uno liegen, auf dem Würde ich das erstmal
> probieren wollen um dann anschließend das auf den Attiny zu übertragen.

Auch gut

von Steffen (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Steffen schrieb:
>> Laut Datenblatt benötigt die IR LED 100mA
>
> Sie benötigt nicht 100 mA sondern sie verträgt maximal 100 mA. Die Volle
> Leistung kannst du nur mit Hilfe eines Transistors raus holen. Ich würde
> dann auch die Batterie mit einem Elko z.B. 200 µF unterstützt, damit die
> Spannung dabei einigermaßen stabil bleibt.

Auch gut, da habe ich das wohl falsch verstanden. Die Materialien werde 
ich jetzt besorgen und dann kann ich ja erstmal ein wenig mit den 
Vorwiderständen experimentieren welchen Strom ich dann benötige. Den 
Transistor werde ich vorsichtshalber gleich mit bestellen, kostet ja 
nicht so viel.

Verträgt den der ATtiny85 die 20mA die ich gelesen habe oder irre ich 
mich da gerade auch?

von Stefan F. (Gast)


Lesenswert?

Steffen schrieb:
> Verträgt den der ATtiny85 die 20mA

Ja

von Test (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Steffen schrieb:
>> Verträgt den der ATtiny85 die 20mA
>
> Ja

Und 3 Ausgänge parallel vertragen 3x20mA = 60mA so lange die max. Last 
für Vdd/GND-Pin nicht überschritten wird. Ist aber dirty dirty.

Gepulst mit entsprechenden Pausen kann man die LEDs mit einem vielfachen 
ihres max. angegebenen Nennstroms betreiben. Wo der break-even für 
stromsparen vs. Reichweite ist muss man ermitteln. Generell ist es ja 
vielleicht auf Grund der Anwendung nicht notwendig die LED voll zu 
bestromen?

Am sinnvollsten dürfte es sein den Mikrocontroller ab Knopfzelle zu 
betrieben (ohne Spannungsregler). 2xTaster mit je 2 unabh. Kontakten 
nehmen. Auf dem einen Kontakt jeweils Batterie-Mikrocontroller 
verbinden, auf dem anderen auf den Eingang des Mikrocontrollers. Je 
nachdem welchen Taster man drück wird in jedem Fall der uC bestromt und 
anhand des GPIOs kann man herausfinden welcher Taster gedrückt wurde.

Thema Arduino -> egal wie gut der Sleep-Mode ist, der Standby-Verbraucht 
des linearen Spannungsreglers auf dem Arduino-PCB dürfte weiter über 
Verbrauch eines tief schlafenden Mikrocontrollers liegen.

von Stefan F. (Gast)


Lesenswert?

Test schrieb:
> Thema Arduino -> egal wie gut der Sleep-Mode ist, der Standby-Verbraucht
> des linearen Spannungsreglers auf dem Arduino-PCB dürfte weiter über
> Verbrauch eines tief schlafenden Mikrocontrollers liegen.

Deswegen will er das am Ende ja auf einen ATtiny85 packen. Der hat nicht 
genug I/O Pins zum parallel-schalten.

von Christian S. (roehrenvorheizer)


Lesenswert?

> 0 Den Transistor werde ich vorsichtshalber gleich mit bestellen, kostet ja 
>nicht so viel.

Am besten gleich 100 Stück als Vorrat.

MfG

von Mario M. (thelonging)


Lesenswert?

Steffen schrieb:
> RGB LED an einer Knopfzelle

Ob die blaue LED dann leuchtet?

Steffen schrieb:
> wie komplex ist es das Signal zu erzeugen?

Für ne Demo würde ich mit delayMicroseconds() arbeiten. Q&D

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Habe hier mal kurz den Schaltplan erstellt falls da kurz einer drauf 
schauen mag. Falls das so nicht hinhaut würde ich noch einen Transistor 
vor die IR LED hängen. Die beiden LEDs sollen eigentlich eine RGB LED 
darstellen, bei der nutze ich allerdings nur die Anschlüsse für Rot und 
Grün.

von Stefan F. (Gast)


Lesenswert?

Achtung, es gibt grüne LEDs mit 2V und welche mit wesentlich mehr.

von Steffen (Gast)


Lesenswert?

Hallo,

kurzes Update zu dem Stand des Projektes.
Mittlerweile sind alle Teile angekommen und ich hatte das Wochenende 
Zeit ein wenig rum zu probieren.
Auf einem Nano läuft das ganze schon gut und nach anfänglichen 
Schwierigkeiten mit dem ansteuern des Empfängers klappt auch das jetzt. 
Der Empfänger ist jetzt ein einfacher LED-Streifen geworden der durch 
das NEC-Protokoll angesprochen wird.
Die Platine ist auch bereits zugesägt und sie bietet doch mehr Bauraum 
als ich anfangs vermutet habe. Nur die Befestigung der Knopfzelle ist 
ziemlich hingepfuscht da der mit bestellte Halter dann leider noch nicht 
rein gepasst hat.
Für Morgen steht dann die Übertragung des Programmes auf den Attiny an. 
Da möchte ich das Programm dann auch noch soweit ändern, dass er durch 
einen Tastendruck und einem interrupt aufgeweckt wird.
Wenn ich dann noch weitere fragen habe melde ich mich wieder.

Grüße

von Steffen (Gast)


Lesenswert?

Der Tiny funktioniert noch nicht so schön mit der IRremote libary. Ohne 
diese funktioniert schon einmal das auslesen der Taster und ansprechen 
der LED. Bei einsetzen der Befehle für die IR-Bibliothek funktioniert 
allerdings auch die LED nicht mehr richtig, sie leuchtet nur ganz kurz 
auf, übertragen tut die IR-Diode auch nicht den richtigen Code.

Hier der Code, dieser funktioniert auf einem Nano so wie er soll mit 
abgeänderten Pins.

[code]
#define PIN_LEDROT 3                       // Pin, an dem die rote LED 
angeschlossen ist.
#define PIN_LEDGRUEN 4                     // Pin, an dem die grüne LED 
angeschlossen ist.
#define PIN_BUTTONAUF 0 
// Pin, an dem der Taster angeschlossen ist.
#define PIN_BUTTONZU 2                     // Pin, an dem der Taster 
angeschlossen ist.
#include <IRremote.h>
IRsend irsend;

void setup() {
  pinMode(PIN_LEDROT, OUTPUT);               // Pin, an dem die LED 
angeschlossen ist, als Ausgang festlegen.
  pinMode(PIN_LEDGRUEN, OUTPUT);               // Pin, an dem die LED 
angeschlossen ist, als Ausgang festlegen.
  pinMode(PIN_BUTTONAUF, INPUT_PULLUP);      // Pin, an dem der Taster 
angeschlossen ist, als Eingang mit aktiviertem Pull-Up-Widerstand 
festlegen.
  pinMode(PIN_BUTTONZU, INPUT_PULLUP);      // Pin, an dem der Taster 
angeschlossen ist, als Eingang mit aktiviertem Pull-Up-Widerstand 
festlegen.
}

void loop() {
  // put your main code here, to run repeatedly:
if (digitalRead(PIN_BUTTONAUF) == LOW) {  // Wenn auf der 
Eingangsleitung des Tasters auf  LOW anliegt ...
    digitalWrite(PIN_LEDGRUEN, HIGH);          // LED anschalten,
//    for (int i = 0; i < 3; i++)
//    {
//    irsend.sendNEC(0xFF10EF, 32);         //  Sende Grün per IR
//    delay(40);
//    }
    delay(1000);
    digitalWrite(PIN_LEDGRUEN, LOW);          // LED ausschalten,
//     for (int i = 0; i < 3; i++)
//    {
//    irsend.sendNEC(0xFFD02F, 32);         //  Sende Weiß per IR
//    delay(40);
//    }
  }
  else if(digitalRead(PIN_BUTTONZU) == LOW) {  // Wenn auf der 
Eingangsleitung des Tasters zu LOW anliegt ...
    digitalWrite(PIN_LEDROT, HIGH);          // LED anschalten,
    for (int i = 0; i < 3; i++)
    {
    irsend.sendNEC(0xFF906F, 32);         //  Sende Rot per IR
    delay(40);
    }
    delay(1000);
    digitalWrite(PIN_LEDROT, LOW);          // LED ausschalten,
    for (int i = 0; i < 3; i++)
    {
    irsend.sendNEC(0xFFD02F, 32);         //  Sende Weiß per IR
    delay(40);
    }
  }
  else {}

}
[code]

Bei der Bibliothek ist angegeben, dass diese mit dem Attiny85 kompatibel 
sein soll. Dabei ist auch der Timer und der Pin fürs senden mit 
angegeben. Muss ich diese dann in der Libary ändern oder kann ich die so 
benutzen?

von äxl (Gast)


Lesenswert?

Was hast Du denn beim Compileren unter "werkzeuge" für einen Controller 
angegeben?
Viele Steuer-Register liegen beim Tiny ganz woanders, als beim 
Atmega32u4 und /oder beim Atmega328...

von äxl (Gast)


Lesenswert?

Ich frage mal aus eigenem interesse:
ich muss sowas eigneltich auch basteln. Panasonic Stereo-Anlage,Sky-Box 
und Philips LCD-TV.

Arduino-Code sieht ja witzig aus.
der Arduino Micro zB hat einen ATmega32u4.
Wie bekomme ich den Code für den Attiny85 compiliert und wie bring ich 
den code aus der "IDE" auf den Attiny? Bootloader ist ja keiner drauf.

Ich würde den auf mein STK500 stecken und das damit versuchen. Sollte ja 
gehen. muss ich nur noch herausfinden, wie ich der Arduino"IDE" erkläre, 
dass ich einen Attiny85 verwenden will. Auf welchem Board ist denn der 
verbaut? Gibt es ja sicher was von Adafruit zum an die Backe nähen (äh - 
Ärmel)

@Steffen
wie hast du das gemacht?

von Stefan F. (Gast)


Lesenswert?

äxl schrieb:
> der Arduino Micro zB hat einen ATmega32u4.

Was hat das mit deiner Frage zu tun?

Der ATtiny85 befindet sich auf dem Arduio Gemma Board. 
https://store.arduino.cc/arduino-gemma

Unabhängig davon kannst du in der Arduino IDE einstellen, nachdem du den 
Board-Manager entsprechend konfiguriert hast. Siehe 
https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829 
oder https://playground.boxtec.ch/doku.php/arduino/attiny

Eigentlich findet man haufenweise Anleitungen, wenn man nach "Attiny85 
Arduino" googelt oder das einfach mal auf der Webseite von Arduino.cc 
eingibt. Nächstes mal bitte erst selber suchen, dann ggf. Fragen.

von Steffen (Gast)


Lesenswert?

äxl schrieb:
> Was hast Du denn beim Compileren unter "werkzeuge" für einen Controller
> angegeben?

Ich habe den Attiny über einen Arduino Uno programmiert. Auf diesen habe 
ich das ArduinoISP Programm geladen. Beim ersten test Programm habe ich 
folgendes ausgewählt.

Board: Attiny 25/45/85
Prozessor: Attiny85
Clock: 1Mhz internal
Programmer: Arduino as ISP

Anschließend habe es auch mit verschiedenen Taktraten des Tinys versucht 
(1,8 und 16MHz). Dazu habe mit der geänderten Frequenz erst Bootloader 
brennen ausgewählt und anschließend das Programm drauf geladen.
Ein einfacher Blinksketch funktioniert auch mit der richtigen Frequenz. 
Jedoch leuchtet weder die normale LED ca. 1s noch übertragt die IR-LED 
etwas korrekt. Angesteuert wird sie aber, mit einem IR-Empfänger 
empfange ich  25AE7EE0 statt FF10EF.

von Steffen (Gast)


Lesenswert?

Wenn ich nur ein Signal in einer Schleife sende, hält er die Timings gar 
nicht mehr ein. Er sendet fast ununterbrochen trotz 5sec Delay zwischen 
den Burst.
Anscheinend bringt die Bibliothek den Kollegen etwas aus der Bahn.
Was mich auch etwas wundert ist, dass ich nicht finde für welche 
Taktfrequenz die Bibliothek beim Tiny ausgelegt ist vermutlich muss ich 
dort irgendwo eintragungen vornehmen damit es läuft.

von Steffen (Gast)


Lesenswert?

Ich habe nun eine andere Bibliothek explizit für den Tiny gefunden. 
Diese basiert auf der Irremote Bibliothek und ein Beispiel funktioniert 
schon einmal gut.
Nun muss ich noch testen wie es zusammen mit dem Rest meines kleinen 
Programmes funktioniert.

Hier der Link zur Bibliothek:
https://gist.github.com/SeeJayDee/caa9b5cc29246df44e45b8e7d1b1cdc5

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
Noch kein Account? Hier anmelden.