Pages: [1]   Go Down
Author Topic: [Risolto] Chiamare pin analogici (A0,... A5) di Leonardo con numeri  (Read 574 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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à.




« Last Edit: February 07, 2013, 04:17:20 pm by Phoed » Logged

-Phoed-

Tuscany
Offline Offline
Edison Member
*
Karma: 76
Posts: 2107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

infatti la numerazione sulla leonardo e' diversa

A0 = 18;
A1 = 19;
A2 = 20;
A3 = 21;
A4 = 22;
A5 = 23;
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wow!! Grazie tantissimo Brunello!!

Da dove avrei potuto trarre questa informazione?
Ti ringrazio ancora
Logged

-Phoed-

Tuscany
Offline Offline
Edison Member
*
Karma: 76
Posts: 2107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dal file pins_arduino.h che trovi su

\\\arduino-1.0.3\hardware\arduino\variants\leonardo
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 329
Posts: 22782
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
const byte C1 = 0;
ecc...
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Grazie a voi problema risolto, ciao ciao
Logged

-Phoed-

Pages: [1]   Go Up
Jump to: