Nastavení časovače ATMega8 pro 38,6 kHz blikání IR LED

ahoj, potreboval bych nastavit casovac na ATMega8. Potreboval bych rozblikat IrLedku na 38 kHz. Napsal jsem nasledujici kod:

[code]#define F_CPU 16000000UL
// FCPU = 16MHz
#include <avr/io.h>
#include <util/delay.h>

#define LED_1_ON PORTD |= (1<<PD2) //LED 1 zapnout
#define LED_1_OFF PORTD &= ~(1<<PD2) //LED 1 vypnout

int main(void)
{

// Timer/Counter 1 initialization
// Clock value: 2000,000 kHz
// Mode: CTC top=OCR1A
// OC1A output: Toggle

TCCR1A = (1 << COM1A0);
TCCR1B = (1 << WGM12) |(1 << CS11);
OCR1A=0x19;

DDRB = (1 << PB1);			// vystup casovac1
DDRD = (1 << PD2);			// vystup dioda
PORTD = (1 << PD4);		// zapnout pull-up

while(1)
{
	
//signal == 0
if((PIND & (1 << PD4)) == 0)
LED_1_ON;

else
LED_1_OFF;
}

}
[/code]
po rozblikani sleduji v hlavni funkci stav cidla SFH5110 - 38. Chtel bych vedet, jestli jsem to rozblikal spravne, protoze program me nefunguje. Po nahrani programu do MCU se jen rozsviti kontrolni ledka a IrLed taky sviti (nebo blika, to nevim jak poznat). Jsem zacatecnik a s casovacem pracuji poprve. Frekvence blikani mi vychazi myslim 38,6kHz, coz si nejsem jisty jestli to to moje cidlo zachyti. Zkousel jsem do nej i blikat ovladacem od televize, ale stale nereaguje. Prosim pomozte dik moc

:arrow_right: administrator: přejmenováno z "nastaveni casovace ATMega8"

V programu to nemáš popsané, ale dle podmínky předpokládám výstup IR přijímače na PD4. Pokud je na výstupu přijímače “0”, znamená to, že má nosnou a tedy ti IR dioda bliká. Kdyby ti jen svítila nebo nesvítila, na výstupu přijímače by byla “1”. Zkusit to můžeš vložením překážky do cesty IR paprsku.
DO vysílají kód přerušovaně, pokud tedy stiskneš tlačítko na DO a přijímač to zachytí, měla by ti LEDka na výstupu přijímače blikat viditelnou rychlostí. Otázkou ovšem je, zda má DO stejnou nosnou jako tvůj přijímač. V hlavě mi totiž nějak visí číslo 36kHz…

Kdyz se na DO podivam pres kameru v mobilu, tak se zda ze blika, jenze prave IrLedka na vystupu PB1 neblika ale sviti. Taky si myslim ze dalkovy ovladac blika na 36 kHz, ale chtel jsem tim jen zkusit jestli to treba nahodou nebude i tak fungovat. Muj prijimac prijima na 38 kHz ale IrLed me blika 38,6 kHz. Nevim jestli to vadi takova odchylka. Pokud zakryju prijimac, tak má stále na výstupu 0, coz je podle me taky divny.

Ahoj.
Preji hodne uspechu s AVR
Jednu otazku
Pouzivas externi krystal? Protoze mam pocit, ze ATmega8 jde nastavit maximalne na 8MHz.
Mas nastavene fusez na ten krystal?
Je spravne zapojeny?

Cidlo vypada jako ze prijima na 38kHz, tech 6 desetin nic neznamena.
Je spravne zapojene? Ja jsem to taky zkousel, a zjistil jsem skolackou chyby ze mam prepolovany prijimac, nastesti prezil…

A ja osobne bych to delal pomoci pulzne sirkove modulace, ktera sice vypada slozite, ale po case pouzivani je to hracka.

Máš čidlo správně zapojené? Když bude čočkou k tobě, je to zleva Out-Vcc-Gnd. Díky použité filtraci (3-6kHz na 50%) by mělo i DO na 36kHz projít. Výstup lze zatížit 3mA. Zkusil bych tedy LEDku přímo na výstup (mezi Vcc a výstup). Při přijímané nosné by měla dioda svítit, jinak ne.

Pokud má jakoukoli megu8 bez “L”, tak umí 16MHz.

krystal mam spravne zapojeny, zprovoznil jsem UART a ten jede bez problemu, fuse mam nastaveny spravne pro externi krystal.

mohl by jsi mi tedy pls trochu pomoct s tim pwm? Treba jen nejaky priklad, ja jsem studoval datasheet a ty grafy v nem ale bohuzel nejsem si vzdy jistej vyberem spravnyho pwm rezimu. Rad bych i casem rozjel motory pomoci pwm, tam budu potrebovat signaly do 20 kHz, zatim mam postavenej H-bridge s L293D a jedu akorat na prepinani smeru, coz neni idealni a chtel bych regulovat i rychlost

zapojeni mam podle datasheetu. Jsi si jisty ze to pises spravne? protoze v datasheetu mam je psany ze to mam zapojit OUT - GND - VCC, to co pises ty je tam napsano pro sfh5111.

takze muzu primo na vystup dat 2mA LEDku?

Zatim dik moc za pomoc

Ledku dát můžeš (samozřejmě přes odpor).
Se zapojením máš pravdu, blbě jsem si přečetl typ tvého senzoru.

ahoj tak jsem to ted vyzkousel jen s tou ledkou. Cidlo stale hazi 0 takze nevim kde je chyba. Pravdepodobne v cidle? Asi koupit novy co?
Jeste jeden dotaz. Jak poznam co je to za cidlo, kdyz nikde neni popsany co to je zac. Zezadu na pouzdre je vlovo nahore pod sebou napsano 38 a pak dole je napsano vlevo 52 a vpravo 07. Vpravo nahore je 0? Da se podle toho neco identifikovat? Jeste jsem zkusil zapojit cidlo tak jak pise piityy a Ledka stale sviti.

Hod foto cidla …ale aby to nebolo rozmazane a aj niec osme tam videli.

Cidlo by malo spinat - pol tak ze ledku smerom na + cez odpor. v nutri prijimaca by mal byt puulup odpor caa23K a viac. Este sa pouziva externy odpor okolo 10K Dufam ze si pozrel datasheet ako to ma byt spravne zapojene SFH5110

Pokud mu LEDka stále svítí a má ji proti napájení, tak ji má dobře. Teda pokud nemá nějakou vysokosvítivou a neutáhne ji i ten pull-up uvnitř. Spíš to vypadá na usmaženej tranzistor na výstupu ve snímači.
Jakou máš ledku(barvu) a odpor? Pro červenou (2V) by měl bejt odpor >= 1k.

LEDku mam zlutou 2mA vic nevim. Rezistor myslim 2,4k

Dej nám sem pro jistotu ještě to schéma (jesli se tomu tak dá vůbec říkat :smiley:), ale pravděpodobně umřel přijímač.

zde zasilam “schema” :smiley: je to delany jen narychlo v malovani ve windows tak snad uspokoji :smiley:

Ked to mas podla tejto schemy tak to svietit urcite nebude. ledku mas zle zapojenu, zakreselnu ?

A ked budes kupovat nove pozrissa PO TSOP17xx ma lepsiu citlivost ako to co mas teraz. Aspon si myslim

Takhle ta dioda skutečně svítit nemůže ani kdyby sebevíc chtěla :slight_smile: Mimochodem - dioda se kreslí s čárou skrz :wink:

:smiley: ok mate pravdu jen jsem to schema otocil, ale anodu mam zapojenou v +

ahoj, kdyz bych teda pouzil cidlo TSOP1736, muzu k tomu pouzit IrLed ktera vysila o vlnove delce 940nm, kdyz u toho cidla maji psano 950nm?

jj, tak omezený pásmo citlivosti to rozhodně nemá.