Étape 3: Étape 3: copiez le Code
Copiez ce code dans votre IDE Arduino, avec flore adafruit et port série sélectionné
/*
SET UP d’épingles, fils, boutons et flex flex capteur relié à deux fils, celui qui est connecté à 5V, celui qui est connecté à une broche analogique et un 10kresistor relié au GND boutons-poussoirs reliés à deux fils, une connectée à la broche GND, à axe numérique et résistance à 5V (QUESTION : lilypad boutons faut-il résistances?) LEDs connectés aux deux conducteurs, un à la broche numérique, celui à 330 résistance et masse * /
const int stressPin = 6 ; les broches analogiques que lectures flex capteur--> changement de A5 pour lilypad int ledPins [] = {1,0,2,3} ; Broches de la LED--> changement de 9,10,11, A2 int zero_bottom = 10 ; goupille qui tient le bouton à zéro point de fléchissement de la //change bras à 5 pour lilypad int zero_top = 9 ; goupille qui tient le bouton à zéro point de flex maximale de la //change bras 6 pour lilypad
startValue int ; endValue int ;
int startPosition ; int endPosition ; int stressPosition ; Variable qui stocke la valeur actuelle de ce qui est lu dans le capteur de contrainte
avg1 int = 0, avg2 = 0, avg3 = 0 ; int avgA = 0, avgB = 0, avgC = 0, avgD = 0 ;
void setup() {Serial.begin(9600) ; int index ; pour (indice = 0; index < = 3; index ++) {pinMode(ledPins[index],OUTPUT);} pinMode(zero_bottom,INPUT) ; pinMode(zero_top,INPUT);}
void loop() {startValue = digitalRead(zero_bottom) ; //when bouton ne poussé pas valeur = 1 while(!startValue) {//when pas 1, valeur = 0 qui envoie le code dans la boucle pour lire flex capteur startPosition = analogRead(stressPin) ; startValue = digitalRead(zero_bottom) ; //allows la boucle while pour arrêter} endValue = digitalRead(zero_top) ; //same concept ici pour le deuxième bouton while(!endValue) {position finale = analogRead(stressPin) ; endValue = digitalRead(zero_top);} //Averaging avg1 = (startPosition + position finale) / 2; avg2 = (startPosition + avg1) / 2; avg3 = (endPosition + avg1) / 2; avgA = (PositionDepart + avg2) / 2; avgB = (avg2 + avg1) / 2 ; avgC = (avg1 + avg3) / 2 ; avgD = (avg3 + endPosition) / 2 ; stressPosition = analogRead(stressPin) ; Serial.println() ; Serial.Print ("Démarrer:") ; Serial.println(StartPosition) ; Serial.Print ("fin:") ; Serial.println(EndPosition) ; Serial.println() ; Serial.Print ("avgA:") ; Serial.println(avgA) ; Serial.Print ("avgB:") ; Serial.println(avgB) ; Serial.Print ("avgC:") ; Serial.println(avgC) ; Serial.Print ("avgD:") ; Serial.println(avgD) ; Serial.println() ; Serial.println(stressPosition) ; Définit les voyants si (stressPosition < avgD) {digitalWrite (ledPins [0], HIGH); digitalWrite (ledPins [1], HIGH); digitalWrite (ledPins [2], HIGH); digitalWrite (ledPins [3], HIGH);} si (stressPosition < avgC & & stressPosition > = avgD) {digitalWrite (ledPins [0], HIGH); digitalWrite (ledPins [1], HIGH); digitalWrite (ledPins [2], HIGH); digitalWrite (ledPins [3], faible);} si (stressPosition < avgB & & stressPosition > = avgC) {digitalWrite (ledPins [0], HIGH); digitalWrite (ledPins [1] ÉLEVÉ) ; digitalWrite (ledPins [2], faible) ; digitalWrite (ledPins [3], faible) ; }
Si (stressPosition < avgA & & stressPosition > = avgB) {digitalWrite (ledPins [0], HIGH); digitalWrite (ledPins [1], LOW); digitalWrite (ledPins [2], LOW); digitalWrite (ledPins [3], LOW);}
Si (stressPosition > avgA) {digitalWrite (ledPins [0], LOW); digitalWrite (ledPins [1], LOW); digitalWrite (ledPins [2], LOW); digitalWrite (ledPins [3], LOW);}}
Parties les plus importantes de mon code :
· avg1 = (startPosition + position finale) / 2 ;
· avg2 = (startPosition + avg1) / 2 ;
· avg3 = (endPosition + avg1) / 2 ;
· avgA = (PositionDepart + avg2) / 2 ;
· avgB = (avg2 + avg1) / 2 ;
· avgC = (avg1 + avg3) / 2 ;
· avgD = (avg3 + endPosition) / 2 ;
cette partie du code est chargée de définir les quatre points que chaque LED s’allume. Le premier bouton est enfoncé au moment de flexion min (bras droit), enregistrement de la valeur de la "position de départ" et de garder toutes les lumières au large. La deuxième touche à la flexion max bras plié, muscles biceps contracté, enregistrement de la valeur de position « finale » et allumer les quatre voyants. Un feu, deux feux et trois voyants seront allument selon combien votre biceps est fléchi par rapport aux deux points de réglage. Donc ¼ de votre flexion max s’allume un feu, ½ passera deux, ¾ tournera trois, et votre flexion max s’allume les quatre voyants.