- // Lettura Aileron channel: FAKE con un potenziometro
- //ailIn = analogRead(3);
- //ail = constrain(aliIn / 4 , 0, 255) ;
-
- // Lettura ailerons channel
- ailIn = pulseIn(ailPin, HIGH, 25000);
- if (ailIn != 0) {ail = constrain(ailIn, 1000, 2000); } ;
- // con un altra ricevente, fare una calibrazione nel caso.
- // Middle = 1512
-
-
- switch (ailstate) {
- case middle:
- // Alettoni piatti
- if (ail > 1600) { ailstate = sxin; } ;
- if (ail < 1400) { ailstate = dxin; } ;
- ailerons.White();
-
- break;
-
- case sxin:
- // Transizione a sx
- ailerons.Off();
- delay(1000);
- ailstate = sx;
- break;
-
- case sx:
- // dx
- ailerons.Green();
- if (ail < 1600) { ailstate = middle; } ;
- if (ail < 1400) { ailstate = dxin; } ;
- break;
-
- case dxin:
- // Transizione a dx
- ailerons.Off();
- delay(1000);
- ailstate = dx;
- break;
-
- case dx:
- // sx
- ailerons.Blue();
- if (ail > 1400) { ailstate = middle; } ;
- if (ail > 1600) { ailstate = dxin; } ;
- break;
- }
-
- Serial.print("ailIn: ");
- Serial.print(ailIn);
- Serial.print("\tail: ");
- Serial.print(ail);
- Serial.print("\t ailstate:");
- Serial.println(ailstate);
- // delay(200);
- }
+// Lettura Aileron channel: FAKE con un potenziometro 10K
+//ailIn = analogRead(3);
+//ail = constrain(aliIn * 2 , 0, 2000) ;
+
+// Lettura ailerons channel
+ ailIn = pulseIn(ailPin, HIGH, 25000);
+ if (ailIn != 0) {
+ ail = constrain(ailIn, 1000, 2000);
+ } ;
+ // con un altra ricevente, fare una calibrazione nel caso.
+ // Middle = 1512
+
+
+ switch (ailstate) {
+ case middle:
+ // Alettoni piatti
+ if (ail > mid_point + deviation + deviation /3) {
+ ailstate = sxin;
+ now = millis() ;
+ goto sxin ;
+ }
+ else if (ail < mid_point - deviation - deviation / 3) {
+ ailstate = dxin;
+ now = millis() ;
+ goto dxin ;
+ } ;
+ ailerons.White();
+
+ break;
+
+ case sxin:
+sxin:
+ // Transizione a sx
+ ailerons.Off();
+ if (millis() - pausa > now ) {
+ ailstate = sx;
+ }
+ break;
+
+ case sx:
+ // dx
+ ailerons.Green();
+ if (ail < mid_point + deviation) {
+ ailstate = middle;
+ }
+ else if (ail < mid_point - deviation) {
+ ailstate = dxin;
+ } ;
+ break;
+
+ case dxin:
+ // Transizione a dx
+dxin:
+ ailerons.Off();
+ if (millis() - pausa > now ) {
+ ailstate = dx;
+ }
+ break;
+
+ case dx:
+ // sx
+ ailerons.Blue();
+ if (ail > mid_point - deviation) {
+ ailstate = middle;
+ }
+ else if (ail > mid_point + deviation) {
+ ailstate = dxin;
+ } ;
+ break;
+ }
+
+ Serial.print("ailIn: ");
+ Serial.print(ailIn);
+ Serial.print("\tail: ");
+ Serial.print(ail);
+ Serial.print("\t ailstate:");
+ Serial.println(ailstate);
+ // delay(200);
+}