Pages: 1 [2]   Go Down
Author Topic: PWM 38Khz  (Read 1805 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche perchè il codice di Leo non mi funziona.
Code:
TCCR4A = ((1<<COM4A0) | (1<<WGM40));
TCCR4B = (1<<CS40);
OCR4A = 105;

Sul pin 6, dichiarato come output non accade nulla e non riesco a spiegarmi il perchè.

Spero ancora nel vostro aiuto.
Grazie

Hai messo il pinMode(6, OUTPUT) ?
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai messo il pinMode(6, OUTPUT) ?

Si ma niente! Sull'oscilloscopio ho sempre un segnale a 0V.
Tu l'hai provato?

smiley-lol smiley-lol smiley-sweat ma no Etan, mica mi riferivo a te!
Sul resto devi aspettare Leo, il mago è lui in queste cose....
Scusa Michele non avevo capito. Grazie per il tuo prezioso aiuto.
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai messo il pinMode(6, OUTPUT) ?

Si ma niente! Sull'oscilloscopio ho sempre un segnale a 0V.
Tu l'hai provato?
Ho provato sull'Arduino UNO, usando i corrispondenti pin OC0A e OC1A, ed a me i led si accendono. A questo punto ho dei dubbi sulla corrispondenza fra canali dei timer e pin dell'Arduino MEGA dello schema che ho allegato alcuni post fa.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12440
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

e questa mi sembra la stessa storia dell'altro Topic, evidentemente il problema è proprio la non corrispondenza dei timer smiley-sad-blue
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Boh. Ho ricontrollato ora, OC4A è su D6, sulla MEGA.
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sembra più complicato del previsto.... smiley-sad

come se ne esce, avete qualche idea ?

Se provassimo a settare i registri in un altro modo?
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

L'unica alternativa facile potrebbe essere questa:
http://arduino.cc/forum/index.php/topic,117425.0.html
Si chiama PWM Frequency Library e dovrebbe poter generare un segnale PWM di sequenza a scelta sia su UNO che su MEGA.
Provala.
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cmq prova queste righe di codice messe nel setup.
Dovrebbero impostare il timer 4 dell'Atmega2560 in modalità Phase Correct PWM ad 8 bit con top fissato da OCR4A. se non ho fatto male i conti, hai i tuoi 38095 Hz sul pin D6.

TCCR4A = ((1<<COM4A0) | (1<<WGM40));
TCCR4B = (1<<CS40);
OCR4A = 105;


Dopo qualche tempo ho ripreso in mano il progetto della barriera IR.
Il codice di leo funziona sul pin d6 del mega, ma la frequenza purtroppoè pari a 31Khz circa e non 38 come desiderato.
Variando OCR4A non cambia nulla, qualcuno ha avuto modo di provare se va?
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi sa che ho fatto male i conti, usando una modalità sbagliata del timer.

Riprova così:

Code:
TCCR4A = ((1<<COM4A0) | (1<<WGM41) | (1<<WGM40));
TCCR4B = ((1<<CS40) | (1<<WGM43));
OCR4A = 105;
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Così è perfetto, ho i 38Khz sul d6!
Sei un grande leo.
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22638
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Così è perfetto, ho i 38Khz sul d6!
Sei un grande leo.
smiley-wink
Logged


Pages: 1 [2]   Go Up
Jump to: