2 * le funzioni finali sono da controllare
10 // Due LED con lampeggio alternato:
11 Lampeggiatore right = 3;
12 Lampeggiatore left = 5;
15 const byte thrPin = A3;
19 long previousMillisA = 0;
20 long previousMillisB = 0;
22 unsigned long intervalA = 200;
23 unsigned long intervalB = 200;
26 left.Invert() ; // Parte da stato invertito rispetto al default
27 pinMode(rtail, OUTPUT);
28 pinMode(ltail, OUTPUT);
29 pinMode(thrPin, INPUT);
30 // Serial.begin(9600);
32 randomSeed(analogRead(0));
36 thrIn = pulseIn(thrPin, HIGH, 25000);
37 thr = constrain(map(thrIn, 983, 2000, 0, 255), 0, 255) ;
39 if (thr >0 && thr < 15) {
40 digitalWrite(rtail, 1);
41 digitalWrite(ltail, 1);
45 } else if (thr < 245) {
46 // Due LED con lampeggio alternato:
47 right.Blink(1120 - 4 * thr );
48 left.Blink(1120 - 4 * thr );
49 analogWrite(rtail, thr);
50 analogWrite(ltail, thr);
52 digitalWrite(rtail, !digitalRead(rtail));
53 digitalWrite(ltail, !digitalRead(ltail));
54 delay(random(20, 100));
60 Serial.println(thrIn);
61 Serial.print("\t thr:");
68 // TODO: non funzionano :(
72 // Illumina la coda r a un tempo random
73 if (millis() - previousMillisA > intervalA) {
74 previousMillisA = millis();
75 intervalA = random(50, 255);
76 digitalWrite(rtail, !digitalRead(rtail));
77 // Leggiamo direttamente il registro di ledB e scriviamo il suo opposto,
78 // questo ci permette di non dover avere una variabile per tracciare lo stato.
84 // Illumina la coda l a un tempo random
86 if (millis() - previousMillisB > intervalB) {
87 previousMillisB = millis();
88 intervalB = random(50, 255);
89 digitalWrite(ltail, !digitalRead(ltail));
90 // Leggiamo direttamente il registro di ledB e scriviamo il suo opposto,
91 // questo ci permette di non dover avere una variabile per tracciare lo stato.