hallo allerseits,
ich habe eine andere, microprozessor unterstützte bake angefangen, verwendet wird der arduino mega 2560, das ganze sieht so aus:
als software wird dieser code verwendet:
im ersten teil wird das signal auf 36kHz moduliert, im zweiten kann die blinkfrequenz eingestellt werden, momentan sind es ca. 3Hz...Code:/* Code to pulse pin 3 with a modulated signal * Can be used to drive an IR LED to keep a TSOP IR reciever happy * This allows you to use a modulated reciever and a continious beam detector * By Mike Cook Nov 2011 - Released under the Open Source licence */ volatile byte pulse = 0; int i, j, x, y; ISR(TIMER2_COMPB_vect) { // Interrupt service routine to pulse the modulated pin 3 pulse++; if(pulse >= 8) { // change number for number of modulation cycles in a pulse pulse =0; TCCR2A ^= _BV(COM2B1); // toggle pin 3 enable, turning the pin on and off } } void setIrModOutput() { // sets pin 3 going at the IR modulation rate pinMode(3, OUTPUT); TCCR2A = _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); // Just enable output on Pin 3 and disable it on Pin 11 TCCR2B = _BV(WGM22) | _BV(CS22); OCR2A = 54; // defines the frequency 51 = 38.4 KHz, 54 = 36.2 KHz, 58 = 34 KHz, 62 = 32 KHz OCR2B = 27; // deines the duty cycle - Half the OCR2A value for 50% TCCR2B = TCCR2B & 0b00111000 | 0x2; // select a prescale value of 8:1 of the system clock } void setup() { setIrModOutput(); TIMSK2 = _BV(OCIE2B); // Output Compare Match B Interrupt Enable pinMode(13, OUTPUT); pinMode(12, OUTPUT); //pinMode(4, OUTPUT); //pinMode(5, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(13, HIGH); // Port 13 wird high geschaltet digitalWrite(12, HIGH); delay(165);//165-165=2hz, 215/165=3hz digitalWrite(13, LOW); // Port 13 wird low geschaltet digitalWrite(12, LOW); delay(165); /* analogWrite(4, HIGH); // Port 13 wird high geschaltet analogWrite(5, HIGH); delay(165); analogWrite(4, LOW); // Port 13 wird low geschaltet analogWrite(5, LOW); delay(165); */ }
der stromlaufplan sieht so aus:
die IR-diode ist jetzt (nach mehreren versuchen) ohne vorwiderstand aufgebaut, weil sie durch den blinkbetrieb nicht zu hoch belastet wird
der aufbau mit fritzing sieht so aus:
als spannungsquelle dienen 4 AA /2500mAh accus, angeschlossen an Vin und GND
nun wird das signal zwar verstärkt (und auch der empfang am RP6 klappt tadellos), allerdings ist die verstärkung nicht groß genug, die reichweite beträgt knapp 40cm. Ich möchte jetzt nicht unbedingt der arduino schrotten, deshalb die frage - wie kann ich das ändern? Eine reichweite von 4-5 metern wäre wünschenswert...
wäre für jeden tipp dankbar...







Zitieren

Lesezeichen