Go Down

Topic: [Risolto] Chiamare pin analogici (A0,... A5) di Leonardo con numeri (Read 663 times) previous topic - next topic

Phoed

Buongiorno a tutti,

sono alle prese con la programmazione di un prismaLed, fino ad ora ho sempre dovuto trattare i Pin in questo modo, perché mi sembrava il più comodo consentitomi:
Code: [Select]
int C1 =  0;
int C2 =  1;
int C3 =  2;
int C4 =  3;
int C5 =  4;
int C6 =  5;
int C7 =  6;
int C8 =  7;
int C9 =  8;
int C10 = 9;
int C11 = 10;
int C12 = 11;
int C13 = 12;
int C14 = 13;  
int C15 = A0; //Che fin qui rappresentano i led di ciascun piano
int L1 =  A1;
int L2 =  A2;
int L3 =  A3;
int L4 =  A4;
int L5 =  A5;// Rappresentanti  i 5 piani

void setup(){
pinMode(C1, OUTPUT);
pinMode(C2, OUTPUT);
pinMode(C3, OUTPUT);
pinMode(C4, OUTPUT);
pinMode(C5, OUTPUT);
pinMode(C6, OUTPUT);
pinMode(C7, OUTPUT);
pinMode(C8, OUTPUT);
pinMode(C9, OUTPUT);
pinMode(C10, OUTPUT);
pinMode(C11, OUTPUT);
pinMode(C12, OUTPUT);
pinMode(C13, OUTPUT);
pinMode(C14, OUTPUT);
pinMode(C15, OUTPUT);
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
pinMode(L4, OUTPUT);
pinMode(L5, OUTPUT);
}


Perché, a differenza di altri esempi che ho avuto modo di leggere, in cui i Pin analogici (A0,A1,A2,A3,A4,A5) venivano trattati come Pin conseguenti agli altri Pin (dallo 0 al 13), e quindi chiamati rispettivamente e semplicemente 14,15,16,17,18 e 19, nel mio caso, con un arduino Leonardo, questo non mi è sembrato essere possibile; inquanto impiegando tale denominazione in un semplicissimo programma di Blink, per esempio, se comando i led 14... 19 con questi numeri, i led non rispondono.

Si può superare questo problema e riuscire dunque a chiamarli con soli numeri?
cosa che permetterebbe di semplificare moltissimo la fase di programmazione...
oppure è questione di Hardware?

Se non ho fornito informazioni sufficienti mi scuso e vi prego di chiederne,

vi ringrazio per la disponibilità.




-Phoed-

Brunello

infatti la numerazione sulla leonardo e' diversa

A0 = 18;
A1 = 19;
A2 = 20;
A3 = 21;
A4 = 22;
A5 = 23;
"C' è chi legge Guerra & Pace e non ci capisce un tubo vuoto; c'è chi legge l'etichetta delle patatine fritte e ci trova la spiegazione del mondo" (J.S. S. architetto napoletano)

Phoed

Wow!! Grazie tantissimo Brunello!!

Da dove avrei potuto trarre questa informazione?
Ti ringrazio ancora
-Phoed-

Brunello

dal file pins_arduino.h che trovi su

\\\arduino-1.0.3\hardware\arduino\variants\leonardo
"C' è chi legge Guerra & Pace e non ci capisce un tubo vuoto; c'è chi legge l'etichetta delle patatine fritte e ci trova la spiegazione del mondo" (J.S. S. architetto napoletano)

leo72

La Leonardo ha 12 ingressi analogici. Gli altri 6 sono i pin A6..A11, mappati su alcuni dei primi pin digitali:
4, 6, 8, 9, 10, 12


Un'altra cosa.
E' buona norma dichiarare i pin come costanti ed usare il tipo di dati "byte".
quindi
int C1 = 0;
diventa
Code: [Select]
const byte C1 = 0;
ecc...

Phoed

Grazie mille per il consiglio leo72,
e grazie a te brunello per le risposte molto efficenti.

Grazie a voi problema risolto, ciao ciao
-Phoed-

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy