Sida 2 av 4

Postat: 23 januari 2005, 16:54:08
av Jine
Och hur skulle ja kolla det med en multimeter?

Hur genererar man 38khz pulser då? kod? hittade inget vettigt på google

Postat: 23 januari 2005, 17:46:21
av strombom
kolla med multimeter.. mät spänningen och se när den reagerar och om spänningen är rätt

du kan göra en loop som loopar i 38kHz kanske

/Johan

Postat: 23 januari 2005, 17:58:40
av Chribbe76
Jag har pillat med en reflexdetektor dom senaste dagarna (fast mest grillat picar).
Den funkar riktigt bra faktiskt, verkar helt omöjlig att störa med ir-fjärrkontrollers.
Programmet är skrivet i assembler.

http://ake.myftp.org/forum/ReflexSensor_V1.asm.txt

Bild

Postat: 23 januari 2005, 20:52:33
av Jine
Chribbe, Hmm ok.. kan inte assembler då men ok..


strombom ok.. ska göra det.. men hur faenken loopar man i exakt 38khz? ingen som kan ge nån liten kud snutt? plz??

Mvh Jim

Postat: 23 januari 2005, 20:56:26
av strombom
exakt finns det inget som heter, men du får ta en liten delay-sats och sen kontrollera med oscilloskop eller frekvensräknare... eller så kan du räkna ut ett värde men det är jobbigt, särskilt om du inte använder assembler

/Johan

Postat: 23 januari 2005, 21:12:50
av Jine
Hmm ingen som har ett oscilloskop o kan va gullig och göra det till mig så slipper jag investera i en 555 (isf måste jag vänta tills nästa vecka) ?



Eller hur ser ekvationen för att räkna ut det? ingen som har en aning?

EDIT!!

Picbasic Pro manualen:

FREQOUT

FREQOUT Pin,Onms,Frequency1{,Frequency2}

Produce the Frequency(s) on Pin for Onms milliseconds. Pin is automatically made an output. Pin may be a constant, 0-15, or a variable that contains a number 0-15 (e.g. B0) or a pin name (e.g. PORTA.0).

One or two different frequencies from 0 to 32767 hertz may be produced at a time.

FREQOUT generates tones using a form of pulse width modulation. The raw data coming out of the pin looks pretty scary. Some kind of filter is usually necessary to smooth the signal to a sine wave get rid of some of the harmonics that are generated:

Bild

FREQOUT works best with a 20MHz oscillator. It can also work with a 10MHz oscillator and even at 4MHz, although it will start to get very hard to filter and be of fairly low amplitude. Any other frequency will cause FREQOUT to generate a frequency that is a ratio of the actual oscillator used and 20MHz.

FREQOUT is not supported on 12-bit core PICmicro MCUs due to RAM and stack constraints.

' Send 1KHz tone on Pin1 for 2 seconds
FREQOUT PORTB.1,2000,1000
' Send 350Hz / 440Hz (Dial Tone) for 2 seconds
FREQOUT PORTB.1,2000,350,440





Dvs FREQOUT PORTB.2,1,38000 bör skapa en 38khz puls lr hur?


Mvh Jim

Postat: 23 januari 2005, 21:38:43
av Xyzzy
Blir nog svårt, läs vad du själv "skrivit":
---
One or two different frequencies from 0 to 32767 hertz may be produced at a time.
---
maxfrekvens är alltså 32'767 Hertz

Postat: 23 januari 2005, 21:49:03
av Jine
Aj fan.. :( får väl fixa en 555 endå da :( tror inte det finns så många altenativ för mig just nu :S Om ingen tar sig tid o mäta med Oscilloskop.. (jag har inget)

Postat: 23 januari 2005, 21:50:49
av matseng
Kan man inte lura Basicen genom att säga att man har en 10 MHz kristall (fast man kör på 20) och be att få en ton på 19000 Hz istället?

Förvisso kommer alla delay-kommandon att bli hälften så långa i programmet och alla baudrates att bli dubbla hastigheten, men det kan man ju stå ut med.

Postat: 23 januari 2005, 21:59:39
av Jine
Tror det går genom ändra DEFINE OSC till 10.. Men vad hjälper det mig? jag behöver en HÖGRE frekvens inte en lägre lr hur?

Men jag som va så säker på att jag kunde stiffs porjket arbete utantill, hade missat en sak..

""För att klara av detta var vi tvungna att använda en
extra mikrokontroller med HPWM. Denna kan ge ut en
modulerad puls konstant, även om mikrokontrollerna är
upptagna med att utföra annat arbete. I detta fall IRljusets
modulering på 38khz eftersom det är denna
frekvens som IR-mottagaren reagerar på.""


Nu är bara frågan, vilka pic har HPWM?? O vad är HPWM? och hur kontrollerar man det?

Postat: 23 januari 2005, 22:10:37
av matseng
Ja, borde den inte blir högre då?

Om du verkligen stoppar i en 10 Mhz kristall och talar om för basicen att du gjort det och sedan ber att få en 19000 Hz ton. Då kommer du att få en ton på 19000 precis som du begärt. Right?

Om du nu helt plötsligt byter ut kristallen mot en som är dubbelt så snabb utan att tala om det för basicen, vad tror du händer då? Då jobbar plötsligt allt dubbelt så snabbt och även tonen ut kommer att bli dubbelt så hög. 38000 Hz.

Postat: 23 januari 2005, 22:18:36
av AndLi
Matseng: Jo det låter rätt.

Postat: 23 januari 2005, 22:23:31
av matseng
Annars borde det faktiskt gå att trimma in 555'an manuellt utan oscilloskop.

Bygg 555'an med värden som borde ge kring 38 KHz och ha en trimpot och vrid tills du få signal ut ur mottagaren. Flytta sedan sändare och mottagare en bit från varandra så signalen försvinner, justera sedan trimpotten tills det blir signnal igen. Upprepa ett par gånger så har du hittat den optimala frekvensen för din mottagare.

Postat: 23 januari 2005, 23:01:00
av $tiff
Släng in följande kodsnutt i ditt program så har du kontinuerlig 38kHz fyrkantsvåg ut på PortC.2
Obs! Gjord för PIC16F877A och 20MHz kristall.

Kod: Markera allt

'Initiate PWM for IR-modulation (38kHz, 50%dc @ 20MHz OSC).
TRISC.2 = 0		'PortC.2 output
CCP1CON = %00001100	'Mode select = PWM
T2CON = %00000100	'Timer2 ON + 1:1 prescale
PR2 = 130		'38kHz PWM
CCPR1L = 65		'50% duty cycle
För att få dina IR-sensorer att reagera måste du skicka ut ca 1ms långa pulser som är modulerade i 38 kHz. Detta kan du göra genom att sätta PortC.2 som utgång i 1ms, sen som ingång, så slipper du pilla på inställningarna för PWM-modulen.

Kod: Markera allt

trisc.2 = 0		' Set portc.2 to output
pause 1			' Pause 1 ms
trisc.2 = 1		' Set portc.2 to input
'Read inputs from IR-modules here
Känner mig snäll nu :D

Postat: 23 januari 2005, 23:19:53
av Jine
Stiff.. Du är mer än snäll.. KRAM KRAM KRAM påre!! :D


Ultra bra också eftersom jag använder 16f877a o 20mhz ;) :D