Arduino Forum

International => Italiano => Hardware => Topic started by: Piero87 on Nov 21, 2012, 04:43 pm

Title: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 21, 2012, 04:43 pm
Ciao a tutti! Devo collegare due IR Led un ricevitore e un emettitore a 5V e vorrei sapere quali resistenze usare, ho provato a leggere il datasheet ma non ho trovato niente, e ho usato anche quei programmi online per il calcolo delle resistenze ma non sono sicuro vadano bene, qualcuno mi sa consigliare? Ecco i dati:

IR Led Emitter LS53SF4C
datasheet: http://www.datasheetarchive.com/L53SF4C-datasheet.html (http://www.datasheetarchive.com/L53SF4C-datasheet.html)

IR Led Receiver L53P3C
datasheet: http://www.soselectronic.com/a_info/resource/pdf/king/L-53P3C.pdf

Cosa posso usare?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 21, 2012, 05:07 pm
Sui LED IR (tx) in genere si metteree una R da 150ohm, per fornire la massima corrente possibile, senza danneggiare Arduino; puoi scendere a 100 ohm se alimenti il LED IR tramite un Transistor. Sul ricevitore mi pare di capire che serva una R da 1kohm.
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 21, 2012, 05:38 pm
Sono andato nel negozio di elettronica dove li ho comprati e mi hanno consigliato per 5 V, di mettere 100ohm per entrambi...ma non mi convince...
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 21, 2012, 05:58 pm

Sui LED IR (tx) in genere si metteree una R da 150ohm, per fornire la massima corrente possibile, senza danneggiare Arduino; puoi scendere a 100 ohm se alimenti il LED IR tramite un Transistor. Sul ricevitore mi pare di capire che serva una R da 1kohm.


Mi potresti dire come fare per usarlo con un transistor? e inoltre volevo sapere ho trovato questo link che sarebbe per un generico ir tx e ir rx: http://www.reconnsworld.com/ir_ultrasonic_basicirdetectemit.html (http://www.reconnsworld.com/ir_ultrasonic_basicirdetectemit.html) e per il receiver usa 10Kohm...cosa dici?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 21, 2012, 06:00 pm

Sono andato nel negozio di elettronica dove li ho comprati e mi hanno consigliato per 5 V, di mettere 100ohm per entrambi...ma non mi convince...

con 100 ohm devi usare il transistor altrimenti probabilmente bruci il pin di Arduino; il ricevitore, al contrario del trasmettitore, non ha bisogno di tutta questa corrente, quindi prova i valori che ti ho detto.

Va bene anche lo schema che hai linkato, come vedi sono addirittura maggiori le due resistenze
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 21, 2012, 06:04 pm


Sono andato nel negozio di elettronica dove li ho comprati e mi hanno consigliato per 5 V, di mettere 100ohm per entrambi...ma non mi convince...

con 100 ohm devi usare il transistor altrimenti probabilmente bruci il pin di Arduino; il ricevitore, al contrario del trasmettitore, non ha bisogno di tutta questa corrente, quindi prova i valori che ti ho detto.

Va bene anche lo schema che hai linkato, come vedi sono addirittura maggiori le due resistenze


