Étape 6: Programmation et conclusions
Le sketch :
#define résolution 8 #define rafraîchissement 2 * 1000000 / secteur minValue int ; void setup() {} int temp ; void loop() {} long temps (int pin, masque octets) {} extern volatils unsigned long timer0_overflow_count ; startTimer() Sub {} {unsigned long checkTimer()
#define secteur 50 / / 60 : Amérique du Nord, Japon ; 50 : la plupart des autres lieux
Serial.Begin(9600) ; DÉBOGAGE
pinMode (8 entrées) ;
temp de flotteur ;
int i = 0 ;
{while(1)}
if(i==100)
rupture ;
Temp = temp + temps (8, B00000001) ;
Serial.println(temp) ; DÉBOGAGE
i ++ ;
}
minValue = temp / 100 ;
Serial.println(MinValue) ; DÉBOGAGE
}
Temp = temps (8, B00000001) ;
Serial.Print(temp) ; DÉBOGAGE
if(Temp > MinValue) {}
ton (A0, 494) ;
digitalWrite(A1,HIGH) ;
Serial.println ("ON") ; DÉBOGAGE
} else {}
noTone(A0) ;
digitalWrite(A1,LOW) ;
Serial.println (« OFF ») ; DÉBOGAGE
}
}
unsigned long nombre = 0, total = 0 ;
while(checkTimer() < r) {}
pinMode est environ 6 fois plus lent que l’attribution
DDRB directement, mais cette pause est important
pinMode (pin, sortie) ;
PORTB = 0 ;
pinMode (pin, entrée) ;
tandis que ((PINB & mask) == 0)
Count ++ ;
total ++ ;
}
startTimer() ;
retour (comte << résolution) / total ;
}
timer0_overflow_count = 0 ;
TCNT0 = 0 ;
}
Return ((timer0_overflow_count << 8) + TCNT0) << 2 ;
}
Essentiellement, il est constitué de deux parties : le programme d’installation et de la boucle. Dans la configuration, ce qui signifie environ 10 secondes, Arduino font la moyenne mathématique entre les valeurs qui reçoit pendant ce temps tout en et le définir comme une « valeur minimale » (au cours de ces premières secondes, vous devez mettre votre main comme près de la boîte que vous voulez que le jeu le point où, après lui, l’alarme commence). Dans la boucle, au lieu de cela, Arduino lire la valeur courante et voit s’il est plus grand que la « valeur minimale »: dans ce cas, le Président fera un ton qui s’arrêtera si seulement la valeur devient plus petite que la « valeur minimale ». Le "/ / DEBUG" lignes sont dans le cas où quelque chose est mauvais
L’instructable est terminé. Profitez-en. Je suis désolé à tous pour mon mauvais anglais : Si vous avez des problèmes s’il vous plaît laisser un commentaire.