Paso 3: Paso 3: copia el código
Copie este código en el IDE de Arduino, con tablero de adafruit flora y puerto serial seleccionado
/*
DE pernos, cables, botones y flex flex el sensor conectado a dos cables, uno conectado a 5V, conectado a un pin analógico y una 10kresistor conectada a GND pulsadores conectados a dos cables, uno conectado a la tierra, uno al pin DIGITAL y resistencia a 5V (pregunta: ¿lilypad botones necesitan resistencias?) LEDs conectados a dos cables, uno al pin digital, resistencia de uno a 330 y GND * /
const int stressPin = 6; pin analógico que lee flex sensor--> cambio a A5 para lilypad int ledPins [] = {1,0,2,3}; Pasadores LED--> cambio de 9,10,11, A2 int zero_bottom = 10; el perno que lleva el botón de cero el punto de mínima flexión de la //change brazo a 5 para lilypad int zero_top = 9; perno que lleva el botón de cero el punto de máxima flexión de la //change brazo a 6 para lilypad
int startValue; int endValue;
int startPosition; int endPosition; int stressPosition; Variable almacena el valor actual de lo que se lee en el sensor de tensión
avg1 int = 0, avg2 = 0, avg3 = 0; avgA int = 0, avgB = 0, avgC = 0, avgD = 0;
void setup() {Serial.begin(9600); int index; para (índice = 0; índice < = 3; Índice ++) {pinMode(ledPins[index],OUTPUT);} pinMode(zero_bottom,INPUT); pinMode(zero_top,INPUT);}
void loop() {startValue = digitalRead(zero_bottom); //when el botón empujado no valor = 1 while(!startValue) {//when no 1, valor = 0 que envía código en bucle para leer flex sensor startPosition = analogRead(stressPin); startValue = digitalRead(zero_bottom); //allows el tiempo del lazo para parar} endValue = digitalRead(zero_top); //same aquí el concepto de segundo botón while(!endValue) {endPosition = analogRead(stressPin); endValue = digitalRead(zero_top);} //Averaging avg1 = (startPosition + endPosition) / 2; avg2 = (startPosition avg1) / 2; avg3 = (endPosition + avg1) / 2; avgA = (startPosition avg2) / 2; avgB = (avg2 avg1) / 2; avgC = (avg1 + avg3) / 2; avgD = (avg3 + endPosition) / 2; stressPosition = analogRead(stressPin); Serial.println(); Serial.Print ("Inicio:"); Serial.println(startPosition); Serial.Print ("final:"); 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); Establece los LEDS 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], LOW);} si (stressPosition < avgB & & stressPosition > = avgC) {digitalWrite (ledPins [0], HIGH); digitalWrite (ledPins [1] ALTO); digitalWrite (ledPins [2], LOW); digitalWrite (ledPins [3], LOW); }
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);}}
Las partes más importantes de mi código:
· avg1 = (startPosition + endPosition) / 2;
· avg2 = (startPosition avg1) / 2;
· avg3 = (endPosition + avg1) / 2;
· avgA = (startPosition avg2) / 2;
· avgB = (avg2 avg1) / 2;
· avgC = (avg1 + avg3) / 2;
· avgD = (avg3 + endPosition) / 2;
esta parte del código es responsable de establecer los cuatro puntos para cada LED encender. Pulse el botón primer punto min flexión (brazo recto), el valor de la "posición inicial" de la grabación y mantener todas las luces. El segundo botón es presionado en la flexión máxima (brazo doblado, los músculos bíceps contraído), registrar el valor de "endposition" y encender todas las luces de cuatro. Se encenderán una luz, dos luces y tres luces dependiendo de cuánto su bíceps se flexiona respecto a dos puntos de ajuste. Por lo tanto 1/4 de su flexión máxima se encenderá una luz, ½ dará vuelta dos, ¾ tres girará, y la flexión máxima enciende todas las luces de cuatro.