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.