Buongiorno a tutti.
Questo è il mio primo post (mi sono appena iscritto al forum).
Sono un tecnico elettronico hardware con "qualche conoscenza" di programmazione.
Spero di non aver sbagliato la sezione in cui inserire la mia richiesta di aiuto.
Ecco la mia domanda.
Ho bisogno di leggere sei ingressi analogici per conoscere il valore di altrettanti potenziometri da 1K, ad essi collegati.
Questa lettura deve ripetersi all'infinito.
Il valore acquisito verrà in seguito impiegato per controllare altrettanti servo collegati a delle uscite digitali (ed avere qualche stampa di debug a monitor).
Non ho avuto problemi a scrivere un pò di codice per ottenere quanto desideravo e (miracolosamente) funziona! (non è molto ottimizzato e per nulla elegante, ma al momento non mi importa - voglio solo ottenere un risultato, dopo lo modificherò e lo razionalizzero).
Il mio problema è che vorrei inserire le sei istruzioni "analogRead(An);" in un ciclo for, ma non riesco a capire come fare, visto che l'indice di tale ciclo dovrebbe essere il nome del pin analogico, ma questo, essendo alfanumerico, non può essere una semplice variabile "n che va da 1 a 6".
Ho provato diverse cose ma nessuna ha funzionato. Ho provato anche a inserire la sequenza A1A2A3A4A5A6 in un array char, per poi leggerlo a coppie ed usare il risultato come parametro del comando analogRead(), ma non funzona (me lo aspettavo).
Chiedo scusa per la stupidità della domanda, ma non so come proseguire e chiedo aiuto a voi che conosete l'argomento.
Allego il codice scrtto (ripeto, non guardate lo stile o l'ottimizzazione - per ora non mi importa affatto).
Ringrazio in anticipo tutti coloro che avranno la pazienza di insegnarmi una cosa nuova. Saluti.
#include <Servo.h>
Servo servo1, servo2, servo3, servo4, servo5, servo6;
void setup()
{
//si imposta la seriale
Serial.begin(9600);
//Si impostano i pin digitali su cui saranno collegati i servo.
servo1.attach(41);
servo2.attach(42);
servo3.attach(43);
servo4.attach(44);
servo5.attach(45);
servo6.attach(46);
int LetturaPot1, LetturaPot2, LetturaPot3, LetturaPot4, LetturaPot5, LetturaPot6; // Valori letti dai potenziometri (0-1024).
int OhmPot1, OhmPot2, OhmPot3, OhmPot4, OhmPot5, OhmPot6; //Valori letti sui potenziomentri e rimappati in ohm.
int PosizioneS1, PosizioneS2, PosizioneS3, PosizioneS4, PosizioneS5, PosizioneS6; // Posizione in gradi dei servo.
int LimInf1, LimInf2, LimInf3, LimInf4, LimInf5, LimInf6; // Limite inferiore dei servo - Da non superare.
int LimSup1, LimSup2, LimSup3, LimSup4, LimSup5, LimSup6; // Limite superiore dei servo - Da non superare.
}
void loop()
{
int LetturaPot1 = analogRead(A1);
int LetturaPot2 = analogRead(A2);
int LetturaPot3 = analogRead(A3);
int LetturaPot4 = analogRead(A4);
int LetturaPot5 = analogRead(A5);
int LetturaPot6 = analogRead(A6);
int OhmPot1 = map(LetturaPot1, 0, 1024, 0, 1000);
int OhmPot2 = map(LetturaPot2, 0, 1024, 0, 1000);
int OhmPot3 = map(LetturaPot3, 0, 1024, 0, 1000);
int OhmPot4 = map(LetturaPot4, 0, 1024, 0, 1000);
int OhmPot5 = map(LetturaPot5, 0, 1024, 0, 1000);
int OhmPot6 = map(LetturaPot6, 0, 1024, 0, 1000);
int PosizioneS1 = map (LetturaPot1, 0, 1024, 0, 180);
int PosizioneS2 = map (LetturaPot2, 0, 1024, 0, 180);
int PosizioneS3 = map (LetturaPot3, 0, 1024, 0, 180);
int PosizioneS4 = map (LetturaPot4, 0, 1024, 0, 180);
int PosizioneS5 = map (LetturaPot5, 0, 1024, 0, 180);
int PosizioneS6 = map (LetturaPot6, 0, 1024, 0, 180);
Serial.print("POT-1 ");
Serial.print(OhmPot1);
Serial.print(" ");
Serial.print(PosizioneS1);
Serial.print(" ");
Serial.print("POT-2 ");
Serial.print(OhmPot2);
Serial.print(" ");
Serial.print(PosizioneS2);
Serial.print(" ");
Serial.print("POT-3 ");
Serial.print(OhmPot3);
Serial.print(" ");
Serial.print(PosizioneS3);
Serial.print(" ");
Serial.print("POT-4 ");
Serial.print(OhmPot4);
Serial.print(" ");
Serial.print(PosizioneS4);
Serial.print(" ");
Serial.print("POT-5 ");
Serial.print(OhmPot5);
Serial.print(" ");
Serial.print(PosizioneS5);
Serial.print(" ");
Serial.print("POT-6 ");
Serial.print(OhmPot6);
Serial.print(" ");
Serial.println(PosizioneS6);
servo1.write (PosizioneS1);
servo2.write (PosizioneS2);
servo3.write (PosizioneS3);
servo4.write (PosizioneS4);
servo5.write (PosizioneS5);
servo6.write (PosizioneS6);
}