Ok va bene, come transistor ho un P2N2222AG può andare? potresti dirmi come collegarlo?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 21, 2012, 10:02 pm
seguendo lo schema, scaricati il data-sheet e localizza e-b-c.
però la prova puoi farla senza, se usi i valori che ti ho detto io, almeno ti sinceri che vada; peraltro con quella resistenza alla fine la corrente è addirittura minore col transistor.
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 21, 2012, 10:43 pm
Alla fine senza transistor ho preso 3 resistenze da 560 ohm e una da 1kohm e le ho messe in parallelo e ho tirato fuori una resistenza da 157 ohm...e sembra andare tutto bene :)...però così giusto per curiosità, potresti dirmi come connettere il transistor al led? l'emettitore va a terra, e gli altri?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 22, 2012, 08:35 am
il collettore va al catodo del LED IR
l'anodo del LED IR alla R da 100 ohm (in questo caso la puoi usare...)
l'altro capo della R va a 5V
la base ad una R da 1kohm
l'altro capo di questa R al pin di Arduino
Questo circuito ti serve solo per dare la massima corrente possibile al LED IR per aumentare la distanza di trasmissione, ai fini del funzionamento non cambia niente ;)
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Nov 22, 2012, 10:21 am
Ciao.. scusatemi se mi inserico nel topic... ma visto che sto cercando di aumentare le mie conoscenze di base, questo mi sembra interessante  :*
Per questo mi stavo facendo tutti i calcoli delle resistenze a mano, così da capire meglio il tutto e non essere sempre "dipendente" da internet. Infatti per l' emettitore non ci sono problemi ma per il receiver non capisco molto il datasheet su quale tensione e corrente ottimale dovrebbe lavorare.. Michele, me lo potresti spiegare ? Così poi mi alleno a fare 4 calcoli.
Grazie e scusa il disturbo...
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 22, 2012, 10:58 pm
Io non ho tutte queste competenze da poterti spegare la teoria ed i calcoli, farò del mio meglio con la speranza che qualcuno controlli ciò che scrivo e corregga gli errori.
Premesso che ho fatto esperienza con i LED IR per scrivere l'articolo sulla barriera ad infrarossi, quindi mi sono mosso in base a quegli esperimenti. Ora ho dato uno sguardo al data-sheet.
IF (Forward Current) è la corrente che deve scorrere nel LED IR; valore normale 20mA, massimo 50mA
VF (Forward Voltage) è la tensione di alimentazione del LED IR; valore indicato tra 1,3V e 1,7V, in genere si prende il valor medio (in questo caso 1,5V)
Quindi hai la tensione 1,5V, hai la corrente 20mA, devi calcolarti la resistenza di limitazione con la legge di Ohm:
R = V / I = (5-1,5)V / 0,02A = 175 ohm (valore commerciale 180 ohm)
io gli avevo consigliato 150 ohm quindi con la formula inversa calcoliamo la corrente:
I = V / R = (5-1,5)V / 150 ohm = 0,023A = 23mA quindi eravamo lì e Arduino eroga tranquillamente questa corrente
usando il transistor gli ho detto che può abbassare a 100 ohm, vediamo:
I = V / R = (5-1,5)V / 100 ohm = 0,035A = 35mA che è un valor medio tra i 20mA normali e i 50mA massimi (che nonconviene mai applicare. Quindi se non ho scritto caxxxate le formule dovrebbero aver dimostrato che i valori consigliati sono corretti.
Riguardo il pilotaggio del transistor il valore di 1kohm è usato comunemente, volendo essere pignoli andrebbe calcolato (http://www.gioblu.com/index.php?option=com_content&view=article&id=138:usiamo-i-trasnistor-come-un-interruttore&catid=46:pcb-etching&Itemid=37) in base alle caratteristiche del transistor
Mi spiace ma più di così non riesco a fare.
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Nov 22, 2012, 11:49 pm
Dispiacerti ? e di cosa... sei stato perfetto come sempre  ;)

Grazie tutto chiaro
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 23, 2012, 11:37 pm
Ottima spiegazione grazie! :)
Ho testato tutto con l'arduino e funziona benissimo, ma vorrei poter spostare questo circuito senza arduino e alimentare tutto usando i +5V di una porta usb di una vecchia scheda madre, le specifiche dovrebbero essere corrette giusto? non dovrebbero esserci problemi di nessun tipo...cosa dici?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 23, 2012, 11:39 pm
le correnti in gioco sono perfettamente compatibili con quelle erogate da una porta USB, quindi vai tranquillo.
Title: Re: Consiglio resistenze per due IR Led
Post by: Piero87 on Nov 24, 2012, 12:46 pm
Ok grazie mille!
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Nov 24, 2012, 12:52 pm
di nulla. ciao :)
Title: Re: Consiglio resistenze per due IR Led
Post by: powersantino on Jan 07, 2013, 12:09 pm
Scusate, io ho questo stesso led ma in questo topic non viene fatto il valore medio del V ma viene preso direttamente il minimo.
E' corretto? Qui si usa 1,3V a me viene 1,8...
http://arduino.cc/forum/index.php?topic=35641.5;wap2
grazie mille e scusate la banalità della domanda.
Title: Re: Consiglio resistenze per due IR Led
Post by: powersantino on Jan 07, 2013, 12:11 pm
preciso lo stesso led del link! :)
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 07, 2013, 12:13 pm
Ascolta, un LED ha un range di tensione, di solito si usa il valor medio, ma nessuno ti vieta di usare il valore più grande o più piccolo riportati nel data-sheet; qual è il tuo problema?
Title: Re: Consiglio resistenze per due IR Led
Post by: powersantino on Jan 07, 2013, 04:52 pm
Volevo calcolare in maniera corretta la resistenza da applicare. E' la prima volta che lo faccio...
mi è arrivato lo starterkit giusto giusto 15 gg fa. E vorrei capire per bene i passaggi.
Ma a i fini pratici, farlo lavorare con più V fa si che l'emanazione "luminosa" sia maggiore (in questo caso il raggio di azione)?
Ora mi metto a calcolare quella che serve per il ricevente che è un L14G1.
Grazie mille!
E colgo l'occasione per fare i complimenti a tutti coloro che partecipano a questo forum, che permettono a i niubbi come me di portare avanti progetti, anche se pur elementari ma estremamente istruttivi ed intuitivi!
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 07, 2013, 05:41 pm
Per il ricevitore quasi sempre nel data-sheet è riportato lo schema applicativo con i valori dei componenti esterni da usare.
Comunque se hai difficoltà chiedi pure.
Va bene il concetto che aumentando la potenza del fascio aumenta la portata, ma ti assicuro che fa molto di più inserire il led in un tubicino di adeguate dimensioni che aumentare la potenza al suo limite; inoltre ruolo fondamentale hanno i ricevitori, il TSOP34838 è dichiarato per ben 40mt, e funziona davvero a meraviglia.
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 10:23 am
Buon giorno
Scusate se mi intrufolo nel post, ma la cosa mi interessa perché mi sto scervellando sulla stessa cosa.

Sul Start kit che mi è arrivato c'è un led IR TSUS4300, seguendo una guida l'ho collegato in serie con una resistenza da 220 ohms, volevo sapere se è giusto perché in led non lampeggia (ho controllato con la fotocamera del cellulare).

L'ho collegato al pin 03 di Arduino caricato il programma base  "IRsendDemo" ma niente
Ho provato a collegarlo al pin 13 con il programma "Blink "  il led lampeggia

A questo punto sono un po confuso…  :~

Ha dimenticavo ho un ADmega2560 + ETH-SHIELD
Grazie
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 10:31 am
Il LED dovrebbe appartenere alla famiglia degli infrarossi, giusto?
Se è così, come hai ben capito, puoi vederlo lavorare solo guardandolo con una foto o videocamera.
Se sul pin 13 lampeggia significa che l'altra prova che stai facendo non sta inviando segnale al pin 3 ma a qualche altro pin, oppure che quel programma si aspetta qualcosa (magari la pressione di un tastino) prima di mandare il segnale. Puoi dire di più su questo sketch, magari fornendo il link o postandolo qui stesso?
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 11:06 am
Ciao
Si il pin è ad infrarossi, il link del datasheel  : http://www.vishay.com/docs/81053/tsus4300.pdf (http://www.vishay.com/docs/81053/tsus4300.pdf)
il collegamento con resistenza da 220 ohmes è ok?

lo skech di esempio della libreria è abbastanza semplice:

Code: [Select]

/*
* IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
* An IR LED must be connected to Arduino PWM pin 3.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/

#include <IRremote.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(40);
    }
  }
}
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 12:31 pm
La R portala a 50-100ohm ma dovrebbe andare anche con 200ohm
Quello sketch a me sembra che generi un codice in una data condizione, non sono in grado di interpretarlo correttamente però trasforma per prova il loop in:
Code: [Select]
void loop() {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(40);
}
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 12:48 pm
Per vedere il led lampeggiare,seguendo lo sketch che hai postato, devi aprire il serial monitor,digitare ad esempio n e premi invio e vedrai lampeggiare il led per 3 volte come da ciclo for. Diversamente come dice Michele modifica il loop e vedrai il led acceso.
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 12:55 pm
Ciao
resistenze dello starkit disponibili 220 ohm / 470 ohm / 1Kohm / 4,7Kohm / 10 Khom
vedrò di procurarne anche da 50 e 100

Lo skech che mi hai proposto l'avevo gia provato anch'io ma ero tornato all'esempio originale pensando di aver sbagliato.

sono scettico su due punti:

il primo è che mello skech non viene devinito da nessuna parte il pin di OUT del segale, del tipo che se io il led lo volessi collegare nel pin 6 invece di 3. tu che ne pensi ?

il secondo di aver collegato il led sulla basetta in maniera sbagalita, farò una foto e la posto per sicurezza
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 01:02 pm
Metti due R da 220 in parallelo tra loro e ottieni 110 ohm ma, ripeto, puoi continuare anche con la sola 220 ohm, a livello di fotocamera devi vederla comunque la luce, d'altra parte sul pin 13 la vedevi giusto? non usavi sempre la 220 ohm?

il pin 3 probabilmente è fissato all'interno della libreria che stai usando nello sketch. Fai una prova sciocca: apri il blink e modificalo per il pin 3 e poi vede se lì ti funziona.

@ Tonid: gli ho consigliato di escludere tutto perché quello è un treno ripetuto tre volte a 38KHz, con un intervallo di 40ms, non vedrà mai tre lampeggi ma solo un istantaneo flash, eliminando tutto invece dovremme mandare il codice all'infinito e qualcosa dovrebbe vedere, ma io non ho mai usato quella lib o fatto esperimenti con telecomandi ecc, quindi tu ne sai più di me :)
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 01:18 pm
Quote
@ Tonid: gli ho consigliato di escludere tutto perché quello è un treno ripetuto tre volte a 38KHz, con un intervallo di 40ms, non vedrà mai tre lampeggi ma solo un istantaneo flash, eliminando tutto invece dovremme mandare il codice all'infinito e qualcosa dovrebbe vedere, ma io non ho mai usato quella lib o fatto esperimenti con telecomandi ecc, quindi tu ne sai più di me

I lampeggi si vedono bene ma deve però scrivere un carattere in serial monitor e premere invio altrimenti non vede nulla mentre come dici tu vedrà il led sempre acceso......in sostanza credo che non abbia digitato nulla in serial monitor ed ovviamente non vedeva cambiare lo stato del led....
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 01:21 pm
scusatemi.. non conosco molto la libreria.. ma giustamente tonid dice di premere il tasto, ma quel 12 nella riga del send, non potrebbe riferirsi al pin 12 ?
Presto fai a fare una prova..
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 01:23 pm
No ,è il numero di bit di cui è composto il protocollo ir della sony
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 01:28 pm
Hai ragione, me ne sono accorto subito dopo, scusate.. ho detto una stronz...  :|

Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 01:30 pm
Grazie ad entranbi per l'interessamento

@ Michele Menniti: se lancio il "blink" sul pin 3 con 2 resitenze in paralello  come suggerito, vede bene i lampeggi distinti.

@ Michele Menniti, Tonid: l'affermazione fatta da Tonid è esetta, il programma "IRsendDemo" controlla lo stato del seriale,
avevo gia provato a invare tramite seriale il valore 1 o n

in parteza avevo provato a far partire il seguante codice

Code: [Select]

#include <IRremote.h>

IRsend led;
unsigned int code[22] = {14036,6750,2500,3350,1700,850,850,800,1700,1700,850,800,1700,850,850,850,1650,1700,850,1650,1700,1650};
//           Raw (22): 14036 6750 -2500 3350 -1700 850 -850 800 -1700 1700 -850 800 -1700 850 -850 850 -1650 1700 -850 1650 -1700 1650

void setup()
{
}

void loop() {

   for (int i = 0; i < 3; i++) {
     led.sendRaw(code, 22,38);
     delay(100);
   }



escudendo il seriale, ma nada ....
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 01:46 pm
Mi par un po' strana la cosa... prova magari aumentare il contatore per avere maggiori lampeggi... perchè 3 mi sembrano un po' pochi per riuscire a vederli...
Mi sono guardato un po' le librerie... se apri IRremote.h nelle prime righe puoi abilitare il debug... magari togli il commento e vedi cosa ti dice..
Penso che la parte hardware sia ok.. anche perchè te la sta verificando Michele.. quindi stanne certo che vai sul sicuro..  ;)
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 02:43 pm
La mia sensazione è che "stiamo" usando male quello scketch e quella lib e che da quel pin non stia uscendo un bel niente!
Ora a me pare che l'intento di garide fosse quello di verificare il LED IR, ed il LED IR funziona; dopo di che , se si vuole approfondire questa cosa della lib, bisogna mettersi ad usarla seriamente. Facciamo un'altra cosa più SICURA.
@ garide: lascia perdere quella libreria e carica questo semplice sketch:
Code: [Select]

#define TX 11

void setup()
{               
  pinMode(TX, OUTPUT);     

  OCR2A = 208;
  TCCR2A = 0b01000011;
  TCCR2B = 0b00001001;
  }

void loop()
{
}

collega il LED e la R al pin 11 e vedi cosa succede
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 03:04 pm
Ciao

Fatto non succede nulla ...

non conosco ancora questo codice, cosa dovevo vedere ?
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 03:41 pm
Questo codice genera costantemente 38KHz sul pin 11, senza dover fare nulla, ora sembra strano che tu veda il tuo LED IR lavorare col blink e NON con una frequenza specifica, naturalmente devi sempre osservare attraverso una fotocamera, perché in caso contrario non vedi nulla. Prova ad usare un normale led rosso invece dell'IR (va bene ancora la R da 220ohm, ma NON inferiore!) e guardalo a occhio nudo, dovrebbe lavorare senza problemi, magari con luce un po' fioca ma si deve vedere.
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 04:56 pm
Io ho caricato lo sketch di esempio e tutto funziona.....Ho dovuto caricare lo scketch con ide 23 ed ho messo un led normale ed ha fatto i suoi 3 lampeggi come da codice.
Non è che il pin 3 ti è partito?.....magari facendo prove hai collegato il led senza resistenza?!
Io farei delle prove sul pin 3
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 05:22 pm

Non è che il pin 3 ti è partito?.....magari facendo prove hai collegato il led senza resistenza?!
Io farei delle prove sul pin 3


@ Michele Menniti: se lancio il "blink" sul pin 3 con 2 resitenze in paralello  come suggerito, vede bene i lampeggi distinti.

Tonid, non ti distrarre ;)
Semmai a me sta venendo il dubbio sul funzionamento del PWM, visto che lui non vede nulla né sul 3 né sull'11 quando sono gestiti da timer :smiley-roll-sweat:
Scusa Tonid, dato che non ti costa nulla: sposta il led sull'11 e testa le mie 4-5 righe, si accende il LED?
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 05:52 pm
Quote
Scusa Tonid, dato che non ti costa nulla: sposta il led sull'11 e testa le mie 4-5 righe, si accende il LED?

Si accende e misuro una F di 38254Hz
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 06:29 pm
quindi il nostro amico garide ha proprio problemi di timer, infatti lo stesso codice non gli da' segni di vita ma sullo stesso pin il normale blink gli funziona.
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 08, 2013, 06:40 pm
A questo punto pare proprio di si . Mi sembra di aver capito che la scheda gli è arrivata da poco e questo sia uno dei primi esperimenti quindi è strana sta cosa.
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 07:04 pm
Buona Sera

Scusate sono dovuto uscire, leggo solo ora quello che mi scrivete

effetivamente la skeda mi è arrvata prima di natale e ho fatto un paio i esperimenti con led e pulsanti.

@Michele Menniti: ho prvato il tuo skech con led normale e con IR, entrambi non danno segno di vita.
                         inoltre ho propvato ha cambiare tutte le porte PWM ( 3/5/6/9/11) della skeda aggiorano di volta in volta lo skech ma su nessun pin vedo nulla, metre se metto in "HIGH" le stesse porte il led IR si illumina di azzurro


@tonid:
Quote
.Ho dovuto caricare lo scketch con ide 23
mi puoi spiegare cosa è ide23

@Michele Menniti:
Quote
quindi il nostro amico garide ha proprio problemi di timer


che mi consigliate di fare ?  rispedire la skeda indietro ?

Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 07:43 pm
IDE è il nome del programma che usi per inviare gli sketch ad Arduino.
Probabilmente tu stai usando la versione IDE 1.0.1 o successiva, molti sketch però non sono compatibili completamente con questa versione, allora in questi casi si recupera la vecchia versione precedente, IDE 0022 o 0023 per farli funzionare. Ora onestamente io non so dirti se il tuo possa essere un problema di versione, ma nel caso del mio codice, non c'è niente di particolare, solo tre righe che agiscono sui registri del timer 2 che funzionano senza problemi, ma non nel tuo caso.
Che scheda hai?
Qual'è la sigla del micro che monta?
Dove l'hai comprata?
Proviamo a capirci qualcosa in più prima di dirti di contattare il fornitore per la sostituzione
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 07:52 pm
Caio

Grazie per la spiegazione

la skeda è un Arduino Mega 2560 R3 con ATMEGA256 16AU 1153
sopra è attacata una ethernet share + una screw sheld per lato , per conessioni con fili

ho acquistato il tutto sul sito della http://www.homotix.it
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 08:06 pm
Non potresti staccare tutto e rifare le prove solo con Arduino?
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 08:24 pm
ciao

ho staccato tutto,  arduino + resistenza + led IR

niente tutto spento
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 09:33 pm
No forse Michele intendeva di staccare tutti gli shield e lasciare solo l' arduino con il led o l' IR e fare le prove che ti aveva detto.
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 09:37 pm
scusa forse mi sono spiaegato male, "ho tolto tutto" intendevo propio che ho rimosso ETH e gli screw

ho rifatto tutte le prove proposte da Michele, ma non ho riscontratto nessuna differenza da prima, il led nn si accende
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 09:48 pm
Hai provato accendere un semplice led rosso nel pin 3 ?
Prova  e vediamo se il pin è bruciato..
http://arduino.cc/en/Tutorial/blink (naturalmente modifica il codice per il pin 3)
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 09:52 pm
Si

Code: [Select]

int led =  3;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}


il led rosso si accende e spegne
se sostituisco il led rosso co il led IR il led visto dal telefono lampeggia
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 08, 2013, 10:05 pm
ok.. quindi il pin funziona...
Prova ora lanciare questo...
Code: [Select]

/*
* IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
* An IR LED must be connected to Arduino PWM pin 3.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/

#include <IRremote.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
 
      irsend.sendSony(0xa90, 12); // Sony TV power code

}
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 10:37 pm
carico ma nn si accende niente
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 08, 2013, 10:49 pm
Scusate se mi intrometto ma il codice di Michele lavora sul pin 11 solo se si usa un'Arduino UNO/2009 o, per lo meno, un Atmega328. Nel caso dell'Arduino Mega2560, il canale A del timer 2 (OC2A)è sul pin 10.

Quindi sostituisci #define 11 con #define 10 all'inizio del codice e riprova
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 08, 2013, 11:02 pm

Scusate se mi intrometto ma il codice di Michele lavora sul pin 11 solo se si usa un'Arduino UNO/2009 o, per lo meno, un Atmega328. Nel caso dell'Arduino Mega2560, il canale A del timer 2 (OC2A)è sul pin 10.

Quindi sostituisci #define 11 con #define 10 all'inizio del codice e riprova


non  ti scusare, ogni consiglio/soluzione è ben acetto

ho fatto quanto mi hai detto :

con questo codice il led visto dal cell è acceso
Code: [Select]

int led = 10;
void setup() {                 
  pinMode(led, OUTPUT);     
}
void loop() {
  digitalWrite(led, HIGH); 
}


caricando questo
Code: [Select]

#define TX 10

void setup()
{               
  pinMode(TX, OUTPUT);     

  OCR2A = 208;
  TCCR2A = 0b01000011;
  TCCR2B = 0b00001001;
  }

void loop()
{
}


il led si spegne e nessun altro segnale
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 08, 2013, 11:44 pm
Ragazzi non fategli fare prove inutili, le abbiamo già fatte le varie prove blink, sui vari pin, se rileggete la discussione..... l'unico dubbio che avevo era proprio sualla board ed infatti Leo è correttamente intervenuto facendogli spostare il pin, purtroppo il verdetto è sempre lo stesso, sembra che i timer non funzionino, o meglio credo funzioni solo il timer 1, visto che il delay funziona.
Chiedo cortesemente a Leo di modificare il codice per far funzionare il TIMER 1 a 38KHz e dire qual è la porta da usare, a mio parere dovremmo vederlo finalmente funzionare, ma questo sarà solo una conferma "dei poveri", per me il chip sta dando i numeri in tutti i sensi.
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 09, 2013, 12:15 am
Scusate.. forse mi son perso qualche cosa... anche se con il poco tempo ho cercato di seguire il topic..
Ma tonid su che tipo di arduino ha provato ?
Io sotto le mani ho ora un mega 2560 ma non posso fare la prova perchè è impegnato per altre prove..
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 12:23 am
beh, appena riesci a liberarla, fai l'ultima prova che ha fatto eseguire Leo a garide e siamo a posto, dopo tutto non devi smantellare nulla, devi solo liberare il pin 10 (sempre che sia occupato...) e caricare quelle poche righe di sketch, visto il risultato rimetti tutto a posto no? ;)
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 09, 2013, 12:35 am
Quote
Scusate.. forse mi son perso qualche cosa... anche se con il poco tempo ho cercato di seguire il topic..
Ma tonid su che tipo di arduino ha provato ?

Io ho provato sulla uno r3.
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 07:10 am

Ragazzi non fategli fare prove inutili, le abbiamo già fatte le varie prove blink, sui vari pin, se rileggete la discussione..... l'unico dubbio che avevo era proprio sualla board ed infatti Leo è correttamente intervenuto facendogli spostare il pin, purtroppo il verdetto è sempre lo stesso, sembra che i timer non funzionino, o meglio credo funzioni solo il timer 1, visto che il delay funziona.
Chiedo cortesemente a Leo di modificare il codice per far funzionare il TIMER 1 a 38KHz e dire qual è la porta da usare, a mio parere dovremmo vederlo finalmente funzionare, ma questo sarà solo una conferma "dei poveri", per me il chip sta dando i numeri in tutti i sensi.

Il delay è agganciato al timer 0 anche sull'Arduino MEGA.
Comunque non credo che il timer non funzioni. Faccia una semplice prova con un segnale PWM sul pin D10: tutti i timer sono preimpostati per il PWM dal core dell'IDE. Se riesce a dimmerare un led rosso o quel che ha il timer funziona correttamente.
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 10:44 am
Mi sono spiegato male, ho sbagliato riferimento....TUTTE le prove fatte fin qui domostrano che:
- il Timer 0 funziona (tutti i test blink OK)
- gli altri timer, o almeno il Timer 1, sembrano non funzionare

Ti chiedevo di modificare il mio codice per far funzionare il pwm del timer 0, meglio ancora un minimini-sketch in cui si possano provare alternativamente i due timer:
step a: blink 0 (sul pin pwm del timer 0)
step b: blink 1 (sul pin pwm del timer 1)
step c: 38KHz sullo stesso pin pwm dello step a
step d: 38KHz sullo stesso pin pwm dello step b
(in realtà così facciamo tre test sul timer 0 ed uno solo sul timer 1, ma va benissimo così, è il riepilogo di quanto fatto finora)
così tagliamo la testa al toro..... :)
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 11:40 am

Mi sono spiegato male, ho sbagliato riferimento....TUTTE le prove fatte fin qui domostrano che:
- il Timer 0 funziona (tutti i test blink OK)
- gli altri timer, o almeno il Timer 1, sembrano non funzionare

E' stato fatto un semplice analogWrite(10, 128) per vedere se si riesce a dimmerare un LED sul pin 10?
Se così no va, allora o la sua scheda è buggata oppure c'è qualcosa che non va nel core di Arduino. Ma pensare che il core sia difettoso mi pare strano perché nessuno ha mai usato un PWM sulla Mega?

Quote

Ti chiedevo di modificare il mio codice per far funzionare il pwm del timer 0, meglio ancora un minimini-sketch in cui si possano provare alternativamente i due timer:
step a: blink 0 (sul pin pwm del timer 0)
step b: blink 1 (sul pin pwm del timer 1)
step c: 38KHz sullo stesso pin pwm dello step a
step d: 38KHz sullo stesso pin pwm dello step b
(in realtà così facciamo tre test sul timer 0 ed uno solo sul timer 1, ma va benissimo così, è il riepilogo di quanto fatto finora)
così tagliamo la testa al toro..... :)


Il codice a cui ho pensato è questo (non testato perché non ho una scheda MEGA sottomano, e sono a lavoro):
Code: [Select]

void setup() {               
}

void loop() {
    fadeLed(11);
    fadeLed(13);
    setTimer1();
    delay(10000);
    setTimer0(); //da qui in poi muore perché il delay viene sballato
    for (;;) {};
}


void fadeLed(byte tempLed) {
    pinMode(tempLed, OUTPUT);
    for (byte tempJ = 0; tempJ < 4; tempJ++) {
        for (byte tempI = 0; tempI <=255; tempI++) {
            analogWrite(tempLed, tempI);
            delay(10);
        }
    }
    pinMode(tempLed, INPUT);
}

void setTimer1() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR1A = 105;
    TCCR1A = ((1<<WGM10) | (1<<WGM11) | (1<<COM1A0));
    TCCR1B = (1<<WGM13);
    sei();
    pinMode(11, OUTPUT);
}

void setTimer0() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR0A = 208;
    TCCR0A = ((1<<COM0A0) | (1<<WGM01) | (1<<WGM00));
    TCCR0B = ((1<<WGM02) | (1<<CS00));
    sei();
    pinMode(13, OUTPUT);
}


Fa il blink sul pin 11 (timer 1); poi fa il blink sul pin 13 (timer 0);
poi dovrebbe fare i 38 kHz per 10" sul pin 11 e poi i 38 kHz sul pin 13 (per sempre).

Ho invertito i test perché toccando il timer 0 poi saltano i delay, quindi i 38 kHz sul timer 0 li ho messi alla fine. Uso i canali A di entrambi i
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 11:46 am
il Maestro sei tu, quindi ovviamente si fa come dici :)
l'analogWrite non è stato fatto e vedo che lo hai previsto, penso che da questa prova avremo finalmente il quadro chiaro.
Me esiste un modo per "disabilitare" i timer di un micro, che tu sappia?
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 12:28 pm
Un grazie a tutti per il proseguo della discussione, sono stato fuori tutto il mattino a clienti e leggo solo ora le vostre risposte.

Adesso mangio e dopo provo quanto scritto.

Ieri sera ho avuto un segnale positivo con il led ir sul pin 9 con lo sketch iresenddemo.
Non ho avuto tempo di fare delle controprove, non vorrei che sul MEGA il pin di default PWM sia il 9 e nn il 3

Comunque dopo vi faccio sapere il risultato delle prove
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 12:49 pm

Non ho avuto tempo di fare delle controprove, non vorrei che sul MEGA il pin di default PWM sia il 9 e nn il 3


I pin PWM sono già tutti preimpostati dal core di Arduino per cui un analogWrite deve funzionare sempre e comunque.

Questa sotto è la piedinatura della MEGA2560
http://arduino.cc/en/uploads/Hacking/PinMap2560.png
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 12:50 pm
Nell'ultimo sketch di Leo DEVI usare i pin 11 e 13 contemporaneamente, montando due LED (anche normali: rossi, verdi, ....) con le relative R; poi esegui lo sketch e dicci che risultati hai ottenuto.
BUON APPETITO!
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 12:51 pm
Sul pin 13 non servono né Led né resistenza, dovrebbe avere il led integrato come la UNO.
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 12:59 pm

Sul pin 13 non servono né Led né resistenza, dovrebbe avere il led integrato come la UNO.

VERO, ma se mette l'infrarosso lo controlla comunque in "parallelo", ormai balliamo....
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 01:08 pm
Speriamo solo che quei setup funzionino, li ho scritti senza poter provare nulla  :smiley-sweat:
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 01:27 pm
allora cerco di riassumere e far chiarezza su cosa succede, ho fatto un bel po di prove solo con arduino senza shield :

Programma di IRsendDemo led IR su pin 9 funziona (led lampeggia) , il resto dei pin 1/2/3/4/5/6/7/8/10/11/12/13 (li ho provati tutti ) non funziona (nessun lampeggio)

Programma di leo72 led IR su pin 11 funziona(led lampeggia in modalita fade ), il pin 13 non funziona

Programma di leo72 led Normale Rosso su pin 11 e 13 non funziona ( nessun lampeggio), tranne in fase di caricamento che il 13 lampeggia come quello sulla skeda

Programma di Garide qui sotto led IR su pin 9 funziona, la stufa riceve il comando, si accende e spegne, il resto dei pin 1/2/3/4/5/6/7/8/10/11/12/13 (li ho provati tutti ) non funziona

Code: [Select]

#include <IRremote.h>
 
  IRsend led;
  unsigned int code[22] = {6750,2500,3350,1700,850,850,800,1700,1700,850,800,1700,850,850,850,1650,1700,850,1650,1700,1650};
  //           Raw (22): 14036 6750 -2500 3350 -1700 850 -850 800 -1700 1700 -850 800 -1700 850 -850 850 -1650 1700 -850 1650 -1700 1650
 
  void setup()
  {
  }
 
  void loop() {
   
      for (int i = 0; i < 3; i++) {
        led.sendRaw(code, 22,38);
        delay(100);
      }
   

  }


questo è quello che succede ....

domanda siccome sia il mio programma che quello de IRsendDemo non definisce il pin di OUTPUT, non è che il MEGA abbia come uscita principale il pin 9. leo72 ha gia risposto, ma non ho compreso l'affermazione fatta.... sono alle prime armi e non ci arrivo subito  :P
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 02:16 pm
io non ci capisco più nulla, ora va tutto al rovescio, poi ti ci metti pure tu ad aggiungere decine di prove senza senso :smiley-sweat:
non so più che dire, spero che Leo ne tiri fuori info utili.
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 02:37 pm

io non ci capisco più nulla, ora va tutto al rovescio, poi ti ci metti pure tu ad aggiungere decine di prove senza senso :smiley-sweat:
non so più che dire, spero che Leo ne tiri fuori info utili.


Ciao, siamo in 2 ...   :~

sulle guide c'è scritto di collegare il led IR su pin3, ve bene che usavano la uno/2009.
Ci ho sbattuto sopra na settimana per capire come mai non funzionava .... per poi trovare che è solo sul pin 9 va tutto, e no lo sò perchè.

vediamo se Leo ci sa spiegare come mai..
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 04:16 pm
Il programmino che ho scritto aveva qualche bug.

Riprova questo, poi dimmi come va:
Code: [Select]

void setup() {               
}

void loop() {
    fadeLed(11);
    fadeLed(13);
    setTimer1();
    delay(10000);
    pinMode(13, INPUT);
    setTimer0(); //da qui in poi muore perché il delay viene sballato
    for (;;) {};
}


void fadeLed(byte tempLed) {
    pinMode(tempLed, OUTPUT);
    for (byte tempJ = 0; tempJ < 4; tempJ++) {
        for (byte tempI = 0; tempI <=255; tempI++) {
            analogWrite(tempLed, tempI);
            delay(10);
        }
    }
    pinMode(tempLed, INPUT);
}

void setTimer1() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR1A = 105;
    TCCR1A = ((1<<WGM10) | (1<<WGM11) | (1<<COM1A0));
    TCCR1B = (1<<WGM13);
    sei();
    pinMode(11, OUTPUT);
}

void setTimer0() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR0A = 208;
    TCCR0A = ((1<<COM0A0) | (1<<WGM01) | (1<<WGM00));
    TCCR0B = ((1<<WGM02) | (1<<CS00));
    sei();
    pinMode(13, OUTPUT);
}


La sequenza dovrebbe essere:
1) fade sul led 11
2) fade sul led 13
3) 38 kHz sul led 13 per 10 secondi
4) 38 kHz sul led 11
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 05:22 pm
Leo che fanno cli e sei? ricordo che ne avevi parlato una volta....
anche i 38khz del led 11 devono durare 10 secondi?
Title: Re: Consiglio resistenze per due IR Led
Post by: tonid on Jan 09, 2013, 06:25 pm
Se non ricordo male con cli() si bloccano gli interrup e con sei() si riattivano
Title: Re: Consiglio resistenze per due IR Led
Post by: superzaffo on Jan 09, 2013, 08:23 pm
Esatto, io le uso normalmente per conteggi di certe frequenze tramite interrupt.
Probabilmente Leo li disabilita in modo che non creino in qualche modo qualche disturbo o perchè quei valori vanno settati a interrupt spenti.
Vediamo cosa scriverà Leo...  ;)
Se riesco liberare il mio Mega avrei la curiosità di fare qualche prova anche io... vediamo questa sera se riesco..
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 09:21 pm

Il programmino che ho scritto aveva qualche bug.

Riprova questo, poi dimmi come va:
Code: [Select]

void setup() {               
}

void loop() {
    fadeLed(11);
    fadeLed(13);
    setTimer1();
    delay(10000);
    pinMode(13, INPUT);
    setTimer0(); //da qui in poi muore perché il delay viene sballato
    for (;;) {};
}


void fadeLed(byte tempLed) {
    pinMode(tempLed, OUTPUT);
    for (byte tempJ = 0; tempJ < 4; tempJ++) {
        for (byte tempI = 0; tempI <=255; tempI++) {
            analogWrite(tempLed, tempI);
            delay(10);
        }
    }
    pinMode(tempLed, INPUT);
}

void setTimer1() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR1A = 105;
    TCCR1A = ((1<<WGM10) | (1<<WGM11) | (1<<COM1A0));
    TCCR1B = (1<<WGM13);
    sei();
    pinMode(11, OUTPUT);
}

void setTimer0() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR0A = 208;
    TCCR0A = ((1<<COM0A0) | (1<<WGM01) | (1<<WGM00));
    TCCR0B = ((1<<WGM02) | (1<<CS00));
    sei();
    pinMode(13, OUTPUT);
}


La sequenza dovrebbe essere:
1) fade sul led 11
2) fade sul led 13
3) 38 kHz sul led 13 per 10 secondi
4) 38 kHz sul led 11


ciao

questo sera ho provato il nuovo sketch, allora nel pin 11 sia con led normale che con il led IR avvine il lampeggio in modalita fedein,
mentre nel pin 13 entrambi i led non danno nessun sengale, aparte quelli che avvengono durante il caricamento.
comunque anche il led nella skeda è sempre spento una volta caricato il sketch rimane sempre spento

Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 10:12 pm

Se non ricordo male con cli() si bloccano gli interrup e con sei() si riattivano

Sì, esatto.
Li ho messi per non manipolare direttamente il registro SREG per disattivare globalmente gli interrupt.
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 09, 2013, 10:14 pm
Ma ora sembrerebbe che non vada il timer 0, io non ci capisco più nulla da qualche ora, ora meno che meno :smiley-sad-blue:
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 10:15 pm

Probabilmente Leo li disabilita in modo che non creino in qualche modo qualche disturbo o perchè quei valori vanno settati a interrupt spenti.

Quando si manipolano i timer non è cattiva abitudine quella di disattivare preventivamente gli interrupt, in modo da evitare che non si vada a modificare qualche registro del timer mentre è in corso una chiamata ad una ISR (che resetta alcuni flag e potrebbe anche modificare per proprio conto i registri) nonché per evitare che altri interrupt del micro blocchino l'operazione a metà.
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 10:17 pm

questo sera ho provato il nuovo sketch, allora nel pin 11 sia con led normale che con il led IR avvine il lampeggio in modalita fedein,
mentre nel pin 13 entrambi i led non danno nessun sengale, aparte quelli che avvengono durante il caricamento.
comunque anche il led nella skeda è sempre spento una volta caricato il sketch rimane sempre spento

Ricapitoliamo, seguendo lo sketch:
1) fade del led sul pin 11: OK
2) fade del led sul pin 13: NEGATIVO
3) 38 kHz sull pin 11: OK
4) 38 kHz sul pin 13: NEGATIVO

E' giusto? Lo confermi? Perché da quello che hai scritto non ho capito se hai controllato i 38 kHz.
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 10:18 pm

Ma ora sembrerebbe che non vada il timer 0, io non ci capisco più nulla da qualche ora, ora meno che meno :smiley-sad-blue:

A me pare di aver usato i giusti pin. Il problema è che:
1) non ho una MEGA (i test li ho fatti solo su una UNO)
2) non ho un oscilloscopio per controllare l'effettiva frequenza in uscita sui pin

Quindi devo basarmi sui test che sta conducendo il nostro amico
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 10:24 pm
neanch'io ho un oscilloscopio e quindi non riesco ha verificare la frequenza

1) fade del led sul pin 11: OK
2) fade del led sul pin 13: NEGATIVO

questo è quello che succede


Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 09, 2013, 10:39 pm

neanch'io ho un oscilloscopio e quindi non riesco ha verificare la frequenza

1) fade del led sul pin 11: OK
2) fade del led sul pin 13: NEGATIVO

questo è quello che succede




Punto 2):
Code: [Select]
void setup() {}
void loop() {
  static byte tempFade = 0;
  analogWrite(13, tempFade);
  tempFade++;
  delay(10);
}


Che cosa ti fa questo sketch? Lo fa il fading sul led 13 (quello integrato basta oppure provane anche uno esterno)?
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 09, 2013, 11:46 pm
Quote from: leo72

Punto 2):
Code: [Select]
void setup() {}
void loop() {
  static byte tempFade = 0;
  analogWrite(13, tempFade);
  tempFade++;
  delay(10);
}


Che cosa ti fa questo sketch? Lo fa il fading sul led 13 (quello integrato basta oppure provane anche uno esterno)?


si così, si. sia in scheda che esterno
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 10, 2013, 06:32 am
Bene, allora lo sketch che ho scritto per il fade nel precedente test è buggato. Appurato questo, attivando i 38 kHz, li vedi i led accesi oppure no?

Code: [Select]

void setup() {               
}

void loop() {
    setTimer1();
    delay(10000);
    pinMode(13, INPUT);
    setTimer0(); //da qui in poi muore perché il delay viene sballato
    for (;;) {};
}


void setTimer1() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR1A = 105;
    TCCR1A = ((1<<WGM10) | (1<<WGM11) | (1<<COM1A0));
    TCCR1B = (1<<WGM13);
    sei();
    pinMode(11, OUTPUT);
}

void setTimer0() {
//Phase Correct PWM con toggle su OCR1A
    cli();
    OCR0A = 208;
    TCCR0A = ((1<<COM0A0) | (1<<WGM01) | (1<<WGM00));
    TCCR0B = ((1<<WGM02) | (1<<CS00));
    sei();
    pinMode(13, OUTPUT);
}
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 10, 2013, 09:56 am
Leo, eventualmente facciamo un passo inidetro, lasciamo da parte i 38KHz ed usiamo il "normale" analogWrite, ma il dubbio è: quale timer lo gestisce il comando? sempe lo stesso o dipende dal pin in uso?
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 10, 2013, 10:30 am

Leo, eventualmente facciamo un passo inidetro, lasciamo da parte i 38KHz ed usiamo il "normale" analogWrite, ma il dubbio è: quale timer lo gestisce il comando? sempe lo stesso o dipende dal pin in uso?

L'analogWrite altro non fa che regolare il duty cicle del timer a cui il pin è agganciato. La regolazione dei timer viene fatta dal core prima dell'avvio dello sketch. Una volta impostati, i timer non vengono più modificati dall'Arduino.
Se io scrivo analogWrite(3, 128) sulla UNO, la funzione prima di tutto controlla se su quel pin c'è la funzionalità PWM, in caso affermativo estrae il numero di timer ed il canale corrispondente. Nel caso del pin D3, che corrisponde al pin PD1 dell'Atmega328, il core trova il canale B del timer 2, quindi OC2B. A questo punto regola semplicemente il registro OCR2B (comune ad entrambi) a 128 (questo regola il duty cicle), collega il pin al canale del timer (quindi OC2B) e tutto il gioco finisce lì.

Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 10, 2013, 08:15 pm


Leo, eventualmente facciamo un passo inidetro, lasciamo da parte i 38KHz ed usiamo il "normale" analogWrite, ma il dubbio è: quale timer lo gestisce il comando? sempe lo stesso o dipende dal pin in uso?

L'analogWrite altro non fa che regolare il duty cicle del timer a cui il pin è agganciato. La regolazione dei timer viene fatta dal core prima dell'avvio dello sketch. Una volta impostati, i timer non vengono più modificati dall'Arduino.
Se io scrivo analogWrite(3, 128) sulla UNO, la funzione prima di tutto controlla se su quel pin c'è la funzionalità PWM, in caso affermativo estrae il numero di timer ed il canale corrispondente. Nel caso del pin D3, che corrisponde al pin PD1 dell'Atmega328, il core trova il canale B del timer 2, quindi OC2B. A questo punto regola semplicemente il registro OCR2B (comune ad entrambi) a 128 (questo regola il duty cicle), collega il pin al canale del timer (quindi OC2B) e tutto il gioco finisce lì.



wow ragazzi .... guiro che di quello che vi siete detti non c'ho capito nulla .....
bè spero un giorno di ruiscir capirne qualcosa ...

ho provato l'ultimo sketch, anche il led 13 va in fade
Title: Re: Consiglio resistenze per due IR Led
Post by: menniti on Jan 10, 2013, 08:20 pm
quindi ora ti funzionano entrambi i LED sui due pin?
Title: Re: Consiglio resistenze per due IR Led
Post by: garide on Jan 10, 2013, 08:35 pm

quindi ora ti funzionano entrambi i LED sui due pin?


No con l'ultimo sketch sono il pin 13, cambia intensita di luminosita rimanendo sempre acceso.

il pin11 non  lavora

ma nello sketch non e presente come fade
Title: Re: Consiglio resistenze per due IR Led
Post by: leo72 on Jan 11, 2013, 07:28 am
Ascolta, indipendentemente dall'uso timer, i pin PWM devono funzionare come PWM.Secondo il sito i pin PWM sulla MEGA sono:
Quote
PWM: 2 to 13 and 44 to 46. Provide 8-bit PWM output with the analogWrite() function

Quindi crea uno sketch come ti pare, un semplice for o quello che è, e provali tutti. Se con un banale analogWrite ti funzionano tutti, i pin sono a posto ed i timer sono utilizzabili. Se qualcuno non va, potresti avere la scheda danneggiata.