Hey,
ich versuche gerade den TV-B-Gone nachzubauen. Allerdings funktioniert
das bei mir nicht. Getestet habe ich bis jetzt zwei Fernseher von
Herstellern, bei denen es laut Webseite funktionieren sollte.
Source-Code und Schaltplan
-> https://learn.adafruit.com/tv-b-gone-kit/download
Verwendeter uC: atmega32 16PU(16MHZ) (das "orginal" arbeitet mit
ATTINY85V-10-PU, 8MHZ)
Schaltplan verändert:
Stromversorgung: 9V-Block-Batterie -> Spannungsregler(78S05)
Benutze nur eine IR-LED anstatt vier, die direkt am uC-Pin angeschlossen
ist(anstatt über eine Transistor).
(OC0-PINB3)----Widerstand---IR-LED----VCC
Widerstand: 72 Ohm
IR-LED: 'oringal': Wellenlänge = 940nm
IR-LED: 'meine': SEP8705, Wellenlänge = 880nm(sollte laut
Internet-Recherche nicht viel ausmachen), U: min:2,7V - max:7,8V;
Imax=50mA
Wenn ich durch meine Kamera die IR-LED anschaue, sehe ich diese auch
blinken.
Code verändert:
- EU-Code: hardcodiert (region = EU;)
- Die 'normale' LED weggelassen(sowohl im Code, als auch bei der
Schaltung)
- delayfunktion geändert, da 16MHZ(anstatt 8MHZ wie im
'orinalcode').("orginalcode" ist auskommeniert, und die delay-Funktion
von gcc-avr benutzt). Leider habe ich kein Oszi um den Timer zu
überprüfen.
1 | void delay_ten_us(uint16_t us)
|
2 | {
|
3 | _delay_us(10.0 * us);
|
4 | /*
|
5 | uint8_t timer;
|
6 | while (us != 0) {
|
7 | // for 8MHz we want to delay 80 cycles per 10 microseconds
|
8 | // this code is tweaked to give about that amount.
|
9 | for (timer = 0; timer <= DELAY_CNT; timer++) {
|
10 | NOP;
|
11 | NOP;
|
12 | }
|
13 | NOP;
|
14 | us--;
|
15 | }
|
16 | */
|
17 | }
|
Ist bei den Änderungen die ich gemacht habe irgendwas falsch? Oder hatte
ich einfach nur pech, dass es bei den Fernseher nicht funktioniert hat?