/*Progetto 83 * Controllo braccio meccanico a 4 Servo * I potenziometri di controllo (Joystick) * sono collegati agli ADC A0,A1,A2,A3 * Gli Switch sono collegati a D2 e D3 (non utilizzati) * I servomotori sono collegati alle uscite D4,D5,D6,D7 * Server SG90 Brown -> GND; Red -> +5V; Yellow -> Control */ int N0,N1,N2,N3; //Valori letti dagli ADC int ImpMin,ImpMax; //y = map(value, fromLow, fromHigh, toLow, toHigh) void setup() { pinMode(2,INPUT_PULLUP); //Switch D2 pinMode(3,INPUT_PULLUP); //Switch D3 for(int I=4;I<=7;I++) {pinMode(I,OUTPUT);digitalWrite(I,LOW);} //Servomotore D4..D7 analogReference(DEFAULT); ImpMin = 44; //Posizione di Minimo per il server ImpMax = 140; //Posizione di Massimo per il server } void loop() { N0 = analogRead(A0); //Lettura potenziometri N1 = analogRead(A1); N2 = analogRead(A2); N3 = analogRead(A3); N0 = map(N0,0,1023,ImpMin,ImpMax); //Mappatura dei valori N1 = map(N1,0,1023,ImpMin,ImpMax); N2 = map(N2,0,1023,ImpMin,ImpMax); N3 = map(N3,0,1023,ImpMin,ImpMax); for(int Ciclo=0;Ciclo<=1100;Ciclo++) /* Il ciclo deve durare 20ms * 1100 x durata di ciascuna istruzione = 20 ms * 44 -> 0.8 ms impulso minimo * 140 -> 2.5 ms impulso massimo */ {if (Ciclo