Sida 1 av 1

Sända IR, modulera 38kHz?

Postat: 15 juni 2014, 18:42:16
av PaNiC
Ska bygga både sändare och mottagare själv, så behöver inte följa någon standard. Hur ser modulationen ut? Kan man t.ex. ta en AND-gate och koppla 38kHz bärvåg på ena ingången och utgången från UART på andra? Är det så enkelt?

Re: Sända IR, modulera 38kHz?

Postat: 15 juni 2014, 18:45:36
av Icecap
Man brukar använda en duty-cycle på 10%. Detta gör att IR-LED'n kan få rejält med ström men under så kort tid att den inte skadas (kolla databladet!) och därmed nå längre.

Men annars är svaret ja.

Re: Sända IR, modulera 38kHz?

Postat: 20 juni 2014, 17:11:32
av PaNiC
För uppföljning, ja så enkelt var det.
Med AVR, OC1A till anod på IR-dioden, TXD till katoden för att få rätt polaritet.

Följande kod för test med Mega16:

Kod: Markera allt

#include "avr/io.h"
#include "stdio.h"
#include "string.h"
#include "util/delay.h"

void setup(void)
{
DDRD = 0xff;

UCSRB = 1<<TXEN;
UCSRC = 1<< URSEL | 1<<UCSZ1 | 1<<UCSZ0;
UBRRL = 190; //1200bps@3686400

OCR1A = 10;
TCCR1A = 1<<COM1A1 | 1<<WGM11;
TCCR1B = 1<<CS10 | 1<<WGM13 | 1<<WGM12;
ICR1 = 97;

}

void uart_sendstring(char *data)
{
	unsigned char i = 0;
	while(data[i]){
		UDR = data[i];
		i++;
		while(!(UCSRA & 1<<UDRE));
	
	}
}

int main(void)
{
char str[20];
setup();

while(1){
	_delay_ms(1000);
	sprintf(str, "Hello!\n");
	uart_sendstring(str);

	}
}

Re: Sända IR, modulera 38kHz?

Postat: 24 juni 2014, 03:19:58
av MiaM
Sidospår: Om man synkar pulsbreddsmoduleringen med uart-klockan så hälsar captain obvious att det går lättare att få bra funktion vid högre baudrate.