Ir-send mit Arduino MINI(LaserTag)

Hi, ich habe folgende Schaltung um meine Ir-Led für mein Laser Tag systemzu verstärken(https://dl.dropboxusercontent.com/u/12356188/Bildschirmfoto%202013-04-21%20um%2012.09.45.png), bzw. auf 38 kHz zu bringen. Mit dem Arduino Uno lief das top, und jetzt möchte ich aus Platzgründen auf einen MINI umsteigen. Gesagt-Getan. Leider dachte ich nicht daran dass man am Uno immer den pin 3 benutzen musste um ein Ir signal zu senden( so wie beim MEGA den pin9).

Meine Frage: Welchen Pin muss ich beim MINI verwenden bzw ist es überhaupt möglich auf diesen umzusteigen? Lg Jakob :)

Das mit Pin 3 ist bei der IRremote Library wenn das 38kHz Signal über einen Hardware Timer auf dem AVR erzeugt wird.

Der NE555 macht das ja extern. Da bist du nicht auf bestimmte Pins angewiesen. Der Arduino wird da ja sogar dazu verwenden das IC mit Strom zu versorgen und bei Low fehlt dann einfach die Spannung.

Ansonsten ist auf einem Mini genauso ein Atmega328 verbaut wie auf dem UNO. Es ist der Micro der einen anderen Prozessor hat.

Ok hi nochmal...(: Habe meine Schaltung nun an pwm 11 meines Arduino pro mini gehängt. Welche Definitionen muss ich nun in IRremoteInt verändern?

Danke schonmal! Lg jakob

Meinst du nur den linken Teil mit dem Transistor? Den NE555 brauchst du jedenfalls nicht.

Der Mini hat den gleichen Prozessor wie der UNO, d.h. den Atmega328. Daher gilt der #else Teil am Ende der Liste:

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif

Du hast die Wahl zwischen Pin 3 und 9, je nachdem welche Zeile nicht auskommentiert ist

Danke für die schnelle Antwort!!! Dass mit dem Prozessor war mir klar, jedoch leider nicht wo ich nun definitiv("define pin11") ausbessern muss. Wenn ich nun z.B. mit dem IRsend sketch der library senden möchte, was muss ich in IRremoteInt verändern? :)

Lg

Pin 11 geht nicht. Im Moment ist es auf Pin 3. Wenn du "#define IR_USE_TIMER2" auskommentierst und dafür die Kommentar-Striche bei "//#define IR_USE_TIMER1" wegmachst wird Pin 9 verwendet.

Es ist mir nicht möglich eine library umzudefinieren? Tut mir leid aber das verstehe ich nicht. Meine 38kHz Modulation läuft wie beschrieben ja so und so über meinen 555-Timer.

Warum kann ich denn nicht einfach den OUTPUT Pin verändern?
Lg

Weil, das mit Hardware Timern läuft und deren Ausgangs-Pins fest sind.

Wenn du die 38kHz Modulation mit einem NE555 machst, was willst du dann noch mit der Library? Gerade bei einem Laser-Tag System. Der Sinn der Library (jedenfalls bei dieser Anwendung) ist es, das 38kHz Signal auf dem AVR zu erzeugen.

So wie du es hast kann du in der Tat beliebige Pins verwenden :) Das geht dann aber ganz normal mit digitalWrite() und pinMode() Aber dann brauchst du keine Library. Ich dachte du verwendest du weil du am Anfang geschrieben hast, dass du auf Pins 3 oder 9 (auf dem Mega) beschränkt bist. Das gilt hier nicht.

Ok tut mir leid ich dachte es ist nicht möglich ein Ir-Signal ohne die Library zu senden :astonished:

Möchte gar nicht wissen was ihr jetzt denkt...naja kann mir vlt jemand einen denkanstoß geben bitte? (: Lg

Ist schon ok :)

Oder willst du Daten hin und her-senden und nicht nur einfach HIGH/LOW, bzw. AN/AUS Signale wie bei einer Lichtschranke? z.B. um den Sender zu identifizieren? Dann kann es praktisch sein auf dem NE555 zu verzichten (den Transistor kannst du lassen um Strom für die LED zu haben), und statt dessen die Library zu verwenden. Dann bist du halt mit den Pins festgelegt.

Also: Anfangs habe ich die Schaltung(ink. 555) an pin 3 gehabt. Mit der Library habe ich dann Codes einer fernbedienung zwischen den Arduinos hin und hergesendet. Habe ein paar Codes ausgelesen Bsp: Power and der Fernbedienung war z.B 0xa90b9. Diesen Code habe ich dann player 1 zugewiesen...usw. Kurz gesagt, ja ich würde gerne jedem arduino einen eigenen code zuweisen können(bzw. Daten übertragen können)

Danke für die Hilfe Lg jakob

Dann lass den NE555 weg, geh vom Arduino direkt auf den Transistor und verwende die Library um Daten zu senden.

Ein 10k Pulldown zwischen Gate und GND schadet aber nichts: http://i.stack.imgur.com/3tJUU.png R2 dann entsprechend niedriger. 100mA und mehr Pulsstrom sind da je nach LED locker möglich.

Und jetzt theoretisch ohne die Library? (: Irgendwelche internetseiten etc?

Dann wird es schwieriger komplexere Daten zu senden, da du die einzelnen Bits per Hand senden und empfangen musst. Ist aber machbar.

Man könnte das Ding einfach an die serielle Schnittstelle hängen. Dann musst du es aber beim Hochladen eines Programms eventuell abhängen.

Hier wird auch gezeigt wie man die ganze Timer Geschichte selbst macht (d.h. der Arduino erzeugt die 38kHz selbst, aber ohne Library): http://www.meinduino.de/arduino-howto/2014/09/19/serielleuebertragung2.html http://www.meinduino.de/arduino-howto/2014/09/18/serielleuebertragung1.html

Mit dem Code kann man auf einem beliebigen Pin senden und mit der seriellen Schnittstelle empfangen. Dann kann man Zahlen oder Strings hin-und-her schicken :) Das wäre vielleicht was für dich.