Ciao a tutti,
attraverso un Arduino Mini, vorrei sfruttare la lettura degli ingressi analogici (AD0, AD1, AD2, AD3) collegati rispettivamente a 4 trimmer: in base al numero restituito (da 0 a 2013) i 4 led RGB dovrano, essere spenti, lampeggiare, restare fissi o cambiare colore.
il codice seguente funziona, l'unico difetto è la reattivita': giro il trimmer ma per vedere l'effettivo cambiamento ci vuole qualche istante.
Come posso migliorare questo gap??
Qui potete trovare lo schemino elettrico:
Un grazie a chi mi da una mano!
int red1=2;
int red2=5;
int red3=8;
int red4=11;
int blue1 = 3;
int blue2 = 6;
int blue3 = 9;
int blue4 = 12;
int green1 = 4;
int green2 = 7;
int green3 = 10;
int green4 = 13;
void setup () {
Serial.begin(9600);
pinMode (blue1, OUTPUT);
pinMode (blue2, OUTPUT);
pinMode (blue3, OUTPUT);
pinMode (blue4, OUTPUT);
pinMode (green1, OUTPUT);
pinMode (green2, OUTPUT);
pinMode (green3, OUTPUT);
pinMode (green4, OUTPUT);
pinMode (red1, OUTPUT);
pinMode (red2, OUTPUT);
pinMode (red3, OUTPUT);
pinMode (red4, OUTPUT);
}
void loop () {
int AD0 = analogRead(A0);
int AD1 = analogRead(A1);
int AD2 = analogRead(A2);
int AD3 = analogRead(A3);
Serial.println("AD0");
Serial.println(AD0);
delay(500);
Serial.println("AD1");
Serial.println(AD1);
delay(500);
Serial.println("AD2");
Serial.println(AD2);
delay(500);
Serial.println("AD3");
Serial.println(AD3);
delay(500);
//------------------------------------------
if ((AD0 > 0) && (AD0 < 307)) {
digitalWrite(green1, LOW);
digitalWrite(red1, LOW);
digitalWrite(blue1, LOW); }
if ((AD1 > 0) && (AD1 < 307)) {
digitalWrite(green2, LOW);
digitalWrite(red2, LOW);
digitalWrite(blue2, LOW); }
if ((AD2 > 0) && (AD2 < 307)) {
digitalWrite(green3, LOW);
digitalWrite(red3, LOW);
digitalWrite(blue3, LOW); }
if ((AD3 > 0) && (AD3 < 307)) {
digitalWrite(green4, LOW);
digitalWrite(red4, LOW);
digitalWrite(blue4, LOW);
delay(500); }
//------------------------------------------
if ((AD0 > 307) && (AD0 < 409)) {
digitalWrite(green1, LOW);
digitalWrite(red1, LOW);
digitalWrite(blue1, HIGH);
delay(500);
digitalWrite(blue1, LOW);
digitalWrite(green1, LOW);
digitalWrite(red1, LOW);
delay(500); }
if ((AD1 > 307) && (AD1 < 409)) {
digitalWrite(green2, LOW);
digitalWrite(red2, LOW);
digitalWrite(blue2, HIGH);
delay(500);
digitalWrite(blue2, LOW);
digitalWrite(green2, LOW);
digitalWrite(red2, LOW);
delay(500); }
if ((AD2 > 307) && (AD2 < 409)) {
digitalWrite(green3, LOW);
digitalWrite(red3, LOW);
digitalWrite(blue3, HIGH);
delay(500);
digitalWrite(blue3, LOW);
digitalWrite(green3, LOW);
digitalWrite(red3, LOW);
delay(500); }
if ((AD3 > 307) && (AD3 < 409)) {
digitalWrite(green4, LOW);
digitalWrite(red4, LOW);
digitalWrite(blue4, HIGH);
delay(500);
digitalWrite(blue4, LOW);
digitalWrite(green4, LOW);
digitalWrite(red4, LOW);
delay(500); }
//------------------------------------------
if ((AD0 > 410) && (AD0 < 511)){
digitalWrite(blue1, HIGH);
digitalWrite(green1, LOW);
digitalWrite(red1, LOW); }
if ((AD1 > 410) && (AD1 < 511)){
digitalWrite(blue2, HIGH);
digitalWrite(green2, LOW);
digitalWrite(red2, LOW); }
if ((AD2 > 410) && (AD2 < 511)){
digitalWrite(blue3, HIGH);
digitalWrite(green3, LOW);
digitalWrite(red3, LOW); }
if ((AD3 > 410) && (AD3 < 511)){
digitalWrite(blue4, HIGH);
digitalWrite(green4, LOW);
digitalWrite(red4, LOW); }
//------------------------------------------
if ((AD0 > 512) && (AD0 < 614)){
digitalWrite(blue1, LOW);
digitalWrite(red1, LOW);
digitalWrite(green1, HIGH);
delay(500);
digitalWrite(green1, LOW);
digitalWrite(blue1, LOW);
digitalWrite(red1, LOW);
delay(500);}
if ((AD1 > 512) && (AD1 < 614)){
digitalWrite(blue2, LOW);
digitalWrite(red2, LOW);
digitalWrite(green2, HIGH);
delay(500);
digitalWrite(green2, LOW);
digitalWrite(blue2, LOW);
digitalWrite(red2, LOW);
delay(500);}
if ((AD2 > 512) && (AD2 < 614)){
digitalWrite(blue3, LOW);
digitalWrite(red3, LOW);
digitalWrite(green3, HIGH);
delay(500);
digitalWrite(green3, LOW);
digitalWrite(blue3, LOW);
digitalWrite(red3, LOW);
delay(500);}
if ((AD1 > 512) && (AD1 < 614)){
digitalWrite(blue4, LOW);
digitalWrite(red4, LOW);
digitalWrite(green4, HIGH);
delay(500);
digitalWrite(green4, LOW);
digitalWrite(blue4, LOW);
digitalWrite(red4, LOW);
delay(500);}
//------------------------------------------
if ((AD0 > 615) && (AD0 < 716)){
digitalWrite(green1, HIGH);
digitalWrite(red1, LOW);
digitalWrite(blue1, LOW); }
if ((AD1 > 615) && (AD1 < 716)){
digitalWrite(green2, HIGH);
digitalWrite(red2, LOW);
digitalWrite(blue2, LOW); }
if ((AD2 > 615) && (AD2 < 716)){
digitalWrite(green3, HIGH);
digitalWrite(red3, LOW);
digitalWrite(blue3, LOW); }
if ((AD3 > 615) && (AD3 < 716)){
digitalWrite(green4, HIGH);
digitalWrite(red4, LOW);
digitalWrite(blue4, LOW); }
//------------------------------------------
if ((AD0 > 717) && (AD0 < 921)){
digitalWrite(blue1, LOW);
digitalWrite(green1, LOW);
digitalWrite(red1, HIGH);
delay(500);
digitalWrite(red1, LOW);
digitalWrite(blue1, LOW);
digitalWrite(green1, LOW);
delay(500);}
if ((AD1 > 717) && (AD1 < 921)){
digitalWrite(blue2, LOW);
digitalWrite(green2, LOW);
digitalWrite(red2, HIGH);
delay(500);
digitalWrite(red2, LOW);
digitalWrite(blue2, LOW);
digitalWrite(green2, LOW);
delay(500);}
if ((AD2 > 717) && (AD2 < 921)){
digitalWrite(blue3, LOW);
digitalWrite(green3, LOW);
digitalWrite(red3, HIGH);
delay(500);
digitalWrite(red3, LOW);
digitalWrite(blue3, LOW);
digitalWrite(green3, LOW);
delay(500);}
if ((AD3 > 717) && (AD3 < 921)){
digitalWrite(blue4, LOW);
digitalWrite(green4, LOW);
digitalWrite(red4, HIGH);
delay(500);
digitalWrite(red4, LOW);
digitalWrite(blue4, LOW);
digitalWrite(green4, LOW);
delay(500);}
//------------------------------------------
if ((AD0 > 922) && (AD0 < 1024)){
digitalWrite(red1, HIGH);
digitalWrite(green1, LOW);
digitalWrite(blue1, LOW); }
if ((AD1 > 922) && (AD1 < 1024)){
digitalWrite(red2, HIGH);
digitalWrite(green2, LOW);
digitalWrite(blue2, LOW);}
if ((AD2 > 922) && (AD2 < 1024)){
digitalWrite(red3, HIGH);
digitalWrite(green3, LOW);
digitalWrite(blue3, LOW);}
if ((AD3 > 922) && (AD3 < 1024)){
digitalWrite(red4, HIGH);
digitalWrite(green4, LOW);
digitalWrite(blue4, LOW);}
}
